iscsi Target (TGT)

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

最近在做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. iscsi target 配置文檔與管理程序
  6. /etc/tgt/targets.conf 主配置文檔,設置要分享的磁碟
  7. /usr/sbin/tgt-admin 線上查詢、刪除target 等功能的管理工具;
  8. /usr/sbin/tgt-setup-lun 建立target 以及設置分享的磁碟與可使用的用戶端等工具軟體.
  9. /usr/sbin/tgtadm 手動直接管理的管理員工具(可使用配置文檔取代);
  10. /usr/sbin/tgtd 主要提供iSCSI target 服務的主程式;
  11. /usr/sbin/tgtimg 建置預計分享的映像檔裝置的工具(以映像檔模擬磁碟)
  12. 準備iscsi共享的磁碟
  13. //本次將共享一個LVM 物理卷

  14. 査看卷組
  15. //注意 關鍵字"Free PE / Size"
  16. [root@localhost ~]# vgdisplay
  17. --- Volume group ---
  18. VG Name VolGroup
  19. System ID
  20. Format lvm2
  21. Metadata Areas 2
  22. Metadata Sequence No 6
  23. VG Access read/write
  24. VG Status resizable
  25. MAX LV 0
  26. Cur LV 4
  27. Open LV 3
  28. Max PV 0
  29. Cur PV 2
  30. Act PV 2
  31. VG Size 1.36 TiB
  32. PE Size 4.00 MiB
  33. Total PE 356833
  34. Alloc PE / Size 151074 / 590.13 GiB
  35. Free PE / Size 205759 / 803.75 GiB
  36. VG UUID ZjL1o1-I90u-K0iY-MwPJ-TA1h-cez3-q4crAe
  37. 創建物理卷
  38. //創建的邏輯卷大小200G,名稱為iscsi 屬於VolGroup卷組
  39. lvcreate -L 200G -n iscsi VolGroup
  40. 査看建立的邏輯卷
  41. [root@localhost ~]# lvscan
  42. ACTIVE '/dev/VolGroup/lv_root' [50.00 GiB] inherit
  43. ACTIVE '/dev/VolGroup/lv_home' [306.65 GiB] inherit

  44. ACTIVE '/dev/VolGroup/lv_swap' [33.48 GiB] inherit
  45. ACTIVE '/dev/VolGroup/iscsi' [200.00 GiB] inherit
  46. 配置target.conf (TGT)
  47. vim /etc/tgt/targets.conf
  48. //添加如下
  49. <target iqn.2012-04.com.test:server.target1>
  50. backing-store /dev/VolGroup/iscsi
  51. lun 10
  52. target>
  53. //此配置文檔語法如下:
  54. <target iqn.相關裝置的target名稱>
  55. backing-store /你的/虛擬裝置/完整名稱-1 <==LUN 1
  56. backing-store /你的/虛擬裝置/完整名稱-2 <==LUN 2
  57. lun N <==LUN 10 自定義lun
  58. target>
  59. //iqn 名稱規範
  60. iqn.yyyy-mm.<reversed domain name>:identifier

  61. iqn.年年-月.單位網域名的反轉寫法:這個分享的target名稱
  62. 啟動並檢查tgt
  63. [root@localhost yum.repos.d]# /etc/init.d/tgtd start
  64. Starting SCSI target daemon: [ OK ]
  65. [root@localhost yum.repos.d]# tgt-admin --show
  66. Target 1: iqn.2012-04.com.test:server.target1
  67. System information:
  68. Driver: iscsi
  69. State: ready
  70. I_T nexus information:
  71. LUN information:
  72. LUN: 0
  73. Type: controller
  74. SCSI ID: IET 00010000
  75. SCSI SN: beaf10
  76. Size: 0 MB
  77. Online: Yes
  78. Removable media: No
  79. Backing store type: rdwr
  80. Backing store path: None
  81. LUN: 10
  82. Type: disk
  83. SCSI ID: IET 00010001
  84. SCSI SN: beaf11
  85. Size: 214748 MB
  86. Online: Yes
  87. Removable media: No
  88. Backing store type: rdwr
  89. Backing store path: /dev/VolGroup/iscsi
  90. Account information:
  91. ACL information:
  92. ALL

  93. //tgtd 進程使用 tcp 3260 埠
  94. # lsof -i :3260
  95. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  96. tgtd 2856 root 5u IPv4 19726 0t0 TCP *:iscsi-target (LISTEN)
  97. tgtd 2856 root 6u IPv6 19727 0t0 TCP *:iscsi-target (LISTEN)
  98. tgtd 2857 root 5u IPv4 19726 0t0 TCP *:iscsi-target (LISTEN)
  99. 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. iscsi initiator 配置文檔與管理程序
  6. /etc/iscsi/iscsid.conf 主要的配置文檔,用於連接到 iSCSI target
  7. /sbin/iscsid 啟動 iSCSI initiator 的服務進程
  8. /sbin/iscsiadm 用於管理 iSCSI initiator
  9. /etc/init.d/iscsid 模擬成 iSCSI initiater 的服務

  10. /etc/init.d/iscsi 在本機成為 iSCSI initiator 后,會調用此腳本,用於登入 iSCSI target
  11. /etc/iscsi/initiatorname.iscsi initiator 名稱
  12. 啟動 iscsi-initiator
  13. 192.168.57.71 [~]$ /etc/init.d/iscsi start
  14. iscsid dead but pid file exists
  15. Turning off network shutdown. Starting iSCSI daemon: [ OK ]
  16. [ OK ]
  17. Setting up iSCSI targets: iscsiadm: No records found!
  18. [ OK ]
  19. 192.168.57.71 [~]$ /etc/init.d/iscsid status
  20. iscsid (pid 7740) is running...
  21. 192.168.57.71 [~]$ /etc/init.d/iscsi status
  22. iscsid (pid 7740) is running...
  23. $ chkconfig iscsi on
  24. 偵測target
  25. $ iscsiadm -m discovery -t sendtargets -p 10.0.100.99
  26. 10.0.100.99:3260,1 iqn.2012-04.com.test:server.target1
  27. $ ll -R /var/lib/iscsi/nodes/
  28. /var/lib/iscsi/nodes/:
  29. total 4
  30. drw------- 3 root root 4096 Apr 18 15:59 iqn.2012-04.com.test:server.target1
  31. /var/lib/iscsi/nodes/iqn.2012-04.com.test:server.target1:

  32. total 4
  33. drw------- 2 root root 4096 Apr 18 15:59 10.0.100.99,3260,1
  34. /var/lib/iscsi/nodes/iqn.2012-04.com.test:server.target1/10.0.100.99,3260,1:
  35. total 4
  36. -rw------- 1 root root 1571 Apr 18 15:59 default
  37. //注意:iscsiadm 偵測的結果會直接寫入 /var/lib/iscsi/nodes/
  38. 査看可用的target
  39. $ iscsiadm -m node
  40. 10.0.100.99:3260,1 iqn.2012-04.com.test:server.target1
  41. 載入target
  42. $ iscsiadm -m node -T iqn.2012-04.com.test:server.target1 --login
  43. Logging in to [iface: default, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]
  44. Login to [iface: default, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]: successful
  45. 驗證target
  46. $ fdisk -l /dev/sdc
  47. Disk /dev/sdc: 214.7 GB, 214748364800 bytes
  48. 255 heads, 63 sectors/track, 26108 cylinders
  49. Units = cylinders of 16065 * 512 = 8225280 bytes
  50. Disk /dev/sdc doesn't contain a valid partition table

  51. //一塊磁碟,接下來就可以分區格式化等操作了
  52. 卸載target
  53. $ iscsiadm -m node -T iqn.2012-04.com.test:server.target1 --logout
  54. Logging out of session [sid: 1, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]
  55. Logout of [sid: 1, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]: successful
  56. //再次fdisk -l 發現 sdc 磁碟不見了
  57. 刪除target
  58. //刪除 target 連接信息,再次 ll /var/lib/iscsi/nodes/ 為0
  59. 192.168.57.71 [~]$ iscsiadm -m node -o delete -T iqn.2012-04.com.test:server.target1
  60. 192.168.57.71 [~]$ ll -R /var/lib/iscsi/nodes/
  61. /var/lib/iscsi/nodes/:
  62. total 0
四 擴展(鳥哥)
  1. /etc/tgt/targets.conf 配置文件
  2. 除了backing-store 之外,在這個配置文檔當中還有一些比較特別的參數(man tgt-admin):
  3. backing-store (虛擬的裝置), direct-store (實際的裝置): 設定裝置時,如果你的整顆磁碟是全部被拿來當iSCSI 分享之用,那麼才能夠使用direct-store .不過,根據網路上的其他文件, 似乎說明這個設定值有點危險的樣子.所以,基本上還是建議單純使用模擬的backing-store 較佳
  4. initiator-address (使用者端位址): 如果你想要限制能夠使用這個target 的用戶端來源,才需要填寫這個設定值.基本上,不用設定它(代表所有人都能使用的意思), 我們後來會使用iptables 來規範可以連接的客戶端
  5. incominguser (使用者帳號密碼設定): 如果除了來源IP 的限制之外,你還想要讓使用者輸入帳密才能使用你的iSCSI target 的話,那麼就加用這個設定項目.此設定後面接兩個參數,分別是帳號與密碼啰.
  6. write-cache [off|on] (是否使用快取): 在預設的情況下,tgtd 會使用快取來增快速度.不過,這樣可能會有遺失資料的風險.所以,如果你的資料​​比較重要的話, 或許不要使用快取,直接存取裝置會比較妥當一些.
參考 http://linux.vbird.org/linux_server/0460iscsi.php


本文出自 「dongnan」 博客,請務必保留此出處http://dngood.blog.51cto.com/446195/842658





[火星人 ] iscsi Target (TGT)已經有784次圍觀

http://coctec.com/docs/linux/show-post-45726.html