3

Linux サーバーにいくつかのスパース イメージ (合計サイズ 320G、使用サイズ 111G) があり、これらのチェックサムを毎晩取得したいと考えています。チェックサムを作成する効率的な方法があるかどうか疑問に思っていました。次のようにすると、チェックサムの作成に時間がかかります。

~ # dd bs=1 count=0 seek=5G if=/dev/zero of=sparse.img
0+0 Datensätze ein
0+0 Datensätze aus
0 Bytes (0 B) kopiert, 0,00036461 s, 0,0 kB/s
~ # du -hs sparse.img
0   sparse.img
~ # time sha512sum sparse.img
e4f21997407b9cb0df347f6eba2...  sparse.img
real    0m55.339s
user    0m52.010s
sys     0m2.790s
4

2 に答える 2

1

(a) ストレージが割り当てられていなくても、これらのゼロはすべてファイルのコンテンツの一部であり、(b) ツールがないように見えるため、これには実際には良い解決策はありません。スパースファイルを操作するように設計されています。確かに、GNU tar (およびその他のさまざまなバックアップ/アーカイブ製品) はスパース ファイルを処理するように指示できますが、実際にファイル システムに割り当てマップを照会するものは見たことがありません。たとえば、GNU tar のドキュメントでは、ファイルの内容でゼロの実行を明示的に検索することによってスパース ファイルを処理することが明確に示されています (また、これはインラインではなく前処理ステップとして実行され、アーカイブされるファイルが 2 回読み取られるという効果があります)。 .)

理想的には、ファイルの割り当てられたブロックに直接アクセスする方法があるでしょう。そのようなことを実装する方法はいくつか考えられますが、現時点で有用であるためには、少なくとも 10 年前に提案され、指定されていなければなりません。

残念ながら、あなたの質問に対する適切な答えはないようです。バックアップシステムが提供するチェックサムを記録し、それを使用して復元前にバックアップメディアを検証することをお勧めしますが、おそらくすでに行っているでしょう.

于 2013-07-25T02:43:41.353 に答える