target 主要提供 iSCSI 裝置,客戶端要使用這個裝置,就需要設置 iSCSI initiator。
我設置 iSCSI target 的方式主要是參考:How to Share Storage via iSCSI Target in RHEL 7/CentOS 7 還有 RHEL8 的管理存儲設備手冊裡的第七章。
客戶端的設置,則是參考:How to Configure iSCSI initiator in RHEL 7/CentOS 7
iSCSI target
首先安裝 targetcli
yum install targetcli
systemctl start target
systemctl enable target
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
然後執行 targetcli ,targetcli 指令跟 bash 操作很接近,有 ls ,每個資源則用 cd 進入,操作可以用 create, delete 等,很直覺。
第一步是進入 iscsi 去建立 target
iscsi/
create
若需要使用指定的名稱,則是用
create iqn.2006-04.com.example:444
第二步是建立 backstore,這邊只建立 block storage,是告知 backstore 名稱是 block1,使用的實體裝置是 /dev/sdb
cd /backstores
block/ create name=block1 dev=/dev/sdb
第三步是建立 portal,這邊會先把預設的刪除,再重新建立。這主要是設定要 listen 的 位址跟 port。把預設的刪除掉的原因是,0.0.0.0 範圍太大。
cd /iscsi/iqn.2006-04.example:444/tpg1
delete ip_address=0.0.0.0 ip_port=3260
create 192.168.11.147
第四步是建立 lun
/iscsi/iqn.2006-04.example:444/tpg1/luns/ create /backstores/block/block1
第五步是建立 ACL
/iscsi/iqn.2006-04.example:444/tpg1/acls/ create iqn.2006-04.com.example.foo:888
最後,要重新啟動 target.service
systemctl restart target
iSCSI 客戶端
首先是安裝套件
yum install iscsi-initiator-utils -y
再來是修改設定,主要的設定檔是在 /etc/iscsi/initiatorname.iscsi
內容要填入前面所建立的 acl
InitiatorName=iqn.2006-04.com.example.foo:888
填寫完成後,重新啟動 iscsi.service
systemctl enable iscsi.service
systemctl start iscsi.service
然後去做 discovery,這個步驟會去試探指定的 IP 是否有 iscsi target,然後取得資訊存起來。
iscsiadm -m discovery -t st -p 192.168.11.147 –discover
192.168.11.147:3260,1 iqn.2006-04.com.example:444
這步驟若沒問題,可以在 /var/lib/iscsi/nodes 下找到檔案,這檔案裏面就是連線的資訊。
接下來就是登入
iscsiadm -m node -T iqn.2006-04.com.example:444 -l
這行若成功,就可以用 dmesg 查到 “Attached” 的字樣,表示已經掛載上來了。
這邊有個關鍵,就是有更動 /etc/iscsi/initiatorname.iscsi 內容的話,一定要重新啟動 iscsi.service ,否則會使用到之前的設定,導致失敗。
沒有留言:
張貼留言