iscsi

iscsi

iSCSI的協議自頂向下分爲三層

SCSI層:根據客戶端發出的請求建立SCSI CDB--命令描述,並傳給iSCSI層。同時接收來自iscsi層的CDB,並嚮應用返回數據

iSCSI層:對SCSI CDB進行封裝,便於能夠在基於TCP/IP協議的網絡上進行傳輸,完成SCSI到tcp/ip的協議映射。這一層是iscsi協議的核心層。

TCP/IP層:對ip報文進行路由和轉發,並且提供端到端的透明可靠的傳輸。


iscsi協議定義了在tcp/ip網絡發送,接收數據塊存儲數據的規則和方式。發送端封裝scsi命令和數據到TCP/IP包,然後通過ip網絡轉發,接收到tcp/ip包後將其還原爲scsi命令和數據並執行,執行完成後將返回的scsi命令和數據在封裝到tcp/ip包中,返回給發送端。


iSCSI Initiator是一個安裝在計算機上的軟件或硬件設備,其負責與iSCSI存儲設備進行通信。

iSCSI服務器與iSCSI存儲設備之間的連接方式有兩種:軟件方式iSCSI Initiator軟件,在iSCSI服務器上安裝Initiator後,其可以將以太網卡虛擬爲iSCSI卡,可以接收和發送iSCSI數據報文,從而實現主機和iSCSI存儲設備之間的iSCSI協議和TCP/IP協議傳輸功能。但是iSCSI報文和TCP/IP報文轉換需要消耗iSCSI服務器的一部分CPU資源。第二種就是硬件iSCSI HBA卡


Linux上配置iSCSI Initiator

wKiom1YA-MfRki2SAACO5hEea08023.jpg

啓動iscsi

wKioL1YA-2mBYfsrAAA5RVf-OzU772.jpg

iscsi initiator的目錄及其部分說明

wKioL1YA_AiSuNmJAALccDKjSmc090.jpg

/sbin/iscsiadm;用來管理(更新、刪除、插入、查詢)iSCSI配置數據庫文件的命令行工具,能夠對iSCSI nodes、sessions、connections、discovery records進行操作

/var/lib/iscsi/send_targets;此目錄下回生成iSCSI存儲服務器的ip地址和端口號命名的文件夾

/var/lib/iscsi/nodes;此目錄下生成iSCSI存儲服務器上的target命名的文件夾,還有一個文件名iSCSI port ip,端口號的配置文件,此文件是iSCSI Initiator登錄iSCSI Target時需要的參數,此參數從/etc/iscsi/iscsi.conf文件中繼承過來


執行iSCSI Target發現

wKiom1YA_AWxJc6aAACIcH2EBws604.jpgiscsiadm -m dicovery --type sendtargets --portal ip或

iscsiadm -m discovey -t sendtargets -p ip

成功執行一次Targets發現後,iSCSI Initiator就會將查詢記錄到/var/lib/iscsi/send_targets對應的目錄下面。

iscsiadm指令與iSCSI Target主機建立連接,登錄到iSCSI Target

iscsiadm -m node -T <target-name> -p ip --login

當Target主機多時,通過--login=all登錄所有主機

說明:執行Target發現操作時,已經與iSCSI Target主機建立了連接。斷開iSCSI Target與Initiator的連接命令如下

iscsiadm -m node -T <target-name> -p ip -u

查看iSCSI session信息

iscsiadmin -m  session -i

iSCSI在安全方面的設定

iSCSI在授權訪問和安全管理方面可以以主機爲基礎來設定允許和拒絕;也可以通過賬號密碼設定允許和拒絕。

Initiaror主機以ip認證方式獲取iSCSI Target資源:

iSCSI Target是一個可以用於存儲數據的iSCSI磁盤陣列或者具有iSCSI功能的設備都可以成爲Target,其主配置文件是/etc/iet/ietd.conf

在iSCSI Target服務器上修改/etc/iet/ietd.conf定義Target,併爲Target添加對應的分區,然後修改/etc/iet/initiator.allow文件,此文件件定義Initiator主機對Target服務器的訪問規則類似於/etc/hosts.allow

Initiaror主機以密碼認證方式獲取iSCSI Target資源:

 iscsi Target以賬號密碼方式認證分兩個階段:

    一是discovery查詢認證所使用的賬號密碼

    二是登錄Target使用的賬號密碼

 需要在Initiator主機和iscsi Target主機上進行配置

   1、iscsi Target配置

    vim /etc/iet/initiator.allow開啓權限

   vim /etc/iet/ietd.conf

   2、Initiator主機配置

    vim /etc/iscsi/iscsid.conf

    node.session.auth.authmethod=CHAP

    node.session.auth.username=login_username

    node.session.auth.password = secret

    

    discovery.sendtargets.auth.authmethod = CHAP

    discovery.sendtargets.auth.username = discovery.auth

    discovery.sendtargets.auth.password = discoverysecret

  

iSCSI優化

由於iSCSI協議建立在TCP/IP協議上,進行數據傳輸時,其性能受限於TCP/IP協議棧負載和以太網最大帶寬。在應用中iSCSI數據傳輸性能存在瓶頸。一次完整的數據發送過程;數據封裝--->數據拷貝--->數據傳輸。


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