如何将大型 LVM 卷(14TB)从一台服务器复制到另一台服务器?

如何将大型 LVM 卷(14TB)从一台服务器复制到另一台服务器?

我必须将一个非常大的 LVM 卷从服务器 A 复制到服务器 B。下面是服务器 A 和服务器 B 的文件系统

服务器 A

[root@AVDVD-Filer ~]# df -h 
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_avdvdfiler-lv_root
                       16T   14T  1.5T  91% /
tmpfs                 3.0G     0  3.0G   0% /dev/shm
/dev/cciss/c0d0p1     194M   23M  162M  13% /boot
/dev/mapper/vg_avdvdfiler-test
                      2.3T  201M  2.1T   1% /test
/dev/sr0              3.3G  3.3G     0 100% /mnt

服务器B

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol00
                       20G  2.5G   16G  14% /
tmpfs                 3.0G     0  3.0G   0% /dev/shm
/dev/cciss/c0d0p1     194M   23M  162M  13% /boot
/dev/mapper/VolGroup00-LogVol00
                       16T  133M   15T   1% /xiangao/lv1
/dev/mapper/VolGroup00-LogVol01
                      4.7T  190M  4.5T   1% /xiangao/lv2

我想将/dev/mapper/vg_avdvdfiler-lv_root服务器A上的LVM卷复制到/dev/mapper/VolGroup00-LogVol00服务器B上的LVM卷。服务器A和服务器B在同一个IP段。服务器A上的LVM卷中,有平均500M的avi wmv mp4等。

我尝试/dev/mapper/vg_avdvdfiler-lv_root通过 NFS 将服务器 A 安装到服务器 B,然后使用它cp进行复制。显然我失败了。

因为 LVM 卷太大,我不知道为什么。我希望这里有一个好的解决方案。

答案1

我认为在这种情况下我会使用rsyncover 。ssh

如果传输中途终止,使用tar超过ssh,您将无法恢复传输,而必须从头开始。

答案2

A焦油管可能是最适合这种情况的。

答案3

这对我来说是最好的解决方案:

dd if=/dev/myvolumegroup/mylogicalvolume bs=4096 | pv | ssh targetmachine dd of=/dev/myvolumegroup/mylogicalvolume bs=4096

您必须首先在目标机器上设置 lvm 逻辑卷,并具有相同或更多的空间。

注意,有些人建议使用 nc (netcat),但是它不起作用,因为 netcat 在收到 EOF 时会关闭,而一个分区内会有很多 EOF。Ssh 没有这个问题。

我使用 bs=4096 而不是 bs=512,因为它速度更快。YMMV。

pv 存在的原因在于它可以显示进度,这在发送大量数据时非常有用,这样您就可以了解传输速率以及预计需要等待多长时间才能完成。

答案4

如果您喜欢冒险,您可以在两台机器之间设置 DRBD。这将使两者在后台同步。

优点:

  • 不需要为整个传输卸载卷(就像块级复制一样)。
  • 在复制开始后、完成之前不会留下文件可能发生变化的漏洞(就像 rsync 那样)。
  • 可恢复。

缺点:

  • 设置更复杂,特别是对于初学者来说。
  • 需要短暂停机以重新配置现有节点以设置 CLVM 和 DRBD。

相关内容