2017年3月1日 星期三

CentOS 7 安裝 iSCSI Server

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



沒有留言:

張貼留言

OCS Inventory 匯出資料到 Google 試算表(依電腦設備類型)

OCS Inventory 匯出到 Google 試算表的程式是從網路上其他高手分享出來( 參考資料出處 ),並依個人需求調整。 如要取用請注意,因程式是用 python 寫的,程式段落可能會移位導致無法正常運作。 下列程式調整SELECT電腦 設備類型 為Noteboo...