Linux下搭建iSCSI共享存儲詳細步驟


一、簡介

     iSCSIinternet 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系統的拓撲結構如下:

    從本質上說,iSCSI 啟動器是一個客戶端設備,它連接到服務器(在本例中是 iSCSI 目標)提供的某一服務,並發起對該服務的請求。iSCSI 啟動器軟件需要安裝在每個 Oracle RAC 節點(rac1 rac2)上。  iSCSI 啟動器可以用軟件實現,也可以用硬件實現。軟件 iSCSI 啟動器可用於大部分主要操作系統平台。對於本文,我們將使用 iscsi-initiator-utils RPM 中提供的免費 Linux Open-iSCSI 軟件驅動程序。iSCSI 軟件啟動器通常與標准網絡接口卡 (NIC)(大多數情況下是千兆位以太網卡)配合使用。硬件啟動器是一個 iSCSI HBA(或 TCP 卸載引擎 (TOE) 卡),它本質上只是一個專用以太網卡,其上的 SCSI ASIC 可以從系統 CPU 內卸載所有工作(TCP SCSI 命令)。iSCSI HBA 可以從許多供應商處購買,包括 AdaptecAlacritechIntel QLogic

      iSCSI 目標是 iSCSI 網絡的"服務器"組件。它通常是一個存儲設備,包含您所需的信息並響應來自(一個或多個)啟動器的請求。對於本文,節點rac1 將是 iSCSI 目標。

 

二、實驗環境:

1、操作系統關閉防火牆和禁用SELinux

2、iSCSI共享存儲拓撲圖:

3iSCSI可分享的設備類型有很多,包括鏡像文件(*.img)、分區(partition)、物理硬盤、raid設備、邏輯卷等,下面我只用物理磁盤分區來進行相關測試,其他類型大家可以自己測試。

 

三、實驗步驟

(一)配置iscsi target:

方案1:命令行配置,立即有效,重啟無效

1、在target上添加一塊磁盤設備:sdb

2、安裝程序包、啟動服務

[root@rac1 ~]# yum install -y scsi-target-utils

[root@rac1 ~]# service tgtd start

3、創建target

[root@rac1 ~]# tgtadm --lld /dev/sdb --mode target --op new --tid 1 --targetname iqn.2017-04.comcomsys:iscsi.fcdisk

4、創建lun

[root@rac1 ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb

[root@rac1 ~]# tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1 #刪除lun的方法

5、授權

[root@rac1 ~]# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 10.1.1.0/24  #限制只有10.1.1.0的網段可訪問

6、查看已經定義的信息

[root@rac1 ~]# tgtadm --lld iscsi --mode target --op show

 

方案2:在配置文件中定義,重啟有效

1、安裝tgt

RedHat6自帶了scsi-target-utils 軟件,我們使用該軟件進行target設置。

[root@rac1 ~]# yum install scsi-target-utils -y

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 NumberLUN),這個實驗中有1LUN

其他高級設置如initiator-addressincominguser,大家自己進行配置。

 

3、啟動iSCSI target

[root@rac1 ~]# /etc/init.d/tgtd start

[root@rac1 ~]# chkconfig tgtd on

[root@rac1 ~]# netstat -tulnp|grep tgt

 

4、查看iSCSI target

[root@rac1 ~]# tgt-admin –show

LUN0 是控制器,可以看到各個LUN的大小和磁盤路徑。

至此,iSCSI Target 設定完畢。

 

(二)配置iSCSI Initiator

1、安裝initiator

[root@rac1 ~]# yum -y install iscsi-initiator-utils

2、設置開機啟動

[root@rac1 ~]# chkconfig iscsid on

[root@rac1 ~]# chkconfig iscsi on

3、修改配置文件

initiator的配置文檔位於/etc/iscsi/,該目錄下有兩個文件,initiatorname.iscsi iscsid.conf,其中iscsid.conf 是其配置文件,initiatorname.iscsi 是標記了initiator的名稱,它的默認名稱是InitiatorName= InitiatorName=iqn.1994-05.com.redhat:2f897b321a2,我們可以根據實際情況進行更改,比較好區分,這里我們修改為InitiatorName= iqn.2017-04.com.comsys:fcdisk.sdb

因為在target里面,我們並沒有設置訪問限制,所以iscsid.conf 文件並不需要修改。

 

小知識:

[root@rac2 iscsi]#echo "InitiatorName=`iscsi-iname -p iqn.2017-04.com.comsys:fcdisk.sdb`" > /etc/iscsi/initiatorname.iscsi  (使用iscsi-iname命令生成隨機數 )

 

4、偵測target

如果我們事先不知道目標主機的target名稱,我們就需要進行偵測。

基本格式:iscsiadm -m discovery -d # -t sendtargets -p IP[:PORT]

[root@rac2 iscsi] iscsiadm -m discovery -t sendtargets -p 10.1.1.51

說明:

-m discovery   //偵測target

-t sendtargets  //通過iscsi協議(sendtargets可簡寫為st

-p IP:port   //指定targetIPport,不寫port的話,默認為3260

 

5、查看nodes

iscsiadm 偵測到的結果會寫入/var/lib/iscsi/nodes/ 中,因此只需啟動/etc/init.d/iscsi 就能夠在下次開機時,自動連接到正確的target了。

[root@rac2 iscsi] ll -R /var/lib/iscsi/nodes/

偵測信息都寫入了/var/lib/iscsi/nodes/ iqn.2017-04.com.comsys:iscsi.fcdisk /10.1.1.51,3260,1/default 文件中了。

 

6、連接target

查看目前系統上面所有的target

[root@rac2 iscsi] iscsiadm -m node

補充知識:

連接與退出

基本格式:iscsiadm -m node [ -d debug_level ]  [ [ -T targetname -p ip:port -I ifaceN ] [ -l | -u | -R | -s] ] [ [ -o  operation  ]

[root@rac2 iscsi] iscsiadm -m node -d 1 -T iqn.2017-04.com.comsys:iscsi.fcdisk -p 10.1.1.51:3260 -u #退出

[root@rac2 iscsi] iscsiadm -m node -d 1 -T iqn.2017-04.com.comsys:iscsi.fcdisk -p 10.1.1.51:3260 -o #刪除指定條目

 

連接target

[root@rac2 ~] iscsiadm -m node -d 1 -T iqn.2017-04.com.comsys:iscsi.fcdisk -p 10.1.1.51:3260 -l

 

7、查看磁盤情況

[root@rac2 ~] fdisk –l

可以看到,initiator 上面多了一塊硬盤,大小和target上的LUN一致。這時你就可以像使用本地磁盤一樣使用這些iSCSI設備了,下面我們來測試。

 

8、查看target信息

[root@rac1 ~] tgt-admin --show

 

(三)測試

/dev/sdb在目標端進行分區,然后在客戶端查看具體的分區情況

[root@rac1 ~]# fdisk /dev/sdb

目標端分區:

客戶端查看分區結果:

 

 

出處http://www.linuxidc.com/Linux/2017-05/143877.htm

=======================================================================================

##服務端搭建配置

yum安裝iscsi服務端程序包

[root@localhost ~]# yum install scsi-target-utils

啟動tgtd服務

[root@localhost ~]# service tgtd start 

正在啟動 SCSI target daemon:                              [確定]

將tgtd服務設為開機啟動

[root@localhost ~]# chkconfig tgtd on

 

##命令行創建iscsi服務

創建的target名稱

[root@localhost ~]# tgtadm --lld iscsi --mode target --op new --tid 11 --targetname iqn.2014-03-17.com.tingwin.iscsi:iscsishared

添加LUN本地存儲路徑

[root@localhost ~]# tgtadm --lld iscsi --mode logicalunit --op new  --tid 11 --lun 11 --backing-store  /dev/sda4

添加訪問控制列表,開放給172.16.0.0/16網絡中的主機訪問 

[root@localhost ~]# tgtadm --lld iscsi --mode target --op bind --tid 11 --initiator-address ALL

查看iscsi服務配置信息

[root@localhost ~]# tgtadm --lld iscsi --mode target --op show

 

##配置文件創建iscsi服務

[root@cclove ~]# cat /etc/tgt/targets.conf

<target  iqn.2014-03-17.com.tingwin.iscsi:iscsishared>

        <backing-store /dev/sda4>

        lun 10

        </backing-store>

        initiator-address ALL

        incominguser sharedisk iscsi123321

</target>

 

##客戶端搭建配置(Linux)

[root@localhost ~]# yum install iscsi-initiator-utils

[root@localhost ~]# chkconfig iscsid on

[root@localhost ~]# chkconfig iscsi on

添加用戶驗證

[root@localhost /]# cat /etc/iscsi/iscsid.conf | grep -v ^# | grep -v ^$

node.session.auth.authmethod = CHAP

node.session.auth.username = sharedisk

node.session.auth.password = iscsi123321

discovery.sendtargets.auth.authmethod = CHAP

discovery.sendtargets.auth.username = sharedisk

discovery.sendtargets.auth.password = iscsi123321

發現服務端共享target然后連接到本地上來  

[root@localhost ~]# iscsiadm -m discovery -t sendtargets(st) -p 192.168.170.132:3260

登錄到服務端的target上  

[root@localhost ~]# iscsiadm -m node -T iqn.2014-03-17.com.tingwin.iscsi:iscsishared -p 192.168.170.132:3260 -l  

查看iscsi發現記錄

[root@localhost ~]# iscsiadm -m node

登出iscsi存儲 

[root@localhost ~]# iscsiadm -m node -T iqn.2014-03-17.com.tingwin.iscsi:iscsishared -p 192.168.170.132:3260 -u

刪除iscsi發現記錄 

[root@localhost ~]# iscsiadm -m node -T iqn.2014-03-17.com.tingwin.iscsi:iscsishared -p 192.168.170.132:3260 -o delete 

 

 

##客戶端搭建配置(windows)

1,啟用ISCSI后台服務

  開始菜單->控制面板->管理工具->服務->Microsoft iSCSI Initiator Service 服務,雙擊 選擇啟動按鈕,啟動類型選擇自動 ,確定 退出。

  或是 開始菜單->控制面板->管理工具-> ISCSI發起程序 自動打開該服務。

2,配置ISCSI服務

  開始菜單->控制面板->管理工具-> ISCSI發起程序-> 發現->發現門戶,添加ISCSI服務端IP,稍等就會在目標選項卡 ->已經發現目標列表中顯示target名稱;選擇target后選擇 連接

(同時選中 “將此連接添加到收藏目標列表”選項)

  如果服務端配置CHAP密碼,則在配置選項卡中添加

3,在計算機管理程序中配置磁盤

  開始菜單->控制面板->管理工具->計算機管理->存儲->磁盤管理;選擇新增磁盤進行格式化並添加盤符使用,如果磁盤狀態為脫機,在顯示脫機字符處右擊,選擇聯機。

 

 

出處:https://blog.51cto.com/winterx/1414574?ivk_sa=1024320u


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM