1,603 瀏覽數

IET – iSCSI Enterprise Target

IET – iSCSI(一) 什麼是 SAN / IP-SAN
什麼是 SAN (Storage area Network),他是一種資料儲存裝置(Raw Device),不過他不像是 NAS 可以直接提供存取.他只提供給 Server 資料儲存裝置,讓 Server 能夠有額外的硬碟裝置.因為它可以很彈性的提供給不同的 serve 大小不同的空間,所以常用在大企業中.最早的 SAN 傳輸介面為光纖,但是隨著 1G,10Gb 網卡(有一種專門用在 iSCSI 的網卡,因為有 TOE:TCP/IP offload engine,它具有運算的功能所以不會因此佔用系統上的 CPU 的使用率)的上市,網卡的傳輸頻寬增加,網卡也可以擔任光纖提供的頻寬(光纖的頻寬為 2G,4Gb,光纖短波-850 mm,長波-1310 mm),這個技術稱為 iSCSI(Internet SCSI),也因此以網卡為傳輸為介質的 SAN,被稱為 IP-SAN.
相關廠商 : EMC / NetApp / FalconStor

常見的 IP-SAN 有 iSCSI / FCoE / FCP / AoE

ip-san


IET –  iSCSI(二) 安裝 iSCSI Target / initiator
Initiator 指的是 “使用磁碟" 的主機端, Target 指的是 “提供磁碟" 的伺服器端.

iSCSI Target
iSCSI 是一種 SAN的裝置而 SAN的裝置主要是提供 Server 儲存體的空間.相較於傳統的 SAN 是以光纖為傳輸媒體而 iSCSI(Internet SCSI)他是 IP-based 的資料儲存的裝置.使得他能更容易應用在企業中. 1.一般的網卡就能當作 iSCSI Target 但是缺點就是會消耗太多的 CPU 資源,針對這樣的問題所以發展出另外兩種的 iSCSI Target 網卡.2.一種是軟體的 iscsi + TOE (TOE:TCP/IP offload engine),它可以針對 TCP/IP 的封包直接在網路卡上運算所以不會因此佔用系統上的 CPU 的使用率,  3.另外一種就是硬體式的 iSCSI + TOE. 它除了具有 TOE 還可以直接針對 iSCSI 的資料做運算.基本上它的使用上就像是一般儲存裝置 HBA.你可以直接在 BIOS 選項作 iSCSI 硬體開機的動作.

iscsi01

note: SCSI Port – SCSI Protocol

目前 RHEL5 和 SLES10 都已經將 iSCSI Target 當作預設的套件,所以之前的版本如 RHEL4 需要使用 iSCSI Target 這邊介紹另外一套 IET (iSCSI Enterprise Target) 首先要先下載iSCSI Target 我們可以在  http://iscsitarget.sourceforge.net/ 中可以看到.直接使用最新一版即可.下載下來是 Source code 所以基本的 Linux(RedHat, Fedora…)都可以直接編輯使用.

安裝啟動 iSCSI target:
RedHat 在版本 4 之後就將 kernel-devel-version.platform.rpm 的 source code 設定為非標準安裝套件但是通常在編譯 source code 時卻是需要這一個套件所以在下載完 iet(iSCSI Enterprise Target) 後還需要再手動去安裝 kernel-devel-version.platform.rpm,我們可以在光碟目錄 /Server 找到這一個套件.

[root@benjr ~]# rpm -ivh /media/cdrom/Server/kernel-devel-version.platform.rpm

如果找不到請到 http://kernel.org 下載相同版本的 kernel ,下載到 iscsi Enterprise target 之後就要開始編輯它了.

[root@benjr ~]# tar xvfz iscsitarget-version.tar.gz
[root@benjr ~]# cd iscsitarget-version

還記得我們剛安裝的 kernel-devel-version.platform.rpm 嗎?這時就要指定這個路徑.

[root@benjr iscsitarget-version]# make KERNELSRC=/usr/src/kernels/kernel-version
[root@benjr iscsitarget-version]# make install

就這樣完成了,可以開始使用 iSCSI Enterprise Target 了! 要立刻啟動iSCSI Target,請鍵入下面指令.

[root@benjr ~]# service iscsi-target start

如果要讓每次開機時都能啟動 iSCSI Target,請鍵入下面指令.

[root@benjr ~]# chkconfig iscsi-target on

note: 如果你的 firewall 有開啟,記得將 port 3260 開啟(iSCSI 使用 port 3260).

安裝啟動 iSCSI initiator:
在一些比較舊的系統上並沒有 iSCSI initiator 的 service.所以你可以在下面的網站下載到 iSCSI initiator – http://sourceforge.net/projects/linux-iscsi
一樣 RedHat 在版本 4 之後就將 kernel-devel-version.platform.rpm 的 source code 設定為非標準安裝套件但是通常在編譯 source code 時卻是需要這一個套件所以在下載完 iet(iSCSI Enterprise Target) 後還需要再手動去安裝 kernel-devel-version.platform.rpm,我們可以在光碟目錄 /Server 找到這一個套件.

[root@localhost ~]# rpm -ivh /media/cdrom/Server/kernel-devel-version.platform.rpm

如果找不到請到 http://kernel.org 下載相同版本的 kernel ,下載到 iscsi Enterprise target 之後就要開始編輯它了.通常 iCSI initiator 下載的檔案格式為 linux-iscsi-version.tgz 所以需要自己編輯.

[root@localhost ~]# mkdir /usr/src/iscsi

將檔案拷貝到 /usr/src/iscsi

[root@localhost ~]# cp ~/linux-iscsi-version.tgz  /usr/src/iscsi
[root@localhost ~]# cd /usr/src/iscsi
[root@localhost iscsi]# tar xvzf linux-iscsi-version.tgz
[root@localhost iscsi]# cd linux-iscsi-version

開始編譯 iSCSI initiator

[root@localhost inux-iscsi-version]# make
[root@localhost linux-iscsi-version]# make install

如果你想要現在就啟動 iscsi initiator,使用下面的方式

[root@localhost ~]# service iscsi restart

如果要下次開機時就能啟動,使用下面的方式.

[root@localhost ~]# chkconfig iscsi on

IET –  iSCSI(三) 建立 iSCSI Target controller device
目前我的環境如下所示:
1. RHEL4 Server – 當作 iSCSI Target 端,
2顆硬碟,一個是 OS 另外一個就是給 iSCSI 當做分享出來的 raw devices 所使用.
2. RHEL4 Client – 當作 iSCSI Initiator 端.
3.Switch – 因為是 IP-SAN 所以不需要 Fiber switch,原來的 Network Switch 即可使用.建議使用 1Gb 以上的環境.

iscsi_target_initiator02

系統有一個預設的 iSCSI Target 設定檔.位置存放在 /root/iscsitarget-version/etc/inetd.conf ,我們需要將它放在 /etc/ 目錄下.先來看看這個設定檔的內容.

[root@benjr ~]# vi /etc/ietd.conf
Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
# Users, who can access this target
# (no users means anyone can access the target)
IncomingUser joe
#OutgoingUser
# Lun definition
# (right now only block devices are possible)
Lun 0 Path=/dev/sdb,Type=fileio
# Alias name for this target
# Alias iSCSI
# various iSCSI parameters
# (not all are used right now, see also iSCSI spec

說明:
Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
這個 iqn(iSCSI Qualified Name)格式如下 iqn.yyyy-mm.<reversed domain name>[:identifier] 名稱最好是根據 iqn 來命名,是用來做為 iSCSI Target 的識別名稱.
IncomingUser joe
可以透過 user / password (CHAP-Challenge Handshake Authentication Protocol 使用 MD5 的加密驗證) 來為 iSCSI Initiator做身分驗證.
Lun 0 Path=/dev/sdb,Type=fileio
我將給 joe 這個使用者一個硬碟 sdb,而所謂的 LUN(Logic Uit Number)他將會決定 iSCSI Initiator 所看到的硬碟順序.除了一般硬碟(hda,sda… 等)可用外還可以用 LVM的方式來做.畢竟 SAN 的定義是 “可以自由調整硬碟空間大小給 Server使用,藉此提高硬碟空間的使用率."

IET –  iSCSI(四) iSCSI initiator 
編輯 iSCSI configuration 檔有兩個設定檔需要修改.第一個就是 /etc/iscsi.conf 主要是將 iSCSI target 的 IP(iSCSI 預設使用的 port 是 3260.) 和 iqn(iSCSI Qualified Name)紀錄在這裡.

[root@localhost ~]# vi /etc/iscsi.conf
DiscoveryAddress=192.8.1.55:3260
iqn.2001-04.com.example:storage.disk2.sys1.xyz

第二個就是 /etc/initiatorname.iscsi 主要是將 iSCSI initiator CHAP name 紀錄在這裡.還記得剛剛在我 iSCSI target 的設定為 joe.

[root@localhost ~]# vi /etc/initiatorname.iscsi
InitiatorName=joe

3 個網友的想法 “IET – iSCSI Enterprise Target

  1. 自動參照通知: iSCSI (Internet SCSI) | Benjr.tw

  2. 自動參照通知: RHEL5 – iSCSI(二) 安裝 iSCSI Target / initiator | Benjr.tw

  3. 自動參照通知: XenServer – 新增儲存裝置 – iSCSI | Benjr.tw

發表迴響