ISCSInode
1、準備工做python
1.一、(服務端和客戶端都須要設置)
系統使用的是CentOS7.2
禁用防火牆:
查看狀態:# systemctl status firewalld或者 firewall-cmd--state
中止:# systemctl stop firewalld
開機不啓動:# systemctl disable firewalld
或開啓端口:
#firewall-cmd --permanent --add-port=3260/tcp;firewall-cmd --reloadlinux
SELINUX禁用:
vi /etc/selinux/config
SELINUX=disabled
1.二、說明:
服務器:
主機名--- master;IP--- 192.168.20.222
客戶機:
主機名--- slave;IP--- 192.168.20.223
注:# vi /etc/hostnameshell
2、iSCSI Target(服務器端)服務器
修改主機名和IP
#hostnamectl set-hostname
# ip a
安裝targetcli網絡
# yum -y install targetcli # yum -y install python-rtslib Installed: targetcli.noarch 0:2.1.fb46-1.el7 Dependency Installed: pyparsing.noarch 0:1.5.6-9.el7 python-configshell.noarch 1:1.1.fb23-3.el7 python-kmod.x86_64 0:0.9-4.el7 python-rtslib.noarch 0:2.1.fb63-2.el7 python-six.noarch 0:1.9.0-2.el7 python-urwid.x86_64 0:1.1.1-3.el7
啓動target服務
# systemctl start target
設置開機啓動服務
# systemctl enable target
新建分區
注意:(/dev/sdb1)第二塊硬盤(可自定義任何磁盤),fdisk -l查看磁盤信息,分區大小可自定義如在Last扇區後輸入【+7G】表示該分區分配大小爲7G,注意不要格式化分區。
# fdisk /dev/sdb
n --- p --- 1 --- 回車幾回 ---p --- w
開始建立
進入targetcli
#targetcli
步驟1:創建一個塊存儲
注意:server1.disk(名稱server1可自定義),/dev/sdb1爲上面新建的分區名稱。
/> /backstores/block create iscsi_store /dev/sdb1
步驟2:配置ISCSITarget命名
注意:命名在同一子網內確保是惟一的,命名格式爲:iqn.yyyy-mm.<主機名反寫>:自定義名稱(自定義名稱內不能有下劃線)
/> /iscsi create iqn.2017-12.com.example:master
步驟3:建立ACL容許ISCSI客戶機鏈接
注意:iqn.2017-12.com.example:slave爲客戶機ISCSI名稱。
/>/iscsi/iqn.2017-12.com.example:master/tpg1/acls create iqn.2017-12.com.example:slave
步驟4:建立lun(target塊設備的邏輯單元)
/>/iscsi/iqn.2017-12.com.example:master/tpg1/luns create /backstores/block/iscsi_store
步驟5:建立ip與端口
/# 有多個ip時必須須要手動指定(缺省監聽 0.0.0.0,先刪除再建立,否則報 'Could not create NetworkPortal in configFS' 錯誤),單IP忽略session
/ /iscsi/iqn.2017-12.com.example:master/tpg1/portals/ delete 0.0.0.0 3260
/>/iscsi/iqn.2017-12.com.example:master/tpg1/portals create192.168.20.222 3260
或
/>cd /iscsi/iqn.2017-12.com.example:master/tpg1/portals
/>create 192.168.20.222 ip_port=3260app
注:192.168.20.222爲服務器IP;不指定端口默認爲3260
步驟6:配置驗證用戶名和密碼(這裏能夠省略)
/>cd
/iscsi/iqn.2017-12.com.example:master/tpg1/acls/iqn.2017-12.com.example:slave
/>set auth userid=test
/>set auth password=test
步驟7:配置完成後查看配置信息,並退出。
/>cd /
/>ls
o- / .................................................................... [...]
o- backstores ......................................................... [...]
| o- block ............................................. [Storage Objects: 1]
| | o- iscsi_store ............... [/dev/sdb1 (0 bytes) write-thru activated]
| | o- alua .............................................. [ALUA Groups: 1]
| | o- default_tg_pt_gp .................. [ALUA state: Active/optimized]
| o- fileio ............................................ [Storage Objects: 0]
| o- pscsi ............................................. [Storage Objects: 0]
| o- ramdisk ........................................... [Storage Objects: 0]
o- iscsi ....................................................... [Targets: 1]
| o- iqn.2017-12.com.example:host ................................. [TPGs: 1]
| o- tpg1 .......................................... [no-gen-acls, no-auth]
| o- acls ..................................................... [ACLs: 1]
| | o- iqn.2017-12.om.example.slave:iscsicli ........... [Mapped LUNs: 1]
| | o- mapped_lun0 ...................... [lun0 block/iscsi_store (rw)]
| o- luns ..................................................... [LUNs: 1]
| | o- lun0 .......... [block/iscsi_store (/dev/sdb1) (default_tg_pt_gp)]
| o- portals ............................................... [Portals: 1]
| o- 192.168.20.224:3260 ......................................... [OK]
o- loopback .................................................... [Targets: 0]
/>savecondif
/>exittcp
3、iSCSI Initiator(客戶端)ide
步驟1:安裝ISCSIInitiator
# yum -y install iscsi-initiator-utils
啓動iscsi服務
# systemctl start iscsi
設置開機啓動服務
# systemctl enable iscsi
步驟2:配置ISCSIInitiator名稱
注:此處InitiatorName必須與服務端配置的ACL容許ISCSI客戶機鏈接的名稱一致。
# vi /etc/iscsi/initiatorname.iscsi
iqn.2017-12.com.example:slave
步驟3:修改ISCSIInitiator配置文件(上面服務端若是沒有設置有用戶和密碼這裏不須要操做)
注意:
#node.session.auth.authmethod = CHAP---去掉註釋
node.session.auth.username爲存儲服務端
set auth userid=username配置的username,
node.session.auth.password= password爲存儲服務器端
set auth password=password配置的password。
# vi /etc/iscsi/iscsid.conf
步驟4:查找ISCSI設備
iscsiadm -m discovery -t sendtargets -p 192.168.20.222
查看覈對信息
iscsiadm -m node -o show
步驟5:鏈接ISCSI設備
#登陸所有掃描到的服務器
# iscsiadm -m node --login
#登陸某一個
#iscsiadm --mode node --targetname iqn.2012-10.net.cpd:san.target01 --portal 172.16.201.200 --login
# iscsiadm -m node –T iqn.2017-12.com.example:master -p 192.168.20.222:3260 -l
查看覈對登陸信息
iscsiadm -m session -o show
步驟6:查看系統磁盤信息
lsblk
或 fdisk -l
步驟7:將共享磁盤掛載到指定目錄
將sdb1分區掛載到/mnt/iscsi目錄,使用df -hT命令可查看到/dev/sdb1已經掛載上並顯示其容量信息。
# mount /dev/sdb1 /home/test
步驟8:設置開機自動鏈接ISCSI設備
注意:iqn.2017-12.com.example:master爲存儲服務端ISCSI名稱,192.168..:3260爲存儲服務端IP及端口號。
# iscsiadm -m node -T iqn.2017-12.com.example:master -p192.168.20.222:3260 -o update -n node.startup -v automatic
步驟9:設置開機掛載網絡磁盤
開機掛載:採用寫入fstab方式開啓啓動掛載磁盤
獲取磁盤UUID:# blkid/dev/sdb1
編輯fstab:# vi/etc/fstab
添加配置:
UUID=9f122014-071a-4416-b40f-ece882285b2b /mnt/iscsi ext4 defaults,_netdev 0 0
說明:
UUID=ba7925cc-9bfb-4238-984d-999e18d592e8:磁盤UUID,表明磁盤。
/mnt/iscs:表明掛載路徑,根據實際靈活變更。
ext4:表明文件系統,根據實際靈活變更。
_netdev:表明該掛載的磁盤分區爲網絡磁盤分區。
4、備忘錄
4.一、客戶端查找不到服務端的ISCSI設備
報錯以下:
[root@mwdinit ~]# iscsiadm -m discovery -t sendtargets -p192.168.13.30
iscsiadm: cannot make connection to 192.168.13.30: Connectionrefused
iscsiadm: cannot make connection to 192.168.13.30: Connectionrefused
iscsiadm: cannot make connection to 192.168.13.30: Connectionrefused
iscsiadm: cannot make connection to 192.168.13.30: Connectionrefused
iscsiadm: cannot make connection to 192.168.13.30: Connectionrefused
iscsiadm: cannot make connection to 192.168.13.30: Connectionrefused
iscsiadm: connection login retries (reopen_max) 5 exceeded
iscsiadm: Could not perform SendTargets discovery: encounteredconnection failure
解決:因服務端未指定ip和端口
o- portals ..................................................................................[Portals: 1]
| o- 192.168.13.30:3260
4.二、客戶端查找不到服務端的ISCSI設備2
iscsiadm: Could not perform SendTargets discovery: encounteredconnection login failure
解決:
lsof -i:3260發現tgtd服務也啓動了,這樣與target服務共用了端口,把tgtd服務關掉並設置爲開機不啓動
中止:# systemctl stop tgtd
開機不啓動:# systemctl disable tgtd
4.三、Could not create NetworkPortal in configFS緣由:發現portals..................................................................................[Portals: 1]| o- 0.0.0.0:3260已經存在了一個IP和端口,須要刪除解決:/>cd /iscsi/iqn.2017-05.com.mwdserver:iscsimwd1/tpg1/portals/>/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260注:ip和端口之間有一個空格