7

ディスクのクローンを作成するときに Linux に先読みさせる方法はありますか? 「dd」という名前のプログラムを使用して、ディスクのクローンを作成します。前回これを行ったときは、OS が読み取りと書き込みを行っているように見えましたが、同時にではありませんでした。理想的には、移行先ディスクが待機せずに常に書き込みを行っているのが理想的ですが、それはもちろん、移行元ディスクが追いつくことができる場合です。

更新: 私は通常、クローン作成時に大きなブロック サイズを選択します (例: 16M または 32MB)。

4

7 に答える 7

10

コモドール・イェーガーは次の点で正しい:

dd if=/dev/sda of=/dev/sdb bs=1M

また、ドライブの「先読み」を調整すると、通常はパフォーマンスが向上します。デフォルトは 256 のようなもので、最適な値は 1024 です。設定はそれぞれ異なるため、ベンチマークを実行して最適な値を見つける必要があります。

# blockdev --getra /dev/sda
256
# blockdev --setra 1024 /dev/sda
# blockdev --getra /dev/sda
1024
# blockdev --help
Usage:
  blockdev -V
  blockdev --report [devices]
  blockdev [-v|-q] commands devices
Available commands:
    --getsz (get size in 512-byte sectors)
    --setro (set read-only)
    --setrw (set read-write)
    --getro (get read-only)
    --getss (get sectorsize)
    --getbsz    (get blocksize)
    --setbsz BLOCKSIZE  (set blocksize)
    --getsize   (get 32-bit sector count)
    --getsize64 (get size in bytes)
    --setra READAHEAD   (set readahead)
    --getra (get readahead)
    --flushbufs (flush buffers)
    --rereadpt  (reread partition table)
    --rmpart PARTNO (disable partition)
    --rmparts   (disable all partitions)
#
于 2008-09-11T04:14:15.023 に答える
7

bs 引数を使用してブロック サイズを増やしてみてください。デフォルトでは、dd はディスクの優先ブロック サイズと同じブロック サイズを使用すると思います。つまり、ディスク全体をコピーするために、より多くの読み取りと書き込みが行われることになります。Linux の dd は、人間が読めるサフィックスをサポートしています。

dd if=/dev/sda of=/dev/sdb bs=1M
于 2008-09-10T16:46:00.417 に答える
6

私にとって最速:

dd if=/dev/sda bs=1M iflag=direct | dd of=/dev/sdb bs=1M oflag=direct

〜100MiB / sに達しますが、他のオプション(単一プロセス、直接なし、デフォルトの512bブロックサイズなど)は30MiB/sにさえ達しません...

進行状況を監視するには、別のコンソールで実行します。

watch -n 60 killall -USR1 dd
于 2012-11-06T11:07:13.147 に答える
2

2 つのディスクが異なるチャネル (SATA など) を使用している場合は、fastDD などの高性能ツールを使用できます。著者は次のように主張しています。

「この作業では、データを確実かつ効率的にコピーする問題を検討し、コピー プロセスに介入して干渉するすべてのハードウェアおよびソフトウェア メカニズムを思い出しました。私たちの考察は、データを非常に効率的にコピーできる C++ プログラムである fastdd でコーディングされています。テストで示したとおりです。」

さらに、このツールは古い .xml と非常によく似た構文を保持していますdd

http://www.dei.unipd.it/~zagonico/fastdd/

https://github.com/zagonico86/fastdd

于 2014-07-15T13:05:17.227 に答える
1

たぶん、2つのプロセスを使用できます

dd if=indevfile | dd of=outdevfile

必要に応じて、他の dd オプションを設定できると思います。これにはいくらかのオーバーヘッドがありますが、一方のディスクの読み取りと他方のディスクへの書き込みとの間で非同期を許可する必要があります。

于 2008-09-10T16:43:23.700 に答える
0

同時にそれをしていないのは確かですか?ディスクキャッシュがそれを確実に行うことを期待しています。そうでない場合は、ノンブロッキングまたは非同期の読み取り/書き込みが役立つ場合があります。

于 2008-09-10T16:45:07.097 に答える
0

アップデートについて: HD のキャッシュの大きさは? (特に書くもの)。それは多すぎる可能性があり、不必要なブロックを防ぐためにそれを減らす必要があるかもしれません.

于 2008-09-10T16:56:16.417 に答える