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

勿忘初心2018-11-08 14:07

此文已由作者刘超授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验


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

11.1—11.15云计算基础服务全场5折起

免费体验云安全(易盾)内容安全、验证码等服务

更多网易技术、产品、运营经验分享请点击