本文是我在研製固態iSCSI服務器軟件時所做的一些實驗的總結,都沒有涉及身份驗證功能的使用,如需要了解如何使用身份驗證功能,請參考相應軟件的幫助文件或在線man文檔。
WindowxXP、 Windows2000、 Windows2003
RedHat Enterpris Linux 5
Fedora core 6 、Fedora 7
FreeBSD5.4、FreeBSD6.2
- 安裝
可用於windows2000、windowsXP、windows2003的較新版本iscsi-initiator程序是Initiator-2.04-build3273,下載該程序後安裝。 - 用法
安裝成功後產生程序組Microsoft iSCSI Initiator, 桌面也有相應圖標。基本操作如下:
點擊 Microsoft iSCSI Initiator—>Discovery—>Add—>輸入target的IP地址和端口號
點擊 Microsoft iSCSI Initiator—>Targets—>Refresh, 發現當前可用的Target
點擊 Microsoft iSCSI Initiator—>Targets—>選中target—>Logon—>OK, 建立連接
點擊 控制面板—>管理工具—>計算機管理—>磁盤管理,可以看見映射到本機的邏輯磁盤。然後可以與本地磁盤一樣進行分區格式化操作。
點擊 Microsoft iSCSI Initiator—>Targets—>選中已經連接的target—>Details—>勾選相應的任務項目—>Logoff, 斷開連接。
- 編譯安裝軟件
以root身份登錄系統,下載initiator軟件包Open-iscsi-2.0.865.tar.gz到/root目錄。
[可以在它官網上下載:[url]http://www.open-iscsi.org/[/url]]
解壓縮軟件
[root@RedHat5 ~]# tar xvzf Open-iscsi-2.0.865.tar.gz
在/root下生成目錄Open-iscsi-2.0.86,進入該目錄進行編譯和安裝
[root@RedHat5 ~]# cd Open-iscsi-2.0.86
[root@RedHat5 Open-iscsi-2.0.86]# make
[root@RedHat5 Open-iscsi-2.0.86]# make install
[root@RedHat5 Open-iscsi-2.0.86]# cd ~
編譯安裝完成後生成必要的驅動程序模塊、守護進程和管理程序iscsiadm - 用法
啓動Open-iscsi
[root@RedHat5 ~]# service open-iscsi start
如果希望在啓動機器時自動加載,執行下面命令
[root@RedHat5 ~]# chkconfig --level 3 open-iscsi on
這裏的參數3是運行級別,如果是圖形界面要改爲5。
發現target,詢問target名稱
[root@RedHat5 ~]# iscsiadm -m discovery -t sendtargets -p targetIP地址:端口號
該命令將報告出target名稱
建立連接
得到了target名稱後,使用下面命令建立連接
[root@RedHat5 ~]# iscsiadm -m node -T target名稱 -p targetIP地址:端口號 --login
這時應該看到映射到的邏輯磁盤名號,使用fdisk -l 可以看到有關邏輯磁盤的詳細內容,可以象使用本地硬盤一樣對其進行分區、創建文件系統、掛載、卸載等操作。
斷開連接
如果邏輯磁盤已經掛載,斷開連接前應先卸載,然後使用下面命令
[root@RedHat5 ~]# iscsiadm -m node -T target名稱 -p targetIP地址:端口號 --logout
關機之前應該正確的卸載和斷開邏輯磁盤,否則會在target服務器上留下僵死的進程,造成服務器資源的浪費。
- 安裝
這兩個操作系統都有適用的rpm包,適用於Fedora core 6的是iscsi-initiator-utils-6.20.695-0.5.i386.rpm,適用於Fedora 7的是iscsi-initiator-utils-6.20.754-0.0.fc7.i386.rpm,下載對應的文件後用rpm命令安裝。
[Federa]# rpm -ivh iscsi-initiator-utils-6.20.754-0.0.fc7.i386.rpm - 用法
這兩個rpm包其實就是上面說的Open-iscsi軟件,其管理程序也是iscsiadm,用法與上面所說完全一樣。但因安裝方法不同產生的啓動腳本文件有所差異。這裏需要如下的方法啓動:
加載內核模塊
[Federa]# modprobe -q iscsi_tcp
啓動守護進程
[Federa]# iscsid
而後就可以用iscsiadm程序來管理,發現的target信息會保存在數據庫中,下次啓動時自動加載模塊和啓動守護進程。如果要從數據庫中刪除某個target的信息,使用下面命令:
查詢數據庫中內容
[Federa]# iscsiadm -m node
刪除指定的target
[Federa]# iscsiadm -m node -o delete -T target名稱 -p targetIP地址:端口號
- 安裝軟件
以root身份登錄系統,下載initiator軟件iscsi-12.tar.bz2到/root。
解壓縮軟件
# tar xvzf iscsi-12.tar.bz
將得到兩個目錄sys和iscontrol
分別進入這兩個目錄進行編譯:
# cd sys/modules/iscsi_initiator
# ln -s ../.. @
# make
編譯成功後在該目錄下生成內核模塊文件iscsi_initiator.ko,把該文件複製到/boot/kernel目錄下。
# cd iscontrol
# make
編譯成功後在該目錄下生成管理程序 iscontrol, 把該文件複製到/sbin目錄下。 - 用法
首先裝載內核模塊
# kldload iscsi_initiator.ko
如果不想看到很多的輸出信息
# sysctl debug.iscsi=0
發現target,詢問target名稱
# iscontrol -d targetaddress=targetIP地址
該命令將報告出target名稱。
連接target
# iscontrol targetaddress=target的IP地址 TargetName=target名稱
這裏的target名稱是發現target命令報告出的名稱。
連接成功後,將報告出映射到本機的scsi設備名號,如da0或da1等。
內核模塊裝載命令和連接命令應該寫入啓動腳本文件/etc/rc.local, 這樣機器啓動時可自動建立連接。
應用下面命令可以看到連接到的設備
# camcontrol devlist
然後可以象使用本地硬盤一樣對其進行分區、創建文件系統、掛載、卸載等操作。
如要結束連接,首先要卸載相應的設備,然後向iscontrol進程發-HUP信號,或用top找到iscontrol的進程號,直接kill掉。
該軟件在target端服務中斷後再恢復時(例如重新啓動機器)不能自動再建立連接,必須手動重新建立連接。該軟件不支持身份驗證,target端不能設置密碼。
Open Solaris
Open Solaris操作系統內置了iSCSI Initiator, 其管理程序名稱也是iscsiadm, 但與Linux下的iscsiadm不是同一程序,使用語法也不相同。
- 用法:
以root身份登錄,啓動一個終端窗口,在窗口中執行命令:
發現target, 詢問target名稱
# iscsiadm add discovery-address targetIP地址:端口號
建立連接
# iscsiadm modify discovery -t enable
查看邏輯磁盤名號
# format
然後根據邏輯盤的名號(例如c1t0d0)進行格式化、創建文件系統、掛載。
斷開連接
# iscsiadm modify discovery -t disable
刪除一個target
# iscsiadm remove discovery-address targetIP地址:端口號