實驗步驟:
(1)iSCSItarget配置
步驟1 Linux下安裝iscsitarget-1.4.20.2
步驟2 修改配置/etc/ietd.conf,將RAID的邏輯卷映射為iSCSI Target LUN0
步驟3 (重)啟動/etc/init.d/iscsi-target並查看端口
步驟4 Windows下initiator的安裝配置
步驟5 查看實驗結果
(2)多LUN實驗
再新建一些硬盤創建RAID,修改配置/etc/ietd.conf,將新RAID映射為iSCSI Target LUN1
iSCSI的介紹:
iSCSI是internet Small Computer System Interface的縮寫,又稱為IP-SAN,是一種基於因特網及SCSI-3協議下的存儲技術,由IETF提出,並於2003年2月11日成為正式的標准。
iSCSI的目的是為了用IP協議將存儲設備連接在一起。通過在IP網上傳送SCSI命令和數據,iSCSI推動了數據在網絡之間的傳遞,同時也促進了數據的遠距離管理。由於其出色的數據傳輸能力,iSCSI協議被認為是促進存儲區域網(SAN)市場快速發展的關鍵因素之一。因為IP網絡的廣泛應用,iSCSI能夠在LAN、WAN甚至Internet上進行數據傳送,使得數據的存儲不再受地域的現在。iSCSI技術的核心是在TCP/IP網絡上傳輸SCSI協議,即使用TCP/IP報文和iSCSI報文封裝SCSI報文,使得SCSI命令和數據可以在普通以太網絡上進行傳輸,如下圖所示。
iSCSI的工作過程:當iSCSI主機應用程序發出數據讀寫請求後,操作系統會生成一個相應的SCSI命令,該SCSI命令在iSCSI initiator層被封裝成ISCSI消息包並通過TCP/IP傳送到設備側,設備側的iSCSI target層會解開iSCSI消息包,得到SCSI命令的內容,然後傳送給SCSI設備執行;設備執行SCSI命令後的響應,在經過設備側iSCSI target層時被封裝成ISCSI響應PDU,通過TCP/IP網絡傳送給主機的ISCSI initiator層,iSCSI initiator會從ISCSI響應PDU裡解析出SCSI響應並傳送給操作系統,操作系統再響應給應用程序。
iet(iSCSI Enterprise Target)是Linux下的iSCSI Target實現,open-iscsi是Linux下的iscsi initiator實現,使用iet(官方網站:http://iscsitarget.sourceforge.net)和open-iscsi就可以方便的實現簡單的IPSAN,同時iet也可以和其他系統的iscsi initiator配合使用。這裡我們實驗windows來連接linux。
最終的效果:
在windows下可以看到linux服務器“共享”出去的文件設備或者塊設備,可以當成本地硬盤來使用,其實數據什麼的都是存放在linux上的。
實驗步驟:
1. 在linux下安裝iscsitarget-1.4.20.2.tar.gz
tar -zvxf iscsitarget-1.4.20.2.tar.gz
cd iscsitarget-1.4.20.2
make && make install
2. 修改配置文件/etc/iet/iet.conf
配置前對iet的介紹:
iet基本配置
iet主要包括以下配置文件(控制文件的優先級類似與tcp_wrappers)。
/etc/iet/ietd.conf :iet的主配置文件
/etc/iet/initiators.allow:控制initiator對target的訪問權限。
/etc/iet/initiators.deny:控制initiator對target的訪問權限。
/etc/iet/targets.allow:控制不同target的被訪問權限。
通過iet實現iSCSI Target的基本功能需要完成以下二個配置
iSCSI Target的命名,命名在同一子網內應該是唯一。在/etc/iet/ietd.conf文件中增加如下內容實現iSCSI Target命名。
Target target名稱
其中:
target 名稱:是iSCSI Target名稱。一般iSCSI Target命名采用“iqn.yyyy-mm.<reversed domain name>: identifier 識別代號”的格式。
將塊設備、文件、LVM卷、RAID卷作為塊設備映射給iSCSI initiator使用。在/etc/iet/ietd.conf文件中增加如下內容實現塊設備映射。
Lun <lunID> Path=<device>,Type=fileio|blockio[,IOMode=(wb|ro)]
其中:
<lunID>:是Lun的編號從0開始,最大2^14-1。
Path=<device>:指定塊設備。可以使用dd命令生成一個文件。
Type=fileio|blockio:指定塊設備類型,分區及dd命令生成的文件使用fileio類型;LVM卷、RAID卷使用blockio類型。
IOMode=(wb|ro):指定iSCSI initiator允許的操作,wb表示可讀寫;ro表示只讀。
將如下內容加入/etc/iet/ietd.conf文件後,通過重新啟動計算機再運行/etc/init.d/iscsi-target restart命令(不知什麼原因,修改/etc/iet/ietd.conf文件後必須重新啟動計算機)啟動iet後iSCSI initiator即可使用。
Target iqn.2011-02.zqin.example:storage.lun0
Lun 0 Path=/dev/sdb1,Type=fileio
Alias lun0
iet常用命令
1、 查看當前iSCSI Target清單。
srv10:~#cat /proc/net/iet/volume
2、 查看當前服務器iSCSI Target服務以及連接狀態命令
srv10:~#cat /proc/net/iet/sessions
3、 停止某個Target 的某個 Connection 的連接。
srv10:~#ietadm --op delete --tid=2 --sid=562950876233792 --cid=1 && ietadm --op delete --tid=2