我正在寻找关于备份我目前的6个vm的build议(并且很快会增长到20个)。 目前我正在运行一个两节点的proxmox集群(这是一个debian库,使用kvm进行虚拟化,并使用自定义Web前端进行pipe理)。 我有两个几乎相同的盒子,amd phenom II x4和华硕主板。 每台机器有4 500 GB sata2硬盘,1个用于proxmox安装的os和其他数据,3个使用mdadm + drbd + lvm在两台机器之间共享1.5 TB的存储空间。 我将lvm映像挂载到所有虚拟机的kvm。 我目前有能力从一台机器到另一台机器进行实时传输,通常在几秒钟之内(在m $ sql服务器上运行win2008的最大虚拟机大约需要2分钟)。 我正在使用proxmox的内置vzdump实用程序来拍摄虚拟机的快照,并将这些快照存储在networking上的外部硬盘上。 然后我有jungledisk服务(使用rackspace)同步vzdump文件夹进行远程异地备份。
这一切都很好,但它不是很有伸缩性。 首先,备份本身可能每晚需要几个小时。 随着jungledisk的块级增量传输,同步只传输一小部分数据异地,但仍需要至less半小时。
当然,更好的解决scheme是让我能够立即获得两个时间点的差异(比如从上午6点到上午7点写的),然后将其压缩,然后将该差异文件发送到备份服务器,该备份服务器将立即转移到远程存储在机架上。 我已经看了一些zfs,它是发送/接收的能力。 这与bzip中的数据pipe道或什么东西似乎是完美的。 但是,使用zfs实施nexenta服务器似乎需要至less一个或两个以上的专用存储服务器向proxmox服务器提供iSCSI块卷(通过zvol's ???)。 如果可能的话,我宁愿保持设置尽可能小(即没有单独的存储服务器)。
我也简要阅读了关于zumastor。 看起来它也可以做我想做的事,但似乎在2008年停止了发展。
那么,zfs,zumastor还是其他?
这在你的情况下可能是不可能的,所以我希望在这种情况下我不会被低估,但是改变你的备份策略可能更有效率。 如果您备份特定数据而不是虚拟机快照,则备份运行速度会更快,并且捕获更改将更为容易。
根据您的虚拟机及其用途,您可以让他们将数据备份到现在每天存储快照的位置(或适当的时间表),然后JungleDisk可以备份数据。 这将更有效地传输更改的文件,备份所需的空间以及所需的时间将会减less。 此外,您仍然可以拍摄快照以保留,而且可以less一些(例如每周)。
在这种情况下,您可以随时启动新的虚拟机并恢复数据,或者使用较旧的快照来恢复虚拟机,然后使用数据备份恢复到最近的点。
如果我正在做异地备份,我会select以下选项:
(a)将SCP拷贝到远程服务器的shell脚本,这样你可以添加一个cron作业,自动运行创build备份的脚本。 另外,您可以在实际传输文件之前创build一个临时存档文件,从而通过在sill gziping时不传输来节省带宽。
要么
(b)安装像Webmin这样的服务器pipe理工具,并让它做自动备份。 我现在正在我的生产服务器上唱这个没有任何问题,它完美地工作。 我也推荐cloudmin(付费)来pipe理许多虚拟机,因为它提供了一个完整的解决scheme。
一些额外的链接:
http://www.debianhelp.co.uk/backup.htm
http://ubuntuforums.org/showthread.php?t=35087
希望RayQuang帮助
你可能想看看backuppc。
backuppc可以在增量复制的rsync之上工作。
更进一步,你可以轻松地写一个黑名单的文件夹谁不需要备份。 例如:temp / / tmp .garbages / …
http://backuppc.sourceforge.net/
backuppc有一个干净的networking界面,允许你直接下载一些备份的一部分作为一个zip文件。 它可以由使用check_backuppc的nagios监视。
我不确定你计划做多less架构改变来提高可扩展性。 但是,如果你愿意转换VM平台,你可以看看VMWare。
有很多好的VMWare备份解决scheme,我个人使用过VzionCore。 然后你可以做一些光滑的东西快照和时间点恢复。 甚至有能力故障转移到远程站点。
zfs做得很好,你已经提到知道,尽pipe在2服务器规模上工作不好的缺点。 它也不会给你DRDB故障转移,即Nexenta将是一个单一的故障点。
您可以考虑尝试在OpenSolaris或NexentaCore上获得VirtualBox,但不像ProxMox + DRDB那样简单,因此您可以重新使用现有机器。
如果你测量你的改变并发现它们足够低,你可以尝试使用第三个镜像的DRDB – 只有在你的虚拟机上的写入数量非常低的情况下才能工作。
Steve Radich – 自1995年以来的Windows主机和SQL性能 – http://www.BitShop.com/Blogs.aspx
我运行一个大型的proxmox集群,不得不build议你从内置的vzdump快照样式备份中改变你的备份策略,这需要很长的时间,因此备份总是很大,因此个别文件的恢复时间非常长。
考虑一个“在客人”文件备份解决scheme,其中有很多。 Backuppc,Urbackup,bacula,amanda等…
它会更快,消耗更less的空间,并且更容易恢复特定的文件。
我想我可能已经find了我的问题的最终答案:
BUP https://github.com/bup/bup
特征:
它使用滚动校验和algorithm(类似于rsync)将大文件分割成块。 这样做的最有用的结果是您可以增量备份大型虚拟机(VM)磁盘映像,数据库和XML文件,即使它们通常都在一个巨大的文件中,并且不会为多个版本使用大量的磁盘空间。
它使用git(开源版本控制系统)的packfile格式,所以即使你不喜欢bup的用户界面,也可以访问存储的数据。
与git不同的是,它直接编写包文件(而不是单独的垃圾回收/重新打包阶段),所以即使有大量的数据也是如此。 bup的改进索引格式也允许你追踪比git(百万)更多的文件名,并追踪更多的对象(数百或数千GB)。
数据在增量备份之间“自动”共享,而无需知道哪个备份是基于哪个备份的,即使备份是由两台甚至不知道彼此的不同计算机构成的。 你只要告诉bup就可以备份,并且只保存最less量的数据。
您可以直接备份到远程Bup服务器,而不需要备份计算机上的大量临时磁盘空间。 如果您的备份中途中断,下一次运行将会停止。 build立一个bup服务器很简单:只要在你有ssh访问权限的机器上安装bup。
即使您的磁盘没有检测到坏扇区,Bup也可以使用“par2”冗余来恢复损坏的备份。
即使备份是增量备份,您也不必担心恢复完整备份,然后依次恢复每个增量备份; 增量备份就像完全备份一样,只占用较less的磁盘空间。
你可以将你的bup仓库挂载为FUSE文件系统,并以这种方式访问内容,甚至通过Samba导出。
编辑:( 2015年8月19日)又一个伟大的解决scheme出来,甚至更好: https : //github.com/datto/dattobd
它允许实时快照,实质上就是将类似于COW的特性提供给Linux中任何常规的旧文件系统。
编辑:(2016年7月15日)甚至是另一个很棒的解决scheme,从水中扑灭: https : //github.com/borgbackup/borg
它修剪的时候比bup特别好。 它似乎对压缩,encryption和高效的重复数据删除有很大的支持。 dattobd + borg ftw !!!