使用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" ]