CRM系统|加入收藏|小博客
18560384436
>> 返回 您当前所在位置:首页 >> 支持中心 >> 详细内容

如何把 File-based 的 Xen 虚拟机转化成 LVM-based 的

更新时间:2014-07-29 07:11:46点击次数:2880次字号:T|T
今天 SUN(还是习惯叫 SUN)做了一个 workshop,他们做了一个 ppt,宣传了一下他们的产品,提到了 SUN VDI, VMware VDI 应用到 SunRay 上的一些东西。VPSee 关心的不是他们的 ppt,是上个月从他们那里 “骗” 来的设备到了没有。今天收获不错,收到 4台 SUN Fire V20z,1台 SUN Fire X2200 M2,10几个 SunRay 客户机。SUN Fire V20z 是很老的机型,现在已经停产,不过硬件配置还是蛮强劲的...

今天 SUN(还是习惯叫 SUN)做了一个 workshop,他们做了一个 ppt,宣传了一下他们的产品,提到了 SUN VDI, VMware VDI 应用到 SunRay 上的一些东西。VPSee 关心的不是他们的 ppt,是上个月从他们那里 “骗” 来的设备到了没有。今天收获不错,收到 4台 SUN Fire V20z,1台 SUN Fire X2200 M2,10几个 SunRay 客户机。SUN Fire V20z 是很老的机型,现在已经停产,不过硬件配置还是蛮强劲的,2颗双核 AMD Opteron 2.2 GHz,8GB RAM,2个 73 GB Ultra320 SCSI 硬盘。现在还没有想好服务器做什么用,先玩玩再说~~

sun fire v20z

说正题⋯⋯

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