clonehd 需要 2 小时才能处理 100GB 磁盘。预计会怎样?

clonehd 需要 2 小时才能处理 100GB 磁盘。预计会怎样?

我有一个使用 VDI 和灵活大小的 VirtualBox 映像。目前物理 DVI 文件为 94GB。主机是 Ubuntu 服务器,客户机是带有 ext4 分区的 CentOS 6.4。主机使用 1TB 的 SATA 普通磁盘。

磁盘读取速度为:

 sudo hdparm -tT /dev/sda

 /dev/sda:
 Timing cached reads:   23330 MB in  2.00 seconds = 11679.09 MB/sec
 Timing buffered disk reads: 420 MB in  3.01 seconds = 139.49 MB/sec

磁盘写入速度:

 sudo dd if=/dev/zero of=output bs=8k count=128k; sudo rm -f output
 131072+0 records in
 131072+0 records out
 1073741824 bytes (1.1 GB) copied, 4.91353 s, 219 MB/s

所以...我猜复制 100GB 应该花费更少的时间。事实上,简单的复制cp花费的时间要少得多。在我的例子中,它需要 30 分钟,而 需要 2 个小时clonehd

我知道 clonehd 也进行压缩,所以这可能是一个很大的区别。现在...假设我只想显式压缩一次,然后克隆。还有其他更快的选择吗?我在某处读到我可以做的很简单,cp然后更改创建的克隆映像的 UUID。有人这样做过吗?安全吗?因为我这样做是为了备份...我需要这个过程是安全的。

dd请注意,我已经使用或清理了客户 Cent OS 中的可用空间zerofree。但这不是本帖的主题。

实际上,如果我可以在运行 VM 的同时运行它,我不会遇到那么多问题clonehd,但据我了解,这是不可能的/不推荐的,因为如果同时修改它,克隆/复制的 vdi 文件可能会被损坏。

提前致谢,

答案1

您写道“主机使用的是 1TB 的 SATA 普通磁盘”。这让我相信您说的是旋转硬盘,甚至可能是台式机级驱动器(例如 7200 rpm SATA,而不是 10k 或 15k rpm SAS 驱动器,更不用说 SSD 了)。

请记住,7200 rpm 驱动器通常最高速度约为 100-120 MB/s。这为不依赖缓存时应获得的速度设置了上限。(请注意,dd问题中的命令很可能严重依赖缓存,因此无法准确反映 I/O 性能。您可以conv=sync使用同步 I/O 来增加强制。同样,正如评论中指出的那样,通过从 /dev/zero 读取,您可以消除等式的一侧。)

由于虚拟机的磁盘映像文件配置精简,因此很有可能磁盘上存在碎片。根据碎片程度,您甚至可能受到 IOPS 限制。7200 rpm 驱动器的理论最大容量为 120 IOPS。

单向(读或者写入)100 GB 以 110 MB/s 的速度写入大约需要 900 秒。将时间翻倍,因为您同时在读取写作时,你会看到 1800-2000 秒,或者半小时。

如果再加上碎片化因素,那么两小时听起来肯定是差不多的。

相关内容