iSCSI服務部署文檔

文檔目的

部署iSCSI服務

基礎知識

傳統的SCSI小型計算機系統接口(Small Computer System Interface)技術是存儲設備最基本的標準協議,但通常需要設備互相靠近並用SCSI總線鏈接,因此受到了物理環境的限制。

 

iSCSI小型計算機系統接口(即Internet Small Computer System Interface)則是由IBM公司研究開發用於實現在IP網絡上運行SCSI協議的新存儲技術,即能夠讓SCSI接口與以太網技術相結合,使用iSCSI協議基於以太網傳送SCSI命令與數據,克服了SCSI需要直接連接存儲設備的侷限性,使得我們可以跨越不同的服務器共享存儲設備,並可以做到不停機狀態下擴展存儲容量。

 

SAN存儲區域網絡技術(Storage Area Network)便是基於iSCSI存儲協議,採用高速光釺通道傳輸存儲數據的服務程序。

 

邏輯單元LUN(Logical Unit Number)是使用iSCSI協議中的重要概念,因爲當客戶機想要使用服務端存儲設備時都必需輸入對應的名稱(Target ID),而一個服務端可能會同時提供多個可用的存儲設備,於是便用LUN來詳細的描述設備或對象,同時每個LUN Device可能代表一個硬盤或RAID設備,LUN的名稱由用戶指定。

 

 

iSCSI的工作方式分爲服務端(target)與客戶端(initiator

 

 

常用命令

mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde

創建RAID 5

mdadm -D /dev/md0

查看RAID陣列詳細信息,獲取UUID

create

iSCSI中創建磁盤鏡像

delete [ip] [port]

刪除portalsip地址和端口

systemctl restart iscsid

iscsi客戶端重啓

iscsiadm

 


file /dev/sdb

檢查硬盤信息

 

所需軟件

 

targetd

targetcli

 

系統環境

服務器:Linux version 3.10.0-229.el7.x86_64 ([email protected]) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) )

 

客戶端:Linux version 3.10.0-229.el7.x86_64 ([email protected]) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) )

 

 

 

操作步驟

配置iSCSI服務器

1.準備作爲LUN發佈的存儲設備

現在虛擬機中添加四個容量爲20GB的硬盤

 

創建RAID5並且設置一塊備份用的故障盤

mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde

注:如果提示mdadm命令未找到,請先安裝mdadm命令(yum install mdadm -y


wKioL1gV0x-D4CZqAAAcv6f5by8739.png


查看RAID陣列UUID

mdadm -D /dev/md0


wKiom1gV0zyxEs7JAAAZUQZHzfM882.png


創建RAID陣列配置文件

vim /etc/mdadm.conf

 

寫入以下語句

DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde

ARRAY /dev/md0 UUID=edf6f2dd:17c58f31:e60b3208:e585f906



wKioL1gV01XTjxbgAAAKm_q1mU0445.png


2.安裝target服務程序

yum -y install targetd targetcli

 

啓動iSCSI target服務程序

systemctl start targetd

 

添加iSCSI target服務到開機啓動項

systemctl enable targetd

 

 

3.創建存儲對象

targetcli


wKiom1gV03SzLQgtAAASHSVDvJA820.png


進入/backstores/block目錄中創建設備disk0

 

cd /backstores/block

create disk0 /dev/md0



wKiom1gV04ugCjPkAAAuXnujkiU246.png


返回根目錄,查看創建後的設備

 

cd /

ls


wKioL1gV06GT_YvfAAA2TNBtves678.png


4.配置iSCSI target目標

進入iscis目錄

cd iscsi

 

創建iSCSI target 目標

create

 

進入target/luns目錄中創建LUN設備

cd iqn.2003-...........

cd tpg1

cd luns

create /backstores/block/disk0


wKioL1gV08PSWX1LAAAiTIYU7kg232.png


5.設置訪問控制列表

創建訪問控制列表

ls /

cd ..

cd acls

create iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445:client

注:createacl名字可以用 ls / 查看iscisitargetID,並在顯示的targetID後加上“:client


wKiom1gV096CEwf6AABp0Y61s2c984.png


切換到portals目錄中,先刪除0.0.0.0:3260, 再添加允許監聽的IP地址

cd ..

cd portals

delete 0.0.0.0 3260

create 172.16.34.71


wKioL1gV0_nzxdBKAAAf-pgliVw185.png


注:這裏一定要先刪除0.0.0.0地址,否則會報錯“Could not create NetworkPortal in configFS”!


wKiom1gV1BbTS3koAABg5kgbvwc231.png


6.關閉端口防火牆

firewall-cmd --zone=public --add-port=3260/tcp --permanent

firewall-cmd --reload


wKiom1gV1C-BcOdRAAAPknpgov8914.png



配置iSCSI客戶端

1.檢查能否與iscsi服務端通信

ping -c 172.16.34.71

 

2. 安裝客戶端服務程序

yum install iscsi-initiator-utils -y


wKioL1gV1FSiiMF4AAALFlM5sjU583.png


3.編輯iscsi客戶端名稱文件

vim /etc/iscsi/initiatorname.iscsi

 

替換以下語句

InitiatorName=iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445:client


wKiom1gV1HDDRglRAAAJcKcg2L8523.png


注:這裏的名字必須與iscsi服務端設置的acls名稱一致,否則會報錯“iSCSI login failed due to authorization failure”!

 

 

重啓iscsi客戶端服務

systemctl restart iscsid

 

 

發現iscsi服務端的可用存儲設備

iscsiadm -m discovery -t st -p 172.16.34.71



wKiom1gV1LmDARjLAAAL3BESEec000.png


連接iscsi服務端的可用存儲設備

iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445 -p 172.16.34.71 --login


wKioL1gV1NzQlBK0AAAg8dUbdCY146.png


驗證

file /dev/sdb

連接前

fdisk -l



wKioL1gV1P2hHTneAABm2jqUpL4433.png


連接後

fdisk -l


wKioL1gV1RjhbrmLAABp0advC9o644.png


格式化磁盤

mkfs.xfs /dev/sdb



wKioL1gV1TLASuONAAAY2Rd_tpU809.png


mkdir /iscsi

mount /dev/sdb  /iscsi

df -h


wKiom1gV1UnhIqdwAAAoORYQaN4871.png


常見問題

問題一:無法建立本地IP portals 監聽,顯示“Could not create NetworkPortal in configFS”

wKiom1gV1W_DkfzdAAANAAlDhu8939.png


解決方法:

刪除/iscsi/iqn.20../portals 已有IP:端口,再次建立即可

cd /iscsi/iqn.20../tpg1/portals

delete 0.0.0.0 3260

create 172.16.34.70    (這裏的IPiSCSI服務器的IP地址)


wKioL1gV1auyFzFdAABPsuOMQxw041.png

wKioL1gV1auw2BtyAAAVWgmepJw981.png



問題二:iSCSI客戶端無法連接iSCSI服務端,顯示錯誤“iSCSI login failed due to authorization failure”

wKiom1gV1ciBo1A2AAAqEXNN0xc835.png

解決方法:

客戶端中的initiator唯一標識(/etc/iscsi/initiatorname.iscsi)必須和服務器上的名字一直

客戶端 vim /etc/iscsi/initiatorname.iscsi 

wKiom1gV1fDhdWVzAAALU9-f0Ig479.png

服務端

targetcli

cd /

ls


wKiom1gV1grCylRXAABpv2zfE3Q907.png

參考文獻

文章架構:

http://www.linuxprobe.com/chapter-17.html

http://www.linuxprobe.com/chapter-07.html

 

create IP 問題:

http://target-devel.vger.kernel.narkive.com/kxGYQSnh/could-not-create-networkportal-in-configfs


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