ISCSI(IP-SAN)存儲應用分析

前言:在前面的博客中,通過LVS+Heartbeat+Ldirector+NAS實現了Web的負載均衡羣集LB,以及LVS的高可用羣集HA,並且結合了NAS(NFS、Squid)存儲技術.由於NAS(網絡附加存儲)是基於文件級別的共享,在客戶端看到的只是一個文件夾的概念.這導致存儲的速度和效率不是很高,那我們自然就會想到怎麼樣來提高讀取速度呢?基於塊級別的共享的SAN(存儲區域網絡)就應運而生了。SAN後方的真正存儲介質是磁盤或分區,讀寫效率很高.SAN根據接口類型可分爲:FC-SAN(光纖通道式存儲區域網絡)和IP-SAN(基於iSCSI流高速交換存儲網絡)。由於FC-SAN採用的是光纖通道,需要專門的光纖熔接設備以及光纖交換設備的支持,所以一般中小型企業都不會應用到。IDC機房纔有可能應用這種FC-SAN。IP-SAN是一種投資相對較小的一種存儲方案,對於一般的企業會應用的比較廣泛,只要具有普通的網卡和交換設備就可以假設一個IP-SAN,雖然存儲的速度沒有光纖速度快,但對於企業的一般應用而言,已經夠用了。今天我們通過ISCSI來實現IP-SAN。

ISCSI 工作流程分析當ISCSI主機 應用程序發出數據讀寫請求後,操作系統會生成一個相應的SSCI命令,該命令在iSCSI initiator層會被封裝成ISCSI消息包並通過TCP/IP傳送到設備執行;設備執行SCSI命令後的響應,再經過設備側iSCSI Target層時會被封裝成ISCSI響應PDU,通過TCP/IP網絡傳送給主機的ISCSI initiator層,ISCSI initiator會從ISCSI響應PDU裏解析出SCSI響應並傳送給操作系統,操作系統響應給應用程序。

拓撲規劃

說明:沿用上次實驗拓撲,將後方存儲改爲IP-SAN(ISCSI)


配置詳情:

【Target】(採用分區)

Step1:安裝target服務所需的rpm包,並啓動服務.


service  tgtd  start

Step2:對磁盤進行分區,添加一個新的分區作爲Target.

①查看當前的分區信息.


②對磁盤進行分區操作.


③將新的分區信息寫入分區表.

Step3:通過target的工具tgtadm添加新的ISCSI Target.

①創建

tgtadm --lld iscsi --op new --mode target --tid=1 --targetname iqn.2013-06.com.a.target:disk

②顯示

tgtadm --lld iscsi --op show --mode target

Step4:添加新的存儲設備.

tgtadm --lld iscsi --op new --mode=logicalunit --tid=1  --lun=1 --backing-store /dev/sda4

Step5:增加訪問策略ACL,指定哪些用戶可以訪問.

tgtadm --lld iscsi --op bind --mode=target --tid=1 --initiator-address=192.168.1.0/24


Step6:將配置添加到服務的配置文件中,使開機自動運行.

vim  /etc/tgt/targets.conf

【Initiator】(2臺Web RealServer配置一樣)

Step1:安裝initiator服務所需的rpm包,並啓動服務.

rpm -ivh iscsi-initiator-utils-6.2.0.871-0.10.el5.i386.rpm

service  iscsi  start

Step2:使用iscsi的工具iscsiadm向target發送discovery發現報文.

Step3:initiator端進行login登入測試,並查看本地的磁盤信息.

Step4:Target端查看在線用戶狀況.

Step5:initiator端對新的磁盤進行分區、格式化、掛載。

fdisk /dev/sdb

mkfs -t ext3 /dev/sdb1

mount /dev/sdb1  /var/www/html

在上面的登入過程中,只是簡單通過策略ACL來控制IP的的範圍,並沒有真正意義上進行認證操作,下面通過CHAP來對登入進行控制.

【CHAP認證】

一:單向認證--->initiator端認證

單向認證(initiator認證):是當Initiator進行login操作時,向Target端發送CHAP認證請求,Target端將賬號發送給認證客戶端,即:單項認證是客戶端通過Taget的賬號進行認證的,Initiator認證可以在沒有target認證時應用纔可以.

Step1:在Target端建立認證賬號和密碼.

注意:雖然iSCSI CHAP認證密碼長度必須介於12到16個字符短密碼親測也行

tgtadm --lld iscsi --mode account --op new --user root --password 123456

Step2:將建的賬號與Targer id進行綁定.

tgtadm --lld iscsi --mode account --op bind --tid 1 --user root

Step3:initiator端編輯配置文件,添加CHAP認證選項.

vim  /etc/iscsi/iscsid.conf

Step4:initiator端進行登入驗證操作

注意:

①登入前的狀態必須是登出的,可以先執行先執行下面的命令.

iscsiadm -m node -T iqn.2013-06.com.a.target:disk -p 192.168.1.1 --logout

②登入驗證前必須先發送discovery發現報文給target端.

iscsiadm -m discovery -t sendtargets -p 192.168.1.1

③登入操作

iscsiadm -m node -T iqn.2013-06.com.a.target:disk -p 192.168.1.1 --login


④查看initiator日誌信息


⑤查看target端的在線用戶信息.


⑤登出操作

iscsiadm -m node -T iqn.2013-06.com.a.target:disk -p 192.168.1.1 --logout

細心的博友估計會發現:

我們怎麼知道他到底登陸的時候有沒有進行CHAP驗證呢?

下面我們通過一個測試來說明在此過程中確實進行了CHAP驗證.

①我們在initiator端的配置文件中故意把驗證密碼改成錯誤.

②登入驗證測試(登入前必須保證處於logout狀態)


③查看日誌的出錯信息



二:雙向認證--->Mutul認證、互相認證-->Target認證

雙向認證(Target認證):要求initiator認證target認證被同時應用纔可以,也就是說,initiator和target需要相互認證.。

Step1:在Target端建立outgoing認證賬號和密碼.

tgtadm --lld iscsi --op new --mode account --user logout --password 654321

Step2:在Target端將outgoing賬號綁定給TID1.

tgtadm --lld iscsi --mode account --op bind --tid 1 --user logout --outgoing

將配置添加到配置文件中,使開機能夠啓動.


Step3:initiator端編輯配置文件,添加CHAP雙向認證選項.

vim  /etc/iscsi/iscsid.conf


Step4:initiator端進行登入驗證操作

注意:

①登入前的狀態必須是登出的,可以先執行先執行下面的命令.

iscsiadm -m node -T iqn.2013-06.com.a.target:disk -p 192.168.1.1 --logout

②登入驗證前必須先發送discovery發現報文給target端.

iscsiadm -m discovery -t sendtargets -p 192.168.1.1

③登入操作

iscsiadm -m node -T iqn.2013-06.com.a.target:disk -p 192.168.1.1 --login


initiator端日誌信息查看


⑤target在線用戶信息查看.


Step5:測試雙向認證是否生效.

①我們在initiator端的配置文件中故意把outgoing驗證密碼改成錯誤.

initiator端日誌信息查看


target日誌信息查看


總結分析:

   通過上面的實驗,我們基本上了解了ISCSI的配置過程,但它存在一個致命的缺點,就是它沒有鎖機制和推送機制.這就會導致很多的問題,使得應用起來很不方便.

下次博客中,小編會給大家介紹一種更加好用的IP-SAN.RHCS:紅帽官方的集羣套件----存在鎖機制和推送機制.

敬請期待哦!


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