CentOS 配置iSCSI網絡存儲

一、簡介

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 模擬鏡像

在iSCSITarget的/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,下面我們來設置改文件。

在該文件最後新增以下設置:

<target iqn.2014-07.dev.iscsi-target:iscsidisk>

   backing-store /srv/iscsi/disk1.img

    backing-store /dev/sdb1

   backing-store /dev/vg0/lv1

   backing-store /dev/sdd

</target>

說明:

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

說明:

-m discovery  //偵測target

-t sendtargets  //通過iscsi協議

-p IP:port  //指定target的IP和port,不寫port的話,默認爲3260

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信息

# tgt-admin –show

可以看到,此時使用該target的initiator 爲iqn.2014-07.dev.iscsi-initiator:initiator,也就是我們上面更改的initiatorname,IP地址爲192.168.1.22。

至此,iSCSI 置完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章