iscsl網絡存儲服務

網絡存儲的概述

隨着企業中數據信息的不斷增長,尤其當成百上千TB的數據需要備份、恢復,以及面臨着擴容、災難恢復等需求時,DAS(直接附加存儲,就是通過與計算機主板的I/O接口,如IDESCSI相連接由本機操作系統負責讀寫及管理)方式使得數據的管理與維護日益困難。正因爲如此,網絡存儲技術應運而生,其最常見的就是NASSAN


SANstorage area network,存儲區域網絡)


SAN是通過光纖交換機、光纖路由器等設備將磁盤陣列、磁帶機或獨立的ISCSI設備與服務器連接,構成一個高速存儲子網,存儲的數據以數據塊的形式通過ISCSI協議進行傳輸,從而優於普通的IP包傳輸。

NAS(network attachment storage,網絡附加存儲)


NAS存儲設備相當於一臺獨立的服務器,設備本身帶有操作系統,也擁有網絡接口,因此不依賴於其他服務器,在NAS設備中爲客戶機分配存儲空間時,通常採用共享文件夾的方式進行發佈,存儲的數據以文件的形式進行傳輸,採用CIFS或者NFS等協議

iscsiiscsi= internet Small Computer System Interface )是由IEETF開發的網絡存儲標準,目的是爲了用IP協議將存儲設備連接在一起。通過在IP網上傳送SCSI命令和數據,ISCSI推動了數據在網際之間的傳遞,同時也促進了數據的遠距離管理。由於其出色的數據傳輸能力,ISCSI協議被認爲是促進存儲區域網(SAN)市場快速發展的關鍵因素之一。因爲IP網絡的廣泛應用, ISCSI能夠在LANWAN甚至internet上進行數據傳送,使得數據的存儲不再受地域的限制。

ISCSI技術的核心是在TCP/IP網絡上傳輸SCSI協議,是指用TCP/IP報文、和ISCSI報文封裝SCSI報文,使得SCSI命令和數據可以在普通以太網絡上進行傳輸,如下圖:

205448961.jpg

iSCSI協議定義了在 TCP/IP 網絡發送、接收 block(數據塊)級的存儲數據的規則和方 法。發送端將SCSI命令和數據封裝到 TCP/IP 包中再通過網絡轉發,接收端收到 TCP/IP 包之後,將其還原爲SCSI命令和數據並執行,完成之後將返回的SCSI命令和數據再封裝到 TCP/IP包中再傳送回發送端。而整個過程在用戶看來,使用遠端的存儲設備就訪問本地的 SCSI設備一樣簡單。

RHEL6中搭建ISCSI存儲服務器:

ISCSI服務器通常也稱爲Target端,負責定義存儲對象、分配邏輯空間LUNLogical Unit,邏輯單元)。在RHEL6服務器中需要安裝scsi-target-utils軟件包,對應的系統服務爲tgtd,命令行管理工具爲tgtadm.

下面依次講解配置ISCSI的主要過程:準備存儲設備、創建ISCSI對象、爲客戶機分配存儲空間,客戶機使用ISCSI

此處所說的存儲設備指將要分配給某一個客戶機使用的設備文件,在RHEL6系統中,硬盤、分區、邏輯卷、軟RAID等都可以用作ISCSI服務的存儲設備,爲了延續磁盤空間的可擴展性,建議以一個邏輯卷爲單位分配給客戶機使用,對於個別有特殊要求的客戶機,也可以將一個軟RAID陣列分配出去。

這裏將Target主機一個邏輯卷作爲iSCSI共享磁盤,共享給一臺linux主機使用。

創建一個邏輯卷,名爲lv00,將來分配給客戶機使用。如下圖所示:

210659101.png

ISCSI服務器配置推薦步驟:

1、在ISCSI存儲服務器上安裝iscsi target軟件包,如下圖所示:

210750671.png

2iscsi target配置文件是/etc/tgt/targets.conf,此文件中的配置項默認全被注示掉了。編輯該文件,實現簡單的ISCSI存儲服務器配置。在文件尾部添加如下內容:

210819154.png

若要將多個存儲設備分配給客戶機可以在targets.conf文件中添加多個

<target ……>

……

</target>

注:Target的命名在同一子網內應該是唯一的,標準命名方式爲:
iqn.yyyy-mm.<reversed domain name>[:identifier]
其中:

iqn:表示“iSCSI Qualified Name”,簡稱iqn
yyyy-mm:表示年份-月份。這裏是2011-08
reversed domain name:表示倒過來的域名,這裏是com.example
identifier:表示識別代碼,這裏是disk

backing-store用於指定存儲設備,一般指非實際的物理磁盤,如LVM卷、某個分區、raid磁盤陣列。

initiator-address 地址 於將target指派給指定的客戶機使用。

然後啓動tgtd服務,並設置系統啓動時自動啓動,iscsi通信的端口:3260/tcp,以明文傳輸數據

#service tgtd start

#chkconfig tgtd on

210920333.png

211101802.png

若是ISCSI服務器上開啓了防火牆可以將iptables關閉或創建允許規則,如下圖所示:

211148199.png

運行tgtadm --lld iscsi --op show --mode target查看target信息

211222366.png

211241632.png

至此,iscsi target存儲服務器配置完成,使用iSCSI Initiator就可以連接iscsi target服務器了。

使用tgtadm工具創建ISCSI對象時,主要命令選項如下所述:

-L--lld:指定驅動類型,如“-L iscsi”表示ISCSI存儲。

-o--op:指定操作類型,如“-o new”表示創建,“-o delete”表示刪除,“-o show”表示查看信息。

-m--mode:指定管理目標,如“-m target”表示ISCSI對象。

-t--tid:指定對象ID號,如“-t 1”表示第一個對象。

-T,--targetname:指定ISCSI對象的名稱。

RHEL6iscsi客戶端配置:

1安裝iscsi發起端軟件:iscsi-initiator-utilslsscsi軟件

211326212.png

#service iscsi start

#chkconfig iscsi on

2、查找iscsi服務器上的iscsi目標,即iscsi發現。

執行iscsiadm -m discovery t st p iscsi服務器的IP

iscsiadm -m discovery -t sendtargets -p targetIP地址:端口號

若是默認端口3260可以省略不寫。

211525623.png

3、登錄服務器上的iscsi目標,即iscsi註冊

執行iscsiadm -m node -T target名稱 -p targetIP地址:端口號 --login

211602315.png

退出iscsi盤陣

執行iscsiadm -m node -T target名稱 -p targetIP地址:端口號 --logout

211714422.png


4、查看/dev/disk/by-path目錄中iscsi符號鏈接所指向的位置或fdisk l查看磁盤情況或檢查iscsi的狀態:service iscsi statusdmesg |tail

211800320.png

211825692.png

此時,可以使用iscsi磁盤,就好像它是本地連接硬盤驅動器。

5、對連接的iscsi磁盤建立LVM並實現自動掛載

未分區前顯示sdb信息如下, 執行fdisk -l /dev/sdb查看

211905287.png

ISCSI客戶機上執行fdisk /dev/sdb創建LVM類型分區並查看/dev/sdb新建分區後的信息

211946900.png

爲了實現磁盤擴容,在客戶機上可以將連接的ISCSI磁盤創建爲LVM

212021418.png

在建好的邏輯捲上創建文件系統。

212105662.png

創建掛載點目錄並掛載

212151136.png

212417332.png

修改/etc/fstab文件實現自動掛載

執行blkid /dev/vg_data/lv_data獲得邏輯卷lv_dataUUID

212216520.png

修改/etc/fstab文件自動掛載邏輯卷lv_data,如下圖所示:

212634151.png

測試自動掛載:mount a或重啓系統後執行df hT查看掛載情況

注意:

1、 使用blkid確定文件系統UUID並使用UUID掛載,而不是/dev/sd*設備名稱。(每次引導時顯示的設備名稱都不同,具體取決於iscsi設備通過網絡進行響應的順序,如果按設備名稱掛載,這會導致使用錯誤的設備)

2、 /etc/fstab中使用_netdev作爲掛載選項。(這將確保客戶端不會嘗試掛載文件系統,直至啓用聯網,否則,在引導時系統將出錯)

3、 確保iscsi服務在引導時將啓動

#chkconfig iscsi on


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