热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

在Xen虚拟机中使用LVMsnapshot镜像

一般的虚拟机镜像文件,比较直接的做法是存放在一个img镜像文件里,或者直接使用/dev/sda*分区。但是万一把虚拟机分区“玩坏”了就不好恢复了。qemu支持一种镜像格式qcow2,能够创建增量镜像,这样可以把修改存在新文件里,当出错时可以保护原始镜像。这个

一般的虚拟机镜像文件,比较直接的做法是存放在一个img镜像文件里,或者直接使用/dev/sda*分区。但是万一把虚拟机分区“玩坏”了就不好恢复了。

qemu支持一种镜像格式qcow2,能够创建增量镜像,这样可以把修改存在新文件里,当出错时可以保护原始镜像。这个功能非常有用,【xen似乎支持qcow2,待查】但是Xen自身不支持。

Xen想要使用增量镜像,只能使用LVM文件系统的snapshot快照功能。(note:Xen HVM虚拟机因为使用qemu做前端,所以同样可以用qcow2格式。但是PV虚拟机就只能用LVM snapshot)

LVM可以对一个分区创建多个快照(snapshot),作为分区的增量镜像。在快照里的修改不会影响到源分区。

在创建快照时,需要指定快照的大小。当snapshot的空间被填满时,LVM会丢弃这个快照(奇怪的设定尴尬),所以尽量不要塞满……而比较新的lvm版本支持把snapshot与本体分区合并,如果建立了快照又想同时修改本体和快照,可以使用这个merge功能。

下面是具体的配置。

环境:

LVM版本为2.02.54。这个版本比较老。比较新的版本支持把snapshot与本体分区合并。

GUI使用KDE的kvpm,和Gnome下的system-config-lvm

LVM的文件系统可以定义在物理分区上,或者镜像文件里。我使用的是/dev/sda*分区。

建立lvm分区:

sudo pvcreate /dev/sda11 -v
注意这一步会抹掉分区头部信息。剩下的分配卷组/分区的步骤可以在GUI里完成。最后的结果是这样:
/dev/sda11(Physical Volume)
--- vg0(Group0)
------ PV (10GB, ext4)
------ swap (512MB, swap)

其他的预留给hvm虚拟机和snapshot

安装配置好镜像pv里的所有内容后,使用GUI建立两个snapshot:pv-shot1和pv-shot2,大小均为2GB

然后把虚拟机配置文件做相应的修改:

xm_vars.var('volume', use="Specify the logical volume (snapshot) used")
disk        = [
                  "phy:/dev/vg0/%s,xvda2,w" % volume,
              ]
name        = 'debian-pv-%s' % volume
运行时的命令行:
sudo xm create -c debian-pv.cfg volume=pv-shot1
这样启动的虚拟机,所有的修改都在snapshot中进行,原始镜像可以得到很好的保护。
推荐阅读
author-avatar
没有1200
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有