前言:在前面的博客中,通過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:紅帽官方的集羣套件----存在鎖機制和推送機制.
敬請期待哦!