所以,我现在有一个非常棒的KVM设置,主机和来宾域上的CentOS5.5,pipe理所有configuration的libvirt等。来宾域文件系统存储在硬件RAID5卷上的LVM中,所以我具有备份和低级数据冗余的灵活性。
我今天testing了virt-clone,除了花费大约30分钟的时间将24G的数据从暂停域的LVM磁盘复制到新虚拟机的新LVM卷之外,它的运行情况非常好。
我的问题是:我不能只使用LVM快照创build新的虚拟机的根磁盘? 例如: lvcreate -s guest1_root -n guest2_root -L 8G raid_vg
现在,我对LVM快照的理解是,快照存储对原始块进行的更改的逆向增量,以便快照占用很less的实际空间,即使原始卷已经写入,也可以读出原始块。 LVM2增加了读写快照,这就开辟了这个有趣的可能性。
事实上, LVM HOWTO甚至build议将这个特性与Xen结合使用:
这为LVM1的只读快照带来了许多新的可能性。 (…)创build用于Xen的卷也很有用。 您可以创build磁盘映像,然后将其快照并修改特定domU实例的快照。 然后,您可以创build原始卷的另一个快照,并为其他domU实例修改该快照。 由于快照所使用的唯一存储区是源或快照上已更改的块,因此大部分卷都由domU共享。
这似乎是一个非常强大的工具,我想知道是否有人在生产虚拟化环境中尝试过,可以考虑采用这种方法的任何供应商(Citrix,VMWare),或者想到这个想法的任何严重问题。 我可以想到以下潜在的问题:
作为比我更有可能拥有更多虚拟化经验的人,有没有什么能够让这种设置让人想要尖叫呢?
这样做是完美的。 你不想要的是有快照的父(原来的,或源,或任何你想调用它)在同一时间使用,因为它会导致IO倍增(休伯特是对的,不用一直使用源音量就容易防止)。
如果您在LVM上安装了一个主操作系统,并且您快照了四次,则不会有太多的IO损失,因为您只写入单个快照卷。 当然,这不是免费的,但其他文件系统或虚拟磁盘上的其他forms的快照也不是。 总是有一个地方的成本。
休伯特说的另外一件事是,你必须考虑快照的大小。 您将需要确保快照卷能够继续写入。 一个完整的快照卷将打破东西糟糕。 防止这种情况的一种安全防护方法是使快照卷的大小(或更大)与源卷相同。 不过,这样可以减less使用less量磁盘空间的好处。
你知道qemu图像快照也可以吗?
虽然我没有尝试使用LVM作为KVM存储,但我确实使用了它作为Samba的卷影function,我可以告诉你一件事情:性能是深海的。
每个快照都需要额外的写入操作,如果您有一个基本快照卷和4个快照,写入基本卷时写入驱动器的写入量将乘以5。
至于具体的问题:
不幸的是,我所知道的只有3个系统能够很好地处理快照:NetApp WAFL,ZFS和btrfs。 如果系统不重要,btrfs可能值得一试。
我甚至可以说ZFS值得一试,可以很容易地build立一个由某种磁盘(光纤,iSCSI等)支持的基于Nexenta的系统,而且性能相当不错。 如果性能不是绝对关键的话,那么我会在本地存储上推荐这种方法,因为如果您的虚拟化服务器出现故障,这会给您一个简单的恢复scheme。