我有一个两个磁盘的服务器,其中 root 位于镜像 LVM 卷上,而 /boot 和 /boot/efi 是 RAID1 分区。
我想完全备份我的服务器,这样当灾难发生时(两个磁盘都出现故障,或者整个服务器都消失了)我可以以最少的停机时间快速恢复。让我们假设在恢复期间,我们有一台具有完全相同规格的新服务器和两个具有相同“几何结构”(即相同的总大小和扇区大小)的新磁盘。
我计划做的事情如下:
- 备份两个磁盘的分区表
sfdisk -d /dev/XXX > partXXX.bak
,以便我以后可以在新服务器上恢复它sfdisk /dev/XXX < partXXX.bak
。 - 备份LVM元数据
vgcfgbackup
,以便以后使用时可以恢复它vgcfgrestore
。 - 使用快照和/
rsync
或其他备份工具备份 LVM 卷中的实际数据。
现在,我没有针对/boot
和/boot/efi
分区的防弹解决方案。这就是我想出的:
- 用于
dd
创建两个磁盘上整个分区的映像。 - 可能使用压缩它们
gzip
。 - 如果进行恢复,请使用
dd
(恢复分区表后)恢复两个磁盘上的整个分区映像。
该过程完成后,应该可以简单地重新启动系统,并且它应该像灾难之前一样工作,因为恢复的磁盘的内容是逐字节相同的(包括引导加载程序、超级块等)。
我的问题dd
如下:
- 由于拍摄实时文件系统的映像,可能会出现数据不一致的情况。我不希望经常主动写入这些分区,而是为了限制我计划执行的风险
sync
,然后拍摄图像,并再次重复该过程。如果两个映像相同,则可以安全地假设在第一个映像创建期间没有发生写入。 - 对整个分区(包括可用空间)进行映像似乎有些过分。虽然压缩在这里应该有所帮助,并且分区并不大(
1GiB
和200MiB
),但使用 LVM 的方法似乎更聪明。
我的问题如下:是否有mdadm
等效的vgcfgbackup
和vgcfgrestore
可以用于可靠地备份非文件元数据,例如超级块和引导加载程序,以便在恢复期间可以恢复它们,并且只需要挂载md
和rsync
数据?
另外,我的灾难恢复计划中是否遗漏了某些内容?
答案1
考虑放松和恢复。 https://relax-and-recover.org/
它处理加密(例如 LUKS)并处理增量备份。
答案2
dd
重复的 UUID,因此如果将原始文件和副本安装在一起,则会出现问题。
此外,如果不重新格式化,就无法更改 FAT 分区的 UUID,而且 EFI 系统分区确实是 FAT。
rsync
与字节到字节的标识不兼容(同上副本)。
我不相信同上副本。想象一下灾难的原因是数据损坏,同上副本将保留灾难的原因。相反,在高水平的复制中,你在复制阶段失败的机会更大,因此你可以更快地做出反应。
实际上,如果灾难彻底摧毁,您并不介意 UUID 不唯一。也许策略会有所不同,具体取决于您想要承担的风险。