Xen 支持多种存储方式,大致可分三类:最普通最直接的文件存储(file storage),本地物理硬盘或者 LVM 存储(physical devices/LVM storage),更高级一点的 NFS、NAS、GNBD、SAN、AoE、iSCSI 网咯存储(network storage)等。这三类存储介质和方法都被我们用到了生产环境,各有各的优点,VPSee 偏向混合使用,有助于我们了解不同技术的特性。
先扫描一下系统,看看系统上的 LVM 是怎么分配的:
# vgscan Reading all physical volumes. This may take a while... Found volume group "vpseexen" using metadata type lvm2 # lvscan ACTIVE '/dev/vpseexen/root' [6.52 GB] inherit ACTIVE '/dev/vpseexen/swap_1' [9.25 GB] inherit ACTIVE '/dev/vpseexen/home' [116.88 GB] inherit
假设我们要转化的虚拟机镜像是 xen01.img(对应的交换分区文件是 xen01.swap)。首先我们需要在卷组上创建一个逻辑卷用来复制虚拟机镜像(xen01.img),逻辑卷大小和 xen01.img 一样,还需要一个逻辑卷用来复制 swap 文件(xen01.swap):
# lvcreate -L10G -n xen01_root vpseexen # lvcreate -L512M -n xen01_swap vpseexen
创建成功后就会出现2个新的逻辑卷:
# lvscan ACTIVE '/dev/vpseexen/root' [6.52 GB] inherit ACTIVE '/dev/vpseexen/swap_1' [9.25 GB] inherit ACTIVE '/dev/vpseexen/home' [116.88 GB] inherit ACTIVE '/dev/vpseexen/xen01_root' [10.00 GB] inherit ACTIVE '/dev/vpseexen/xen01_swap' [512 MB] inherit
接着把虚拟机的镜像内容 dd 到逻辑卷上:
# dd if=/home/vpsee/xen/xen01.img of=/dev/vpseexen/xen01_root # dd if=/home/vpsee/xen/xen01.swap of=/dev/vpseexen/xen01_swap
修改虚拟机的 Xen 配置文件,guest 和 host 使用相同的 Xen 内核启动:
# vi /etc/xen/xen01 kernel = "/boot/vmlinuz-2.6.26-2-xen-amd64" ramdisk = "/boot/initrd.img-2.6.26-2-xen-amd64" vcpus = 1 memory = 256 name = "xen01" vif = [ '' ] disk = [ 'phy:/dev/vpseexen/xen01_root,sda1,w', 'phy:/dev/vpseexen/xen01_swap,sda2,w' ] root = "/dev/sda1" extra = "fastboot"
最后启动拷贝成功的基于 LVM 的虚拟机就可以了:
# xm create xen01
LVM的管理参考:
Physical Volume Volume Group Logical Volume
scan pvscan vgscan lvscan
create pvcreate vgcreate lvcreate
display pvdispaly vgdisplay lvdisplay
remove pvremove vgremove lvremove
1.创建LVM,
1.1 创建并初始化一个支持LVM的分区
# pvcreate /dev/sda10
1.2 在这个分区上创建一个VG( volume group ),并命名为 ‘vg’
# vgcreate vg /dev/sda10
1.3 在这个VG上创建一个逻辑分区LV( logical volume ),大小 4GB ,并命名为 ‘myvmdisk1’
# lvcreate -L4096M -n myvmdisk1 vg
1.4现在你应当能得到这个: /dev/vg/myvmdisk1 ,在它上面创建文件系统,并安装上它,拷入系统,再反安装它:
# mkfs -t ext3 /dev/vg/myvmdisk1
# mount /dev/vg/myvmdisk1 /mnt
# cp -ax / /mnt
# umount /mnt
1.5 修改XEN的配置文件成为这个样子
disk = [ ’phy:vg/myvmdisk1,sda1,w’ ]
注意,一定要反安装分区后,再启动XEN。不然,是无法启动的。
在SUSE10的环境下,也可以通过图形界面实现这个过程,在YaST / SYSTEM 中,有LVM 和 XEN 的图标。