iscsi Target (TGT)

简介:

最近在做iscsi 性能评估,为以后ESXi集群等高级功能做准备,使用过openfiler,不过测试时openfiler 自带的iscsi target软件性能似乎有问题,所以有了本文的主角 TGT ,RHLE/CENTOS 自带,使用 Yum 安装即可,下面是具体步骤。  

 
一 TGT 设置
 

 
 
  1. 检查系统是否安装 scsi-target  
  2. //用来将Linux 系统模拟成为iSCSI target 的功能,也就是常说的软iscsi target. 
  3. # rpm -qa | grep scsi 
  4. scsi-target-utils-1.0.14-4.el6.x86_64 
  5.  
  6. iscsi target 配置文档与管理程序 
  7.  
  8. /etc/tgt/targets.conf   主配置文档,设置要分享的磁盘 
  9. /usr/sbin/tgt-admin     线上查询、删除target 等功能的管理工具; 
  10. /usr/sbin/tgt-setup-lun 建立target 以及设置分享的磁盘与可使用的用户端等工具软体。 
  11. /usr/sbin/tgtadm        手动直接管理的管理员工具(可使用配置文档取代); 
  12. /usr/sbin/tgtd          主要提供iSCSI target 服务的主程式; 
  13. /usr/sbin/tgtimg        建置预计分享的映像档装置的工具(以映像档模拟磁盘) 
  14.  
  15. 准备iscsi共享的磁盘 
  16. //本次将共享一个LVM 物理卷 
  17.  
  18. 査看卷组 
  19. //注意 关键字"Free  PE / Size"  
  20. [root@localhost ~]# vgdisplay  
  21.   --- Volume group --- 
  22.   VG Name               VolGroup 
  23.   System ID              
  24.   Format                lvm2 
  25.   Metadata Areas        2 
  26.   Metadata Sequence No  6 
  27.   VG Access             read/write 
  28.   VG Status             resizable 
  29.   MAX LV                0 
  30.   Cur LV                4 
  31.   Open LV               3 
  32.   Max PV                0 
  33.   Cur PV                2 
  34.   Act PV                2 
  35.   VG Size               1.36 TiB 
  36.   PE Size               4.00 MiB 
  37.   Total PE              356833 
  38.   Alloc PE / Size       151074 / 590.13 GiB 
  39.   Free  PE / Size       205759 / 803.75 GiB 
  40.   VG UUID               ZjL1o1-I90u-K0iY-MwPJ-TA1h-cez3-q4crAe 
  41.     
  42.  
  43. 创建物理卷 
  44. //创建的逻辑卷大小200G,名称为iscsi 属于VolGroup卷组 
  45. lvcreate -L 200G -n iscsi VolGroup 
  46.  
  47. 査看建立的逻辑卷 
  48. [root@localhost ~]# lvscan  
  49.   ACTIVE            '/dev/VolGroup/lv_root' [50.00 GiB] inherit 
  50.   ACTIVE            '/dev/VolGroup/lv_home' [306.65 GiB] inherit 
  51.   ACTIVE            '/dev/VolGroup/lv_swap' [33.48 GiB] inherit 
  52.   ACTIVE            '/dev/VolGroup/iscsi' [200.00 GiB] inherit 
  53.  
  54. 配置target.conf (TGT) 
  55.  vim /etc/tgt/targets.conf 
  56. //添加如下 
  57. <target iqn.2012-04.com.test:server.target1> 
  58.     backing-store /dev/VolGroup/iscsi
  59. lun 10
  60. </target> 
  61.  
  62. //此配置文档语法如下: 
  63. <target iqn.相关装置的target名称> 
  64.     backing-store /你的/虚拟装置/完整名称-1  <==LUN 1 
  65.     backing-store /你的/虚拟装置/完整名称-2  <==LUN 2 
  66. lun N <==LUN 10 自定义lun
  67. </target> 
  68. //iqn 名称规范 
  69. iqn.yyyy-mm.<reversed domain name>:identifier 
  70. iqn.年年-月.单位网域名的反转写法:这个分享的target名称 
  71.  
  72. 启动并检查tgt  
  73. [root@localhost yum.repos.d]# /etc/init.d/tgtd start 
  74. Starting SCSI target daemon:                               [  OK  ] 
  75. [root@localhost yum.repos.d]# tgt-admin --show 
  76. Target 1: iqn.2012-04.com.test:server.target1 
  77.     System information: 
  78.         Driver: iscsi 
  79.         State: ready 
  80.     I_T nexus information: 
  81.     LUN information: 
  82.         LUN: 0 
  83.             Type: controller 
  84.             SCSI ID: IET     00010000 
  85.             SCSI SN: beaf10 
  86.             Size: 0 MB 
  87.             Online: Yes 
  88.             Removable media: No 
  89.             Backing store type: rdwr 
  90.             Backing store path: None 
  91.         LUN: 10
  92.             Type: disk 
  93.             SCSI ID: IET     00010001 
  94.             SCSI SN: beaf11 
  95.             Size: 214748 MB 
  96.             Online: Yes 
  97.             Removable media: No 
  98.             Backing store type: rdwr 
  99.             Backing store path: /dev/VolGroup/iscsi 
  100.     Account information: 
  101.     ACL information: 
  102.         ALL 
  103. //tgtd 进程使用 tcp 3260 端口 
  104. # lsof -i :3260 
  105. COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME 
  106. tgtd    2856 root    5u  IPv4  19726      0t0  TCP *:iscsi-target (LISTEN) 
  107. tgtd    2856 root    6u  IPv6  19727      0t0  TCP *:iscsi-target (LISTEN) 
  108. tgtd    2857 root    5u  IPv4  19726      0t0  TCP *:iscsi-target (LISTEN) 
  109. tgtd    2857 root    6u  IPv6  19727      0t0  TCP *:iscsi-target (LISTEN) 
 
二 ESXI 配置ISCSI 
1 配置 -> iSCSI Software Adapter -> 属性

2 可以在静态发现或者动态发现添加 iscsi target ip 地址

3 配置 -> 存储器 -> 添加存储器 -> 磁盘/lun -> 下一步 -> 下一步 即可 

 
三 linux initiator 设置
 

 
 
  1. 检查系统是否安装 iscsi-target-utils 
  2. //iscsi-initiator-utils:挂载target 的磁盘到Linux 本机上 
  3. $ rpm -qa | grep scsi 
  4. iscsi-initiator-utils-6.2.0.871-0.10.el5 
  5.  
  6. iscsi initiator 配置文档与管理程序 
  7. /etc/iscsi/iscsid.conf  主要的配置文档,用于连接到 iSCSI target 
  8. /sbin/iscsid            启动 iSCSI initiator 的服务进程 
  9. /sbin/iscsiadm          用于管理 iSCSI initiator  
  10. /etc/init.d/iscsid      模拟成 iSCSI initiater 的服务 
  11. /etc/init.d/iscsi       在本机成为 iSCSI initiator 后,会调用此脚本,用于登入 iSCSI target 
  12. /etc/iscsi/initiatorname.iscsi  initiator 名称
  13.  
  14. 启动 iscsi-initiator  
  15. 192.168.57.71 [~]$ /etc/init.d/iscsi start 
  16. iscsid dead but pid file exists 
  17. Turning off network shutdown. Starting iSCSI daemon:       [  OK  ] 
  18.                                                            [  OK  ] 
  19. Setting up iSCSI targets: iscsiadm: No records found! 
  20.                                                            [  OK  ] 
  21. 192.168.57.71 [~]$ /etc/init.d/iscsid status 
  22. iscsid (pid  7740) is running... 
  23. 192.168.57.71 [~]$ /etc/init.d/iscsi status 
  24. iscsid (pid  7740) is running... 
  25.  
  26. $ chkconfig iscsi on 
  27.  
  28. 侦测target  
  29. $ iscsiadm -m discovery -t sendtargets -p 10.0.100.99 
  30. 10.0.100.99:3260,1 iqn.2012-04.com.test:server.target1 
  31.  
  32. $ ll -R /var/lib/iscsi/nodes/ 
  33. /var/lib/iscsi/nodes/: 
  34. total 4 
  35. drw------- 3 root root 4096 Apr 18 15:59 iqn.2012-04.com.test:server.target1 
  36.  
  37. /var/lib/iscsi/nodes/iqn.2012-04.com.test:server.target1: 
  38. total 4 
  39. drw------- 2 root root 4096 Apr 18 15:59 10.0.100.99,3260,1 
  40.  
  41. /var/lib/iscsi/nodes/iqn.2012-04.com.test:server.target1/10.0.100.99,3260,1: 
  42. total 4 
  43. -rw------- 1 root root 1571 Apr 18 15:59 default 
  44.  
  45. //注意:iscsiadm 侦测的结果会直接写入 /var/lib/iscsi/nodes/  
  46.  
  47. 査看可用的target 
  48. $ iscsiadm -m node 
  49. 10.0.100.99:3260,1 iqn.2012-04.com.test:server.target1 
  50.  
  51. 载入target  
  52. $ iscsiadm -m node -T iqn.2012-04.com.test:server.target1 --login 
  53. Logging in to [iface: default, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260] 
  54. Login to [iface: default, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]: successful 
  55.  
  56. 验证target  
  57. $ fdisk -l /dev/sdc 
  58.  
  59. Disk /dev/sdc: 214.7 GB, 214748364800 bytes 
  60. 255 heads, 63 sectors/track, 26108 cylinders 
  61. Units = cylinders of 16065 * 512 = 8225280 bytes 
  62.  
  63. Disk /dev/sdc doesn't contain a valid partition table 
  64. //一块磁盘,接下来就可以分区格式化等操作了 
  65.  
  66. 卸载target  
  67. $ iscsiadm -m node -T iqn.2012-04.com.test:server.target1 --logout 
  68. Logging out of session [sid: 1, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260] 
  69. Logout of [sid: 1, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]: successful 
  70. //再次fdisk -l 发现 sdc 磁盘不见了 
  71.  
  72. 删除target  
  73. //刪除 target 连接信息,再次 ll /var/lib/iscsi/nodes/ 为0 
  74. 192.168.57.71 [~]$ iscsiadm -m node -o delete -T iqn.2012-04.com.test:server.target1 
  75. 192.168.57.71 [~]$ ll -R /var/lib/iscsi/nodes/ 
  76. /var/lib/iscsi/nodes/: 
  77. total 0 
  78.   
四 扩展(鸟哥)
 

  
  
  1. /etc/tgt/targets.conf 配置文件 
  2. 除了backing-store 之外,在这个配置文档当中还有一些比较特别的参数(man tgt-admin): 
  3.  
  4.     backing-store (虚拟的装置), direct-store (实际的装置): 设定装置时,如果你的整颗磁盘是全部被拿来当iSCSI 分享之用,那么才能够使用direct-store 。不过,根据网路上的其他文件, 似乎说明这个设定值有点危险的样子。所以,基本上还是建议单纯使用模拟的backing-store 较佳 
  5.  
  6.     initiator-address (使用者端位址): 如果你想要限制能够使用这个target 的用户端来源,才需要填写这个设定值。基本上,不用设定它(代表所有人都能使用的意思), 因为我们后来会使用iptables 来规范可以连接的客户端 
  7.  
  8.     incominguser (使用者帐号密码设定): 如果除了来源IP 的限制之外,你还想要让使用者输入帐密才能使用你的iSCSI target 的话,那么就加用这个设定项目。此设定后面接两个参数,分别是帐号与密码啰。 
  9.  
  10.     write-cache [off|on] (是否使用快取): 在预设的情况下,tgtd 会使用快取来增快速度。不过,这样可能会有遗失资料的风险。所以,如果你的资料​​比较重要的话, 或许不要使用快取,直接存取装置会比较妥当一些。 
http://linux.vbird.org/linux_server/0460iscsi.php

更多欢迎到此讨论:
71921660   37275208 (已满)\


本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/842658


相关文章
|
存储 测试技术 数据安全/隐私保护
|
存储 开发工具