【ISCSI】-iSCSI Initiator與 Target 的安裝、配置與連線過程備忘

sdon發表於2010-12-30

iSCSI Initiator與 Target 的安裝、配置與連線過程備忘

Centos和 RHEL 對 iSCSI Initiator  支援非常不錯,但由於 iSCSI 、 Linux  通常都是搭配應用在中、大型系統環境下,所以我們買的  iSCSI  硬體廠商都會提供驅動程式給  Linux  使用,尤以  RedHat 、 SuSE  這些  Linux  知名廠商支援度最高,直到最近  2007  年左右,現在  Linux  都漸漸已經內建  iSCSI Initiator  相關軟體,來介紹如何在  Linux  實做  iSCSI Initiator 。

Initiator 主要功能是提供電腦主機連線到  Target  作磁碟存取。這個  Initiator  可使用硬體方式  Initiator  或者軟體方式  Initiator ,我們下面的 Initiator ,基本都是使用軟體方式  Target  與  Initiator 。 “ 軟體 ” 或 “ 硬體 ” 的  iSCSI Target  與  iSCSI Initiator  就好比  RAID  有 “SoftRAID” 與 “Hardware RAID” 。
第一步安裝 iSCSI Initiator for Linux

在 Centos 5  軟體內就有  iSCSI Initiator .
#yum -y install iscsi-initiator-utils  

或者下載open  iscsi進行  make && make install

第二步:使用 iscsiadm  指令管理連線
#service iscsi start
#iscsiadm -m discovery –type sendtargets –portal 192.168.0.1
iSCSI Target 主機查詢  Target Record  資訊,其中  192.168.0.1  為  Target  主機  IP  或  DNS  名稱。找到後會提示你發現 …
#service iscsi restart

現在就可以在你的電腦中見到新的裝置了./dev/sdb… 之類 , 我們可以對他來象本地一樣操作

接下來在 Linux 分割槽、格式化與掛載就可以用了 .

分割槽
#fdisk /dev/sdbX
#mkfs -j( ext3  格式)
#mkreiserfs( ReiserFS  格式)
#mount /dev/sdbX /

下次開機自動取得 iSCSI Target  磁碟

只要 iSCSI Initiator  主機曾經  sendtargets  過並且  login  相關  record, 只要在  Initiator  主機使用指令 “chkconfig iscsi on” 設定下次開機自動啟動  iSCSI Initiator Daemon ,就可以辦到 ‘ 下次開機自動取得  iSCSI Target  磁碟 ’ 功能。
#chkconfig iscsi on

有關iSCSI 的其它
iSCSI 在安全方面相關設定 ,iSCSI  在安全管理方面有著不錯優勢 , 可以使用 ” 主機 ” 和 ” 使用者 ” 來完成允許或拒絕存取的設定。

0.iSCSI Target 安裝

# tar zxvf iscsi-target.xxxxx.tar.gz                                         
# cd iscsi-target.xxxxx                                                      
# make  ( 編譯過程可能會有部分error ,請參考本論壇部落格文章 《 iscsitarget 在 Linux2.6.32 核心上編譯 若干編譯錯誤與解決方法(備忘)   》 )                                                                     
# make install                                                               
# mkdir /iscsidisk                                                           
# dd if=/dev/zero f=/iscsidisk/sharedisk1.img bs=1k count=1 seek=2000K      
    (以上這句是用 dd 建立了一個 2G 大小的映像文件,也就是我們的一個 iscsi 映像磁碟 )
# vim /etc/ietd.conf                                                         
    找到"Target iqn" ,注意這行 Target 後的一串字元,是 iscsi 的標記              
    找到"Lun 0" 一行,改為                                                    
    Lun 0 Path=/iscsidisk/sharedisk1.img,Type=fileio                         
# chkconfig iscsi-target on                                                  
# /etc/init.d/iscsi-target start

1.iSCSI Target 實戰以  IP  為基礎的允許或拒絕  Initiator  主機

iSCSI Enterprise Target 軟體本身有內建類似  TCP Wrapper ( /etc/hosts.allow 、 /etc/hosts.deny )的  /etc/initiators.allow 、 /etc/initiators.deny ,接下來示範設定這兩個檔案來限制  Initiator  主機存取。

設定 /etc/initiators.allow 、 /etc/initiators.deny 這二個檔案就可以控制主機了 . 安裝完會預設生成

底下列出例子為“ 只允許  172.16.7.120  這臺  Initiator” 並 “ 拒絕全部 ” 設定

/etc/initiators.allow 內容,最後一行允許  172.16.7.120 (其他三行被#註解)

# Some exmaples
#iqn.2001-04.com.example:storage.disk1.sys1.xyz 192.168.22.2, 192.168.3.8
#iqn.2001-04.com.example:storage.disk1.sys4.xyz [3ffe:302:11:1:211:43ff:fe31:5ae2], [3ffe:505:2:1::]/64
iqn.2001-04.com.example:storage.disk2.sys1.xyz 172.16.7.120

/etc/initiators.deny 內容,最後一行拒絕全部(其他四行被#註解)

# Some exmaples
#iqn.2001-04.com.example:storage.disk1.sys1.xyz ALL
#iqn.2001-04.com.example:storage.disk1.sys2.xyz 192.168.12.2, 192.168.3.0/24, 192.167.1.16/28
#iqn.2001-04.com.example:storage.disk1.sys4.xyz [3ffe:302:11:1:211:43ff:fe31:5ae2], [3ffe:505:2:1::]/64
iqn.2001-04.com.example:storage.disk2.sys1.xyz ALL

注意到 iqn  需與  /etc/ietd.conf  內的  iqn  相同。

2.iSCSI Target 使用者帳號密碼為基礎的允許或拒絕  Initiator  主機

iSCSI Target 使用帳號密碼方式認證分成兩階段:

第一階段是 Discovery  時認證所使用的帳號密碼( SendTargets  用的)。

第二階段是登入各別 Target / iqn / Lun  時所使用的帳號密碼( Login  用的)。
一個 iSCSI Enterprise Target  能夠在  /etc/ietd.conf  設定多個  Target  區段,分享多個  iqn / Lun  並且可以為每個  Target / iqn / Lun  設定存取的帳號密碼。

由下圖的上半個視窗可以看到在 Target  主機於  /etc/ietd.conf  設定兩個  Target / iqn / Lun ,而下半個視窗可看到  Initiator  主機使用  iscsiadm  指令發現兩個  Target 。

/etc/ietd.conf Initiator 主機設定

Discovery 時使用的帳號密碼
(SendTargets  用的)  IncomingUser joe secret
(獨立於 Target  區段外)  discovery.sendtargets.auth.username = joe
discovery.sendtargets.auth.password = secret
連線 Target / iqn / Lun  時使用的帳號密碼
(Login  用的)  IncomingUser joe2 secret2
(置於 Target  區段內)  node.session.auth.username = joe2
node.session.auth.password = secret2
Note: joe 、 secret 、 joe2  與  secret2  都是測試用的帳號密碼。
只要有改到 /etc/ietd.conf 、 /etc/iscsid.conf  別忘了各別需要使用  InitScripts ( /etc/init.d/iscsi-target 、 /etc/init.d/iscsi )重新啟動相關  Daemon ( ietd 、 iscsid )。

SAN 架構與其相關技術應用非常廣,比如我們可以配合叢集( Cluster )與叢叢集案系統( Cluster File System )的高階應用,像是  RedHat GFS  或是  Oracle OCFS2  檔案系統,提供分享( Shared ) Block Level I/O  給多臺主機。

注意:若未使用及設定 Cluster File System  但卻使用兩個  Initiator  同時存取同一個  Target Device  會導致資料毀損,請小心!


本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/do2jiang/archive/2009/12/24/5069654.aspx

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/645199/viewspace-682929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章