最近在做iscsi 性能評估,為以後ESXi集群等高級功能做準備,使用過openfiler,不過測試時openfiler 自帶的iscsi target軟體性能似乎有問題,所以有了本文的主角 TGT ,RHLE/CENTOS 自帶,使用 Yum 安裝即可,下面是具體步驟.
一 TGT 設置二 ESXI 配置ISCSI 1 配置 -> iSCSI Software Adapter -> 屬性 2 可以在靜態發現或者動態發現添加 iscsi target ip 地址 3 配置 -> 存儲器 -> 添加存儲器 -> 磁碟/lun -> 下一步 -> 下一步 即可 三 linux initiator 設置
- 檢查系統是否安裝 scsi-target
- //用來將Linux 系統模擬成為iSCSI target 的功能,也就是常說的軟iscsi target.
- # rpm -qa | grep scsi
- scsi-target-utils-1.0.14-4.el6.x86_64
- iscsi target 配置文檔與管理程序
- /etc/tgt/targets.conf 主配置文檔,設置要分享的磁碟
- /usr/sbin/tgt-admin 線上查詢、刪除target 等功能的管理工具;
- /usr/sbin/tgt-setup-lun 建立target 以及設置分享的磁碟與可使用的用戶端等工具軟體.
- /usr/sbin/tgtadm 手動直接管理的管理員工具(可使用配置文檔取代);
- /usr/sbin/tgtd 主要提供iSCSI target 服務的主程式;
- /usr/sbin/tgtimg 建置預計分享的映像檔裝置的工具(以映像檔模擬磁碟)
- 準備iscsi共享的磁碟
- //本次將共享一個LVM 物理卷
- 査看卷組
- //注意 關鍵字"Free PE / Size"
- [root@localhost ~]# vgdisplay
- --- Volume group ---
- VG Name VolGroup
- System ID
- Format lvm2
- Metadata Areas 2
- Metadata Sequence No 6
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 4
- Open LV 3
- Max PV 0
- Cur PV 2
- Act PV 2
- VG Size 1.36 TiB
- PE Size 4.00 MiB
- Total PE 356833
- Alloc PE / Size 151074 / 590.13 GiB
- Free PE / Size 205759 / 803.75 GiB
- VG UUID ZjL1o1-I90u-K0iY-MwPJ-TA1h-cez3-q4crAe
- 創建物理卷
- //創建的邏輯卷大小200G,名稱為iscsi 屬於VolGroup卷組
- lvcreate -L 200G -n iscsi VolGroup
- 査看建立的邏輯卷
- [root@localhost ~]# lvscan
- ACTIVE '/dev/VolGroup/lv_root' [50.00 GiB] inherit
- ACTIVE '/dev/VolGroup/lv_home' [306.65 GiB] inherit
- ACTIVE '/dev/VolGroup/lv_swap' [33.48 GiB] inherit
- ACTIVE '/dev/VolGroup/iscsi' [200.00 GiB] inherit
- 配置target.conf (TGT)
- vim /etc/tgt/targets.conf
- //添加如下
- <target iqn.2012-04.com.test:server.target1>
- backing-store /dev/VolGroup/iscsi
- lun 10
- target>
- //此配置文檔語法如下:
- <target iqn.相關裝置的target名稱>
- backing-store /你的/虛擬裝置/完整名稱-1 <==LUN 1
- backing-store /你的/虛擬裝置/完整名稱-2 <==LUN 2
- lun N <==LUN 10 自定義lun
- target>
- //iqn 名稱規範
- iqn.yyyy-mm.<reversed domain name>:identifier
- iqn.年年-月.單位網域名的反轉寫法:這個分享的target名稱
- 啟動並檢查tgt
- [root@localhost yum.repos.d]# /etc/init.d/tgtd start
- Starting SCSI target daemon: [ OK ]
- [root@localhost yum.repos.d]# tgt-admin --show
- Target 1: iqn.2012-04.com.test:server.target1
- System information:
- Driver: iscsi
- State: ready
- I_T nexus information:
- LUN information:
- LUN: 0
- Type: controller
- SCSI ID: IET 00010000
- SCSI SN: beaf10
- Size: 0 MB
- Online: Yes
- Removable media: No
- Backing store type: rdwr
- Backing store path: None
- LUN: 10
- Type: disk
- SCSI ID: IET 00010001
- SCSI SN: beaf11
- Size: 214748 MB
- Online: Yes
- Removable media: No
- Backing store type: rdwr
- Backing store path: /dev/VolGroup/iscsi
- Account information:
- ACL information:
- ALL
- //tgtd 進程使用 tcp 3260 埠
- # lsof -i :3260
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- tgtd 2856 root 5u IPv4 19726 0t0 TCP *:iscsi-target (LISTEN)
- tgtd 2856 root 6u IPv6 19727 0t0 TCP *:iscsi-target (LISTEN)
- tgtd 2857 root 5u IPv4 19726 0t0 TCP *:iscsi-target (LISTEN)
- tgtd 2857 root 6u IPv6 19727 0t0 TCP *:iscsi-target (LISTEN)
四 擴展(鳥哥)
- 檢查系統是否安裝 iscsi-target-utils
- //iscsi-initiator-utils:掛載target 的磁碟到Linux 本機上
- $ rpm -qa | grep scsi
- iscsi-initiator-utils-6.2.0.871-0.10.el5
- iscsi initiator 配置文檔與管理程序
- /etc/iscsi/iscsid.conf 主要的配置文檔,用於連接到 iSCSI target
- /sbin/iscsid 啟動 iSCSI initiator 的服務進程
- /sbin/iscsiadm 用於管理 iSCSI initiator
- /etc/init.d/iscsid 模擬成 iSCSI initiater 的服務
- /etc/init.d/iscsi 在本機成為 iSCSI initiator 后,會調用此腳本,用於登入 iSCSI target
- /etc/iscsi/initiatorname.iscsi initiator 名稱
- 啟動 iscsi-initiator
- 192.168.57.71 [~]$ /etc/init.d/iscsi start
- iscsid dead but pid file exists
- Turning off network shutdown. Starting iSCSI daemon: [ OK ]
- [ OK ]
- Setting up iSCSI targets: iscsiadm: No records found!
- [ OK ]
- 192.168.57.71 [~]$ /etc/init.d/iscsid status
- iscsid (pid 7740) is running...
- 192.168.57.71 [~]$ /etc/init.d/iscsi status
- iscsid (pid 7740) is running...
- $ chkconfig iscsi on
- 偵測target
- $ iscsiadm -m discovery -t sendtargets -p 10.0.100.99
- 10.0.100.99:3260,1 iqn.2012-04.com.test:server.target1
- $ ll -R /var/lib/iscsi/nodes/
- /var/lib/iscsi/nodes/:
- total 4
- drw------- 3 root root 4096 Apr 18 15:59 iqn.2012-04.com.test:server.target1
- /var/lib/iscsi/nodes/iqn.2012-04.com.test:server.target1:
- total 4
- drw------- 2 root root 4096 Apr 18 15:59 10.0.100.99,3260,1
- /var/lib/iscsi/nodes/iqn.2012-04.com.test:server.target1/10.0.100.99,3260,1:
- total 4
- -rw------- 1 root root 1571 Apr 18 15:59 default
- //注意:iscsiadm 偵測的結果會直接寫入 /var/lib/iscsi/nodes/
- 査看可用的target
- $ iscsiadm -m node
- 10.0.100.99:3260,1 iqn.2012-04.com.test:server.target1
- 載入target
- $ iscsiadm -m node -T iqn.2012-04.com.test:server.target1 --login
- Logging in to [iface: default, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]
- Login to [iface: default, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]: successful
- 驗證target
- $ fdisk -l /dev/sdc
- Disk /dev/sdc: 214.7 GB, 214748364800 bytes
- 255 heads, 63 sectors/track, 26108 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Disk /dev/sdc doesn't contain a valid partition table
- //一塊磁碟,接下來就可以分區格式化等操作了
- 卸載target
- $ iscsiadm -m node -T iqn.2012-04.com.test:server.target1 --logout
- Logging out of session [sid: 1, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]
- Logout of [sid: 1, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]: successful
- //再次fdisk -l 發現 sdc 磁碟不見了
- 刪除target
- //刪除 target 連接信息,再次 ll /var/lib/iscsi/nodes/ 為0
- 192.168.57.71 [~]$ iscsiadm -m node -o delete -T iqn.2012-04.com.test:server.target1
- 192.168.57.71 [~]$ ll -R /var/lib/iscsi/nodes/
- /var/lib/iscsi/nodes/:
- total 0
參考 http://linux.vbird.org/linux_server/0460iscsi.php
- /etc/tgt/targets.conf 配置文件
- 除了backing-store 之外,在這個配置文檔當中還有一些比較特別的參數(man tgt-admin):
- backing-store (虛擬的裝置), direct-store (實際的裝置): 設定裝置時,如果你的整顆磁碟是全部被拿來當iSCSI 分享之用,那麼才能夠使用direct-store .不過,根據網路上的其他文件, 似乎說明這個設定值有點危險的樣子.所以,基本上還是建議單純使用模擬的backing-store 較佳
- initiator-address (使用者端位址): 如果你想要限制能夠使用這個target 的用戶端來源,才需要填寫這個設定值.基本上,不用設定它(代表所有人都能使用的意思), 我們後來會使用iptables 來規範可以連接的客戶端
- incominguser (使用者帳號密碼設定): 如果除了來源IP 的限制之外,你還想要讓使用者輸入帳密才能使用你的iSCSI target 的話,那麼就加用這個設定項目.此設定後面接兩個參數,分別是帳號與密碼啰.
- write-cache [off|on] (是否使用快取): 在預設的情況下,tgtd 會使用快取來增快速度.不過,這樣可能會有遺失資料的風險.所以,如果你的資料比較重要的話, 或許不要使用快取,直接存取裝置會比較妥當一些.
本文出自 「dongnan」 博客,請務必保留此出處http://dngood.blog.51cto.com/446195/842658
[火星人 ] iscsi Target (TGT)已經有1139次圍觀