使用 dd 创建稀疏映像是否适用于从 RAID 备份/恢复?

Ian*_*ton 5 raid backup dd sparse-files

我有两个未联网的服务器,每个服务器在 LSI MegaRaid 9240-8i 控制器上的 RAID5 配置中都有 1.2TB 的存储空间。由于驱动程序问题,我一直在尝试让 Symantec Ghost 将一台机器映像到另一台机器,但没有成功,所以我想知道从 Linux LiveCD 启动、插入外部硬盘和ddRAID是否会更容易分区到外部磁盘。

1.2TB的分区上只有10GB左右的数据,所以我希望生成一个稀疏的图像文件(避免必须找到1.2TB的U盘!)。我见过人们使用 的seek参数dd来实现这一点 - 在这种情况下,这是创建大约 10GB 大小的图像的合适方法吗?

即使这是生成稀疏图像的明智方法,这是否是将一个 RAID 镜像到另一个相同配置的明智方法,或者 Ghost 和 Acronis 等商业实用程序是否做了一些“魔术”,dd但没有这样做?

小智 9

听起来该设备是远程的。假设Linux...

ssh remote_host 'dd if=/dev/sdb1' | cp --sparse=always /proc/self/fd/0 new-sparse-file
Run Code Online (Sandbox Code Playgroud)

如果当地...

dd if=/dev/sdb1 | cp --sparse=always /proc/self/fd/0 new-sparse-file
Run Code Online (Sandbox Code Playgroud)

这为您提供了一个可安装的映像。但是,如果您将它拉过网络,那么您将拥有 1.2 TB 的网络流量(通常是瓶颈)以及 ssh 和 sshd 的 CPU 负载。

如果你在网络上拉那么多,网络流量会花费你钱......

ssh remote_host 'dd if=/dev/sdb1 | gzip ' | gunzip | cp --sparse=always /proc/self/fd/0 new-sparse-file
Run Code Online (Sandbox Code Playgroud)

  • 非常好的答案(并且*应该*也被标记为答案)。不过,我建议使用 shell 的 `<()` 而不是 `/proc/...`,例如:`cp --sparse=always <(ssh remote_host dd if=/dev/sdb1) destfile`。如果里面有很多零,`ssh -C` 会很方便。 (5认同)