linux iscsi网络的三种工具tgt iscsi_tgt targetcli

组建iscsi 网络三种target工具,分别为tgt,iscsi_tgt,和targetcli ;
initiator 端均使用open-iscsi即可;
  1. a. tgt
          使用tgtadm命令创建iscsi target;
          首先,创建target
               tgtadm --lld iscsi --mode target --op new --tid 1 --targetname=iqn.xxxxx:xxx
               tgtadm --lld iscsi --mode target --op new --tid 2 --targetname=iqn.xxxxx:xxx
          其次,--op bind,将target与initiator 地址bind,也可指定-I All,所有initiator均可连接到该target.
               tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address <address>  or
               tgtadm --lld iscsi --mode target --op bind --tid 2 -I ALL
          再次,在target上创建lun.
               tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 [-f|--bsoflags {direct|sync}] [-b|--backing-store /dev/sda]
          显示创建target:
               tgtadm --lld iscsi --mode target --op show
          删除lun:
               tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1 
          删除target:
               tgtadm --lld iscsi --mode target --op delete --tid 1

          b. open-iscsi
          在initiator端使用iscsiadm来管理iscsi initiator;
          首先,发现target
               iscsiadm -m discovery -t sendtargets -p ip:port
          然后,用一个node来记录发现的target
               iscsiadm -mode node
          login:
               iscsiadm --mode node [--targetname iqn.xxxxxx:xxx] --portal|-p ip:port --login
          logout:
               iscsiadm --mode node [--targetname iqn.xxxxxx:xxx] --partal|-p ip:port --logout
          删除discovery的target:
               iscsiadm --mode discovery -t sendtarget -p ip:port --op|-o delete 
          删除记录的node:
               iscsiadm -mode node --op|-o delete
  1. 使用iscsi_tgt创建iscsi target
          iscsi_tgt是spdk+dpdk中带的一套支持iscsi协议的方法。在使用iscsi_tgt需要先下载dpdk和spdk。
          编译spdk和dpdk参见官方网站:
          
          将spdk+dpdk编译好之后,首先执行 spdk/scrips/setup.sh:  mount hugepage 文件系统
          运行iscsi_tgt需要vfio-pci的支持:  modprobe vfio-pci;
          然后,配置iscsi.conf,在/usr/local/etc/spdk/iscsi.conf ,具体可参见spdk/etc/spdk/iscsi.conf.in示例配置文件;
          其中,支持了 Nvme, AIO ,Malloc等块设备方式;
          
          最后,运行命令: ./iscsi_tgt -m 0xxx  通过-m mask来决定spdk 起几个线程来polling;具体参看iscsi_tgt -h;

          initiator端配置方式,同tgt中讲解的open-iscsi

  1. 使用targetcli创建iscsi target
          Linux-IO target 在linux内核2.6.38以后,用软件实现的scsi target,起支持的SAN技术中所有流行的存储协议包括Fibre Channel、FCoe
\iSCSI、iser等,同时还能为本机生成模拟的scsi设备,以及为虚拟机提供基于virtio的scsi设备。
          LIO架构图如下:

          LIO在内核态实现了对Target的模拟,配置管理则采用基于sysfs的方式,提供友好的的用户管理工具。在用户态,各大发行版都包含了targetcli和rtslib,targetcli程序用于配置管理,rtslib则提供Python编程接口。
          1). targetcli
  1. 1a)root权限运行targetcli  
  2. 1b)浏览存储对象, ls查看目录树信息,cd到执行目录  
  3. 1c)创建文件存储对象  
  4. cd /backstores/fileio  
  5. create disk0 /tmp/disk0.img 10MB  
  6. cd /backstores/ramdisk  
  7. create rd0 10MB  
  8. 1d)创建iSCSI目标  
  9. cd /iscsi  
  10. create  
  11. cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.6b448471ba5e/tpg1/  
  12. luns/ create /backstores/fileio/disk0  
  13. luns/ create /backstores/ramdisk/rd0  
  14. portals/ create 0.0.0.0  
  15. set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1 cache_dynamic_acls=1  
  16. cd /  
  17. ls  
  18. saveconfig  
  19. 1e)启动iscsi target服务  
  20. [root@localhost ~]# service target start  
  21. [root@localhost ~]# service target status  
  22. 1f)装载iSCSI Target  
  23. [root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 127.0.0.1  
  24. 127.0.0.1:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.6b448471ba5e  
  25. [root@localhost ~]# iscsiadm –mode node \  
  26. > –targetname iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.6b448471ba5e \  
  27. > –portal 127.0.0.1 –login  
  28. [root@localhost dennis]# lsscsi  
  29. [2:0:0:0] disk ATA ST3160815AS A /dev/sda  
  30. [6:0:0:0] disk LIO-ORG disk0 4.0 /dev/sdb  
  31. [6:0:0:1] disk LIO-ORG rd0 4.0 /dev/sdc  
  32. 1g)卸载并删除iSCSI目标  
  33. iscsiadm –mode node –targetname iqn.2003-01.org.linux-iscsi.localhost.x8664:sn. 6b448471ba5e –portal 127.0.0.1 –logout  
  34. targetcli iscsi/ delete iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.6b448471ba5e  
         除了targetcli之外,rtslib提供了python的编程接口。这里不再细述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值