主机运行CentOS 5.3并使用LVM创build逻辑卷(LV),并允许对这些LV执行实时快照。 我的想法是将Xen底层域名(domU)的所有映像文件存储在单个LV中,并定期拍摄该LV的快照并将磁盘映像从快照中复制出来,以便对这些系统进行实时备份。 这是可行的吗? 有没有更好的办法?
谢谢!
真正的“现场”备份不是完全可行的。
从理论上讲,使用LVM时可以获得的最好的时间是几秒钟的“暂停”时间,这应该没问题:一个domU需要同步磁盘,暂停/暂停,备份数据和恢复。
然而,这种方法存在一些“陷阱”(而不是closures机器)需要解决。
主要的问题是domU文件系统的一致性 – 请参阅思考xen-filesystem-configuration-regard-backups以获得更完整的解释。
可能最好的办法是对每个domU进行文件级备份,而不是搞乱LV快照。 或者,快照的文件级备份。
但是,如果你宁愿对你的domU进行块级别的备份 – 把所有domU磁盘存储为一个LV上的文件是可行的,而且也是我考虑过的,但是我决定不要这样做,并且用你的服务器已经configuration好的 – 每个LV一个domU有两个原因:
我已经build立了一个脚本来做一些不同于你的解释
1)“xm save domain domain.mem.backup”(带有暂停)2)LVM快照3)“xm restore domain domain.mem.backup”4)LVM快照的“dd”到domain.dd.backup 5)delete LVM快照
要恢复:1)为domain 2)“dd”从domain.dd.backup创build一个LVM LV到这个LV 3)“xm restore domain domain.dd.mem”
该域恢复时的内存状态,他已经备份。 那么如果有一些数据没有被写入,那么它会在恢复之后执行,就像从来没有停止过一样。
为什么不为每个虚拟机使用单独的LV,然后根据备份目的的需要快照,装载和复制/ rsync每个虚拟机的内容?
这取决于你想要的备份质量和你能承受的停机时间。 我会说,如果你想要一个完整的一致的备份,你必须closuresdomUs(如果Win或Linux的domUs,其他操作系统可能会有所不同)。
如果你只是想要一些数据备份,你可以给“xm暂停”命令一个机会。 只需运行“xm暂停域”,制作快照,然后继续“xm unpause domain”。 但是在文件系统层面上以及在应用程序的未刷新缓冲区(例如samba)中阻止的数据,您正在冒着数据丢失的风险。
由于dom0存储层和domU内核和应用程序之间没有通信系统(用于FS和缓冲区同步),closuresdomU是实现一致备份的唯一方法。