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的编程接口。这里不再细述了。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iSCSI 是一种存储协议,它允许计算机通过网络访问远程存储设备。在 Ubuntu 上,可以使用 iSCSI 服务来部署网络存储。 以下是在 Ubuntu 上部署 iSCSI 服务的步骤: 1.安装 iSCSI 服务 ```sudo apt-get update sudo apt-get install open-iscsi``` 2.配置 iSCSI 服务 在 iSCSI 服务安装完成后,需要进行一些配置才能使其正常工作。首先,需要编辑 iSCSI 配置文件 `/etc/iscsi/iscsid.conf`: ```sudo nano /etc/iscsi/iscsid.conf``` 在文件中找到以下两行并取消注释: ```node.startup = automatic node.session.auth.authmethod = CHAP``` 保存并关闭文件。 3.创建 iSCSI 盘 要创建 iSCSI 盘,需要使用 LVM(逻辑卷管理器)来创建一个物理卷。首先,使用以下命令查看可用的磁盘: ```sudo fdisk -l``` 然后,可以使用 `pvcreate` 命令将磁盘分区转换成物理卷: ```sudo pvcreate /dev/sdb``` 接下来,使用 `vgcreate` 命令创建一个卷组: ```sudo vgcreate my_volume_group /dev/sdb``` 最后,使用 `lvcreate` 命令创建一个逻辑卷: ```sudo lvcreate -L 10G -n my_logical_volume my_volume_group``` 4.配置 iSCSI 盘 要配置 iSCSI 盘,需要创建一个 iSCSI Target,该 TargetiSCSI 协议转换成 SCSI 协议。首先,使用以下命令编辑 iSCSI Target 配置文件 `/etc/tgt/conf.d/iscsi.conf`: ```sudo nano /etc/tgt/conf.d/iscsi.conf``` 在文件中添加以下内容: ``` <target iqn.2021-07.com.example:storage.disk1> backing-store /dev/my_volume_group/my_logical_volume initiator-address 192.168.1.100 incominguser my_username my_password </target> ``` 其中: - `iqn.2021-07.com.example:storage.disk1` 是 iSCSI 盘的唯一标识符。 - `backing-store` 指定了要映射的物理卷。 - `initiator-address` 指定了允许连接iSCSI 盘的 IP 地址。 - `incominguser` 指定了 CHAP 认证的用户名和密码。 保存并关闭文件。 5.启动 iSCSI 服务 使用以下命令启动 iSCSI 服务: ```sudo systemctl start iscsid sudo systemctl start tgt``` 6.连接 iSCSI 盘 使用以下命令连接 iSCSI 盘: ```sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.200 sudo iscsiadm -m node --login``` 其中,`192.168.1.200` 是 iSCSI Target 的 IP 地址。 接下来,可以使用 `lsblk` 命令查看已连接的磁盘: ```sudo lsblk```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值