手动用KVM模拟OpenStack Cinder挂载iSCSI卷

2020-06-01 00:00:00 创建 专区 客户端 编译 协议

什么是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



相关文章