手动用KVM模拟OpenStack Cinder挂载iSCSI卷
什么是iSCSI呢,SCSI全称Small Computer System Interface,也即小型计算机系统接口,咱们电脑上挂载硬盘原来常用这个协议。
前面加了一个i,就是Internet,iSCSI就是在Internet上跑SCSI协议。
iSCSI协议分服务端和客户端,服务端的叫做Target,客户端的叫做Initiator,客户端和服务器端通过TCP/IP协议相互通信。
完整的iSCSI系统的拓扑结构如下:
在Server端:
创建Physical Volume: pvcreate /dev/vdb
创建Volume Group: vgcreate my-volume-group /dev/vdb
创建Logical Volume: lvcreate -L 8G -n my_logical_volume my-volume-group
将image写入LV:
qemu-img convert -O raw ubuntutest.qcow2 /dev/my-volume-group/my_logical_volume
用tgt查看iscsi target:tgtadm --mode target --op show
创建一个iscsi target
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2014-09.org.openstack:my-iscsi-volume
将Logic Volume加入刚才创建的iscsi target
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/my-volume-group/my_logical_volume
配置iscsi target监听链接
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
在客户端:
discover这个iscsi target
iscsiadm --mode discovery --type sendtargets --portal 192.168.100.200
连接那个iscsi target
iscsiadm --mode node --targetname iqn.2014-09.org.openstack:my-iscsi-volume --portal 16.158.166.197:3260192.168.100.200:3260 –login
Qemu可以直接连接/dev/sdb
Qemu也可以直接连接iSCSI
但是需要编译的时候,启动--enable-libiscsi,将libiscsi编译进去
然而默认的ubuntu下面的没有编译进去
ldd /usr/bin/qemu-system-x86_64
ISCSI Logout
iscsiadm --mode node --targetname iqn.2014-09.org.openstack:my-iscsi-volume --portal 192.168.100.200:3260 --logout