当前位置:  开发笔记 > 运维 > 正文

快速磁盘克隆

如何解决《快速磁盘克隆》经验,为你挑选了3个好方法。

克隆磁盘时有没有办法让Linux预读?我使用名为"dd"的程序来克隆磁盘.我最后一次这样做,似乎操作系统正在阅读然后写作,但从来没有在同一时间.理想情况下,如果源磁盘可以跟上,目标磁盘将不断等待,而不是等待.

更新:我通常在克隆时选择较大的块大小(例如16M或32MB).



1> John Vasilef..:

Jaeger准将是对的:

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)
#



2> Commodore Ja..:

您可以尝试使用bs参数增加块大小; 默认情况下,我认为dd使用的块大小等于磁盘的首选块大小,这意味着要复制整个磁盘需要更多的读写操作.Linux的dd支持人类可读的后缀:

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



3> 小智..:

对我来说最快:

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

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有