背景
你好,我正在设置一个 Ubuntu GNU/Linux 服务器,它将结合:
1)软件 RAID1(使用 mdadm)- 提供针对硬件故障的数据保护
2)逻辑卷管理器(LVM) - 允许灵活地组织我的数据,并且能够在将来轻松添加更多容量。
到目前为止,我已经成功:
1) 使用 mdadm 设置 RAID1 并创建 /dev/md0
2) 设置 LVM,使 /dev/md0 成为附加到名为 vg_data 的卷组的物理卷。我有一个名为 lv_shared 的逻辑卷,安装在 /home/shared 上:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
└─sda1 ext4 0xxxxxxx-2xxx-4xxx-8xxx-1xxxxxxxxxxx /
sdb
└─sdb1 linux_raid_member ubuntu:0 02342342-2333-4444-8888-111111111111
└─md0 LVM2_member 57e241ad-aee3-4486-8eaa-222222222222
└─vg_data-lv_shared ext4 048b529c-2e39-4f49-83c9-333333333333 /home/shared
sdc
└─sdc1 linux_raid_member ubuntu:0 02342342-2333-4444-8888-111111111111
└─md0 LVM2_member 57e241ad-aee3-4486-8eaa-222222222222
└─vg_data-lv_shared ext4 048b529c-2e39-4f49-83c9-333333333333 /home/shared
我的问题
如果某个数据磁盘出现硬件故障,这没什么问题,但我该如何创建上述设置的异地备份?
如果仅使用异地备份出现问题,备份必须能够完全恢复整个系统。
在阅读了大量有关该主题的资料后,我发现了以下选项,但由于我对此完全陌生,想询问并看看社区会根据他们的经验提出什么建议。1
) LVM 快照
2) 复制其中一个 RAID 驱动器。例如:(其中 sdd 是我的异地备份物理磁盘。)
dd if=/dev/sdb of=/dev/sdd bs=64K conv=noerror,sync status=progress
上述备份方法的恢复过程是什么样的?
我真的被这个问题难住了,任何指向/相关文章/建议的指针/链接都会非常感激,因为我花了很多时间试图弄清楚该怎么做,而我的舒适区却无处可寻。
感谢您阅读我的问题,我希望它对某些人有所帮助!
更新 1:
如果我使用 rsync,我是否不会失去逻辑卷管理方案。如果您想象我将上述设置扩展为包含 3 对 RAID1,也会出现一个新问题。然后我添加它们以扩展逻辑卷的总容量。我需要 rsync 逻辑卷安装点(以复制所有数据),然后它将包含 3 个硬盘驱动器的数据。这需要复制到多个异地驱动器(因为我没有一个驱动器具有所有 3 个驱动器的容量。)使用 rsync 可以做到这一点吗?我越想这个问题,就越觉得唯一的解决方案是在异地制作一个具有相同配置的备份服务器?
答案1
我认为你应该使用rsync
它进行异地备份。这将减少每日备份流量。保存文件,而不是磁盘。
答案2
异地备份需要节省带宽,因此不要使用原始文件dd
将磁盘/卷复制到远程位置。此外,通常不需要为远程(阅读:缓慢且最后的努力)备份保留精确的分区/逻辑卷布局。
我将尝试向您展示各种可能性,按效率排序:
- 使用
rsnapshot
(本身基于rsync
)将数据复制到远程位置,利用硬链接(在远程端)进行多个时间点备份。第一次备份需要一些时间,但后续备份会快得多。为了保存有关分区/lvm 的信息,只需备份lsblk; fdisk -l /dev/sdX; pvs; vgs; lvs
- 使用GlusterFS 地理复制,同样基于
rsync
- 使用倾倒和/或柏油进行完整和增量/差异备份,并通过以下方式将其发送到远程位置
ssh
- 使用
bdsync
或者blocksync
将原始数据磁盘备份到远程位置。请注意 a) 针对源卷的快照运行这些实用程序,以及 b) 真正了解它们的工作原理 - 使用DRBD + DRBD 代理拥有一个实时、块同步的远程服务器。请务必了解 a) DRBD 代理是一个付费插件,并且 b) 这将不是保护您免受人为错误/破坏,因为更改会立即发送到远程端(将其视为网络 RAID1)
简而言之,没有灵丹妙药。不过,我强烈建议你走这rsnapshot/rsync
条路。