SERVER 端:
yum 安裝 iSCSI 套件
yum install -y targetcli
防火牆如果沒有關掉,必須打開 iSCSI 所使用的 Port
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
啟動 iSCSI 服務
systemctl start target.service
systemctl enable target.service
建一個資料夾存放測試的虛擬磁碟影像檔
mkdir /iscsi_disks
產生二個虛擬磁碟影像檔
dd if=/dev/zero of=/iscsi_disks/linux-disk.img bs=1M count=1024
dd if=/dev/zero of=/iscsi_disks/windows-disk.img bs=1M count=1024
登入 iSCSI 管理介面
targetcli
iSCSI 的設定架構
建立 iSCSI 檔案連結要分享的虛擬磁碟影像檔
iSCSI 磁碟有四種類型可以選擇:
cd backstores/
fileio/ create linux-disk /iscsi_disks/linux-disk.img
block/ create windows-disk /iscsi_disks/windows-disk.img
類型:
block #用 block 方式分享
fileio #將檔案建於 file system 之上, 再通過 iSCSI 當做 block device 分享出去
pscsi #連結的設備原本就是 iSCSI 設備時,選 pscsi
remdisk #不需長久儲存時,可用 ramdisk 分享
建立 iSCSI target 名稱
cd /iscsi
iscsi> create iqn.2017-03.company.tw:linux.disk #這邊的網域名稱要反轉輸入,也可以直接輸入 create 讓它自動產生
iscsi> create iqn.2017-03.company.tw:windows.disk
建立 ACL(access control list) 存取清單,iSCSI 預設是不讓任何人存取,所以必須設定存取名單
cd iscsi/iqn.2017-03.company.tw:linux.disk/tpg1/acls
create iqn.2017-03.company.tw:linux-pc #client 連線時所要設定的[啟動器名稱 || InitiatorName]
cd /iscsi/iqn.2017-03.company.tw:windows.disk/tpg1/acls
create iqn.2017-03.company.tw:windows-pc
連結 LUN
cd /iscsi/iqn.2017-03.company.tw:linux.disk/tpg1/luns
create /backstores/fileio/linux-disk
cd /iscsi/iqn.2017-03.company.tw:windows.disk/tpg1/luns
create /backstores/block/windows-disk
建立 portal (iSCSI 預設會建立一個 0.0.0.0:3260 如無特殊要求使用預設值即可)
cd /iscsi/iqn.2017-03.company.tw:linux.disk/tpg1/portals
create 192.168.60.160 #可以直接輸入 create 讓它自動產生
cd /iscsi/iqn.2017-03.company.tw:windows.disk/tpg1/portals
create 192.168.60.160
若出現 <Could not create NetworkPortal in configFS>,表示系統已先建立 0.0.0.0:3260 的 portal
先刪除舊的 portal 建立新的
cd /iscsi/iqn.2017-03.company.tw:linux.disk/tpg1/portals/
delete 0.0.0.0 3260
存檔、離開
cd /
saveconfig
exit
完成的設定:
其他設定:
關閉 tpg1 密碼驗證 #連線時,server messages log 出現 <Target is enforcing iSCSI Authentication, login failed> 登入失敗,可關閉 authentication 驗證來測試
cd /iscsi/iqn.2017-03.company.tw:windows.disk/tpg1
set attribute authentication=0
關閉 tpg1 的 ACL
cd /iscsi/iqn.2017-03.company.tw:windows.disk/tpg1
set attribute generate_node_acls=0
如要設定 iSCSI 連線密碼
targetcli
cd /iscsi/iqn.2017-03.company.tw:windows.disk/tpg1/acls/iqn.2017-03.company.tw:windows-pc/
#Linux Client 設定密碼
set auth userid=usr
set auth password=pwd
get auth
Windows 用戶端:
(Windows 7 正常連線,Windows 10、2012 要一直重試,需要一點運氣)
控制台 > 系統管理工具 > iSCSI 啟動器 > 設定 <啟動器名稱>
輸入:
iqn.2017-03.company.tw:windows-pc #名稱要與 Server iSCSI 建立 ACL 設定的名稱相同
(為了測試方便,Linux iSCSI Server 裡把 windows.disk 的 password 驗證關閉了)
電腦 > 管理 > 磁碟管理,會多出一個<未配置>的磁區
Linux 用戶端:
安裝 iSCSI Client 軟體
yum install -y iscsi-initiator-utils
編輯設定檔
vi /etc/iscsi/initiatorname.iscsi
內容:
InitiatorName=iqn.2017-03.company.tw:linux-pc #名稱要與 Server iSCSI 建立 ACL 設定的名稱相同
重啟用戶端
systemctl restart iscsid.service
搜找可用的 iscsi server 分享的設備
iscsiadm -m discovery -t st -p 192.168.60.160
登入or登出 iscsi 設備
iscsiadm -m node -T iqn.2017-03.company.tw:linux.disk -p 192.168.60.160 --[login | logout]
觀察線後是否有多出一個硬碟
# fdisk -l
# file /dev/sdb
格式化及掛載 iscsi 硬碟
mkdir /iscsidisk
mkfs.xfs /dev/sdb
mount /dev/sdb /iscsidisk
開機掛載 iSCSI
先查詢 id 碼:
blkid | grep /dev/sdb
/dev/sdb: UUID="eb9cbf2f-fce8-413a-b770-8b0f243e8ad6" TYPE="xfs"
vi /etc/fstab
/dev/sdb: UUID=eb9cbf2f-fce8-413a-b770-8b0f243e8ad6 /iscsidisk xfs default,_netdev 0 0
刪掉不要的iscsi target
# iscsiadm -m node -o delete -T iqn.2017-03.company.tw:linux.disk
沒有留言:
張貼留言