【51CTO专稿】你知道吗?使用LVM分区作为Xen虚拟机的文件存储,不仅可以最大发挥LVM的性能,而且还可以很方便的管理虚拟机。下面,晓辉将介绍这是如何实现的。
环境:CentOS 5.7 x86_64
1、卸载/data1 ,将其做为LVM分区
umount /data1
fdisk -l 命令的输出:
Disk /dev/sda: 898.3 GB, 898319253504 bytes 255 heads, 63 sectors/track, 109214 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 51006 409601272+ 83 Linux /dev/sda3 51007 52918 15358140 83 Linux /dev/sda4 52919 109214 452197620 5 Extended /dev/sda5 52919 54830 15358108+ 83 Linux /dev/sda6 54831 56135 10482381 83 Linux /dev/sda7 56136 56396 2096451 82 Linux swap / Solaris /dev/sda8 56397 56460 514048+ 83 Linux /dev/sda9 56461 109214 423746473+ 83 Linux
将大分区/dev/sda9 建立物理卷
# pvcreate /dev/sda9 Physical volume "/dev/sda9" successfully created
pvscan命令输出:
PV /dev/sda9 lvm2 [404.12 GB] Total: 1 [404.12 GB] / in use: 0 [0 ] / in no VG: 1 [404.12 GB]
2. 使用vgcreate命令建立volume groupm名字为xen-volume2
# vgcreate xen-volume /dev/sda9 Volume group "xen-volume" successfully created
再看pvscan命令的输出,和前一次不一样了:
PV /dev/sda9 VG xen-volume lvm2 [404.11 GB / 404.11 GB free] Total: 1 [404.11 GB] / in use: 1 [404.11 GB] / in no VG: 0 [0 ]
再看看vgdisplay命令的输出:
# vgdisplay -v xen-volume2 Using volume group(s) on command line Finding volume group "xen-volume" --- Volume group --- VG Name xen-volume System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 404.11 GB PE Size 4.00 MB Total PE 103453 Alloc PE / Size 0 / 0 Free PE / Size 103453 / 404.11 GB VG UUID JWIYoU-eaBA-MVdN-NX9Q-EEB0-sme7-Cxo85D --- Physical volumes --- PV Name /dev/sda9 PV UUID H4ovdJ-GwoB-rfOK-jLbG-Px68-r1QG-SFF3my PV Status allocatable
3. 在上面建立的名为“xen-volume2”的volume group上创建一个容量为150G的,名称为“3-34”的logic volume:
# lvcreate -L 150G -n 3-34 xen-volume2 Logical volume "xen-lv" created
查看Logic volume的device node,这个device node的命名规则是volume group + logic volume:
# ls -al /dev/mapper/
总计0
drwxr-xr-x 2 root root 80 Feb 23 10:29 . drwxr-xr-x 14 root root 4120 Feb 23 10:29 .. crw------- 1 root root 10, 62 Feb 23 10:21 control brw-rw---- 1 root disk 253, 0 Feb 23 10:29 xen--volume-3--34
另外,在/dev目录下有一个以volume group为名字的目录,这个目录下有一个以logic volume为名字的软链接文件,这个文件指向/dev/mapper下的device node。
# ls -al /dev/xen-volume2/
总计0
drwxr-xr-x 2 root root 60 Feb 23 10:29 . drwxr-xr-x 14 root root 4120 Feb 23 10:29 .. lrwxrwxrwx 1 root root 29 Feb 23 10:29 3-34 -> /dev/mapper/xen--volume-3--34
查看Logic volume的属性:
# lvdisplay /dev/xen-volume2/3-36 --- Logical volume --- LV Name /dev/xen-volume/3-34 VG Name xen-volume LV UUID RMM48V-huJV-dKca-Gra0-f6sr-WNxS-9In3B0 LV Write Access read/write LV Status available # open 0 LV Size 150.00 GB Current LE 38400 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256
4. 在/etc/fstab文件里找到data1分区哪一行,将其注释掉,防止重启时候出错。
#LABEL=/data1 /data1 ext3 defaults 1 2
5、安装一个 Linux 虚拟机
以/dev/xen-volume2/3-37为xen硬盘分区,安装一个4G内存,150G硬盘的linux 虚拟机
1)建立3.36 lvm分区50G,名字为3-36
lvcreate -L 50G -n 3-37 xen-volume2
2)virt-install -n 3.37 -p -r 2048 --vcpus=4 -f /dev/xen-volume2/3-36 -l http://localhost/os/5.7/i386/ --nographics
意思是名字为3.37 ,半虚拟化、内存为2G 、cpu核心数4、硬盘所在分区/dev/xen-volume2/3-37、操作系统网络地址 http://localhost/os/5.7/i386/ 不使用图形界面。
附注:测试 file 和 LVM 写速度
测试命令
dd if=/dev/zero of=test.bin bs=4K count=512K ;dd if=/dev/zero of=test.bin bs=4K count=512K ;dd if=/dev/zero of=test.bin bs=4K count=512K
Xen 使用 LVM 作为 os tap:
母机写速度 331M/s
2147483648 bytes (2.1 GB) copied, 6.17998 seconds, 347 MB/s 2147483648 bytes (2.1 GB) copied, 6.56825 seconds, 327 MB/s 2147483648 bytes (2.1 GB) copied, 6.67982 seconds, 321 MB/s
虚拟机(linux)写速度 292M/s 相当于母机的88%
2147483648 bytes (2.1 GB) copied, 7.34302 seconds, 292 MB/s 2147483648 bytes (2.1 GB) copied, 7.91667 seconds, 271 MB/s 2147483648 bytes (2.1 GB) copied, 6.86898 seconds, 313 MB/s
Xen 使用 file 作为 os tap:
母机写速度 171M/s
2147483648 bytes (2.1 GB) copied, 13.8047 seconds, 156 MB/s 2147483648 bytes (2.1 GB) copied, 11.737 seconds, 183 MB/s 2147483648 bytes (2.1 GB) copied, 12.2207 seconds, 176 MB/s
虚拟机(linux)写速度57.2M/s 相当于母机的33%
2147483648 bytes (2.1 GB) copied, 43.2957 seconds, 49.6 MB/s 2147483648 bytes (2.1 GB) copied, 36.5314 seconds, 58.8 MB/s 2147483648 bytes (2.1 GB) copied, 33.9732 seconds, 63.2 MB/s
总结:为什么要混合使用 file 和 LVM ?
根据这两种技术的优缺点和技术特性,在跑MySQL的 Xen Linux上,应充分利用 LVM 做为虚拟机os载体,尽量发挥 LVM 的性能优势。而 file 虽然写性能差,但是迁移方便,这是它的优势。
总之,使用的时候可根据具体需求合理选择 file 和 LVM 作为虚拟机操作系统载体。