virtualization

使用iSCSI作为VM的storage backend

iSCSI作为VM的storage backend也很流行,原因是iSCSI协议非常适合于小文件的读写,而且其对硬件设备几乎没有什么要求,只要IP可达即可。

在本文中,我们仍然以solaris11作为外置存储,不得不说,solaris11实在是太强悍了,ZFS,comstar,nfs都是存储必备的组件模块。

iSCSI server

iSCSI server安装在solaris11上,solaris11

iSCSI client

iSCSI client将安装在hypervisor上,本文以CentOS为例。

安装iSCSI client

[root@DL165-1 ~]# yum install iscsi-initiator-utils

配置iSCSI client

[root@DL165-1 ~]# vim /etc/iscsi/iscsid.conf
...
node.session.auth.username = linuxabc
node.session.auth.password = 123456
discovery.sendtargets.auth.username = linuxabc
discovery.sendtargets.auth.password = 123456
...

启动iSCSI服务

[root@DL165-1 ~]# /etc/init.d/iscsi start

连接到iSCSI server

[root@DL165-1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.55.120
[root@DL165-1 ~]# iscsiadm -m node -T iqn.2010-06.xen-sanhead:xen-alfie --login
[root@DL165-1 ~]# /etc/init.d/iscsi restart

在xen dom0中执行fdisk -l就会看到系统中多出了一个块设备/dev/sdc,那正是ZFS storage上的iSCSI target。

[root@DL165-1 ~]# fdisk -l
...
Disk /dev/sdc: 8589 MB, 8589934592 bytes
64 heads, 32 sectors/track, 8192 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdc doesn't contain a valid partition table

最后在xen dom0机器上把domU配置文件的disk一行改成:

disk = [ "phy:/dev/sdc,xvda,w" ]

CentOS5.6+xen3.4.3升级至CentOS5.8+xen3.4.4

去年使用gitco repos成功地在CentOS5.6上安装了xen 3.4.3,已经稳定地运行了一年。前段时间CentOS和xen都升级了,于是便有了下文。

升级CentOS

在升级之前为了稳妥起见,先备份相关的配置文件。

CentOS的升级很简单,就是yum update,然后重启,唯一需要注意的就是重启前需要调整/boot/grub/menu.lst中的启动顺序,因为升级后,CentOS默认的内核启动顺序是新版的kernel。

验证一下

[root@DL165-2 ~]# cat /etc/redhat-release 
CentOS release 5.8 (Final)

升级xen

[root@DL165-2 ~]# mv /etc/yum.repos.d/GITCO-xen3.4.3 backup
[root@DL165-2 ~]# wget http://www.gitco.de/xen3.4.4
[root@DL165-2 ~]# yum update xen

将从xen3.4.3升级至xen3.4.4,验证一下:

[root@DL165-2 ~]# xm info
host                   : DL165-2
release                : 2.6.18-308.13.1.el5xen
version                : #1 SMP Tue Aug 21 17:51:21 EDT 2012
machine                : x86_64
nr_cpus                : 8
nr_nodes               : 1
cores_per_socket       : 4
threads_per_core       : 1
cpu_mhz                : 2693
hw_caps                : 178bf3ff:efd3fbff:00000000:00000310:00802001:00000000:000037ff:00000000
virt_caps              : hvm
total_memory           : 8191
free_memory            : 7579
node_to_cpu            : node0:0-7
node_to_memory         : node0:7579
xen_major              : 3
xen_minor              : 4
xen_extra              : .4
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : unavailable
cc_compiler            : gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)
cc_compile_by          : root
cc_compile_domain      : gitco.tld
cc_compile_date        : Mon Jun 25 11:29:36 CEST 2012

xend_config_format     : 4