一、簡介
iSCSI(internet SCSI)技術由IBM公司研究開發,是一個供硬體裝置使用的、可以在IP協定的上層運作的SCSI指令集,這種指令集合可以實作在IP網絡上運作SCSI協定,使其能夠在諸如高速千兆以太網上進行路由選擇。iSCSI技術是一種新儲存技術,該技術是将現有SCSI接口與以太網絡(Ethernet)技術結合,使伺服器可與使用IP網絡的儲存裝置互相交換資料。
iSCSI是一種基于TCP/IP 的協定,用來建立和管理IP儲存設備、主機和客戶機等之間的互相連接配接,并建立存儲區域網絡(SAN)。SAN 使得SCSI 協定應用于高速資料傳輸網絡成為可能,這種傳輸以資料塊級别(block-level)在多個資料存儲網絡間進行。SCSI 結構基于C/S模式,其通常應用環境是:裝置互相靠近,并且這些裝置由SCSI 總線連接配接。
iSCSI 的主要功能是在TCP/IP 網絡上的主機系統(啟動器 initiator)和儲存設備(目标器 target)之間進行大量資料的封裝和可靠傳輸過程。
完整的iSCSI系統的拓撲結構如下:
二、實驗環境
作業系統:CentOS release 6.3 (Final)
iSCSI Target:192.168.1.21 / scsi-target-utils-1.0.24-12.el6_5.i686
iSCSI Initiator:192.168.1.22 / iscsi-initiator-utils-6.2.0.873-10.el6.i686
防火牆已關閉/iptables: Firewall is not running.
SELINUX=disabled
三、準備工作
iSCSI可分享的裝置類型有很多,包括鏡像檔案(*.img)、分區(partition)、實體硬碟、raid裝置、邏輯卷等,下面我們将準備其中的幾種來測試,其他類型大家可以自行測試。
3.1 模拟鏡像
在iSCSI Target的/srv目錄下建立一個200M大小的鏡像檔案。
# mkdir /srv/iscsi
# dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=200
# ll -lh /srv/iscsi/disk1.img
3.2 建立分區
建立一個500M大小的分區/dev/sdb1.
# fdisk /dev/sdb
3.3 建立邏輯卷
建立一個800M大小的LV.
# pvcreate /dev/sdc
# vgcreate vg0 /dev/sdc
# lvcreate -L 800M -n lv1 vg0
四、配置iSCSI Target
4.1 安裝tgt
CentOS 自帶了scsi-target-utils 軟體,我們使用該軟體進行target設定。
# yum -y install scsi-target-utils
4.2 配置tgt
tgt的主配置檔案為/etc/tgt/targets.conf,下面我們來設定改檔案。
在該檔案最後新增以下設定:
說明:
iqn = iSCSI Qualified Name
iSCSI target的名稱規則如下:
iqn.2014-07.dev.iscsi-target:iscsidisk
iqn.年份-月份.域名反寫.裝置識别
每個在同一個target上的backing-store 稱為邏輯單元号(Logical Unit Number,LUN),這個實驗中有4個LUN。
其他進階設定如initiator-address、incominguser,大家自行查資料。
4.3 啟動iSCSI target
# /etc/init.d/tgtd start
# chkconfig tgtd on
# netstat -tulnp|grep tgt
4.4 檢視iSCSI target
# tgt-admin --show
LUN0 是控制器,可以看到各個LUN的大小和磁盤路徑。
至此,iSCSI Target 設定完畢。
五、配置iSCSI Initiator
5.1 安裝initiator
# yum -y install iscsi-initiator-utils
5.2 設定開機啟動
# chkconfig iscsid on
# chkconfig iscsi on
5.3 配置文檔
initiator的配置文檔位于/etc/iscsi/,該目錄下有兩個檔案,initiatorname.iscsi 和iscsid.conf,
其中iscsid.conf 是其配置檔案,initiatorname.iscsi 是标記了initiator的名稱,它的預設名稱是InitiatorName=iqn.1994-05.com.redhat:b45be5af6021,我們可以根據實際情況進行更改,比較好區分,這裡我們修改為InitiatorName=iqn.2014-07.dev.iscsi-initiator:initiator。
因為在target裡面,我們并沒有設定通路限制,是以iscsid.conf 檔案并不需要修改。
5.4 偵測target
如果我們事先不知道目标主機的target名稱,我們就需要進行偵測,下面來講解。
# iscsiadm -m discovery -t sendtargets -p 192.168.1.21
5.5 檢視nodes
iscsiadm 偵測到的結果會寫入/var/lib/iscsi/nodes/ 中,是以隻需啟動/etc/init.d/iscsi 就能夠在下次開機時,自動連接配接到正确的target了。
# ll -R /var/lib/iscsi/nodes/
偵測資訊都寫入了/var/lib/iscsi/nodes/iqn.2014-07.dev.iscsi-target:iscsidisk/192.168.1.21,3260,1/default 檔案中了。
5.6 連接配接target
檢視目前系統上面所有的target
# iscsiadm -m node
登入target
# iscsiadm -m node -T iqn.2014-07.dev.iscsi-target:iscsidisk –login
5.7 檢視磁盤情況
# fdisk –l
可以看到,initiator 上面多了四塊硬碟,大小和target上的LUN一緻。這時你就可以像使用本地磁盤一樣使用這些iSCSI裝置了,下面我們來測試。
5.8 将/dev/sdb 和/dev/sdc 建立成LV挂載使用
建立LV
# pvcreate /dev/sdb /dev/sdc
# vgcreate iscsi /dev/sdb /dev/sdc
# lvcreate -L 1G -n iscsilv iscsi
格式化并挂載
# mkfs.ext4 /dev/iscsi/iscsilv
# mkdir /mnt/iscsi
# vi /etc/fstab
建立測試檔案
挂載成功,建立測試檔案成功。
5.9 重新開機測試
測試成功。
5.10 檢視target資訊
可以看到,此時使用該target的initiator 為iqn.2014-07.dev.iscsi-initiator:initiator,也就是我們上面更改的initiatorname,IP位址為192.168.1.22。
至此,iSCSI 置完畢。
本文轉自 dengaosky 51CTO部落格,原文連結:http://blog.51cto.com/dengaosky/1864876,如需轉載請自行聯系原作者