主機名稱 作業系統 IP位址
iSCSI服務端 CentOS 7 192.168.10.132
iSCSI用戶端 CentOS 7 192.168.23.142
部署服務端
第一步、安裝iscsI服務端軟體包
yum -y install targetd targetcli
安裝完成後啟動iSCSI的服務端程式targetd并設定開機啟動
systemctl restart targetd && systemctl enable targetd && systemctl status targetd
啟動時提示報錯
在 /etc/target/targetd.yaml檔案中找到 password 設定密碼
儲存重新開機服務
第二步 配置iSCSI服務端共享資源
lsblk檢視有無空閑硬碟
如果沒有則通過VMware Workstation為linux添加硬碟
執行 targetcli 進入互動界面
在該界面中可以使用很多Linux指令,比如利用ls檢視目錄參數的結構,使用cd切換到不同的目錄中。/backstores/block是iSCSI服務端配置共享裝置的位置。
我們需要把剛剛 /dev/sdc 磁盤檔案加入到配置共享裝置的“資源池”中,并将該檔案重新命名為 disk1
create disk1 /dev/sdc
第三步 建立iSCSI target名稱及配置共享資源
iSCSI target名稱是由系統自動生成的
系統在生成這個target名稱後,還會在/iscsi參數目錄中建立一個與其字元串同名的新“目錄”用來存放共享資源。我們需要把前面加入到iSCSI共享資源池中的硬碟裝置添加到這個新目錄中,這樣使用者在登入iSCSI服務端後,即可預設使用這硬碟裝置提供的共享存儲資源了。
配置 tpg1 下所有子目錄 acls luns portals
/iscsi> cd iqn.2003-01.org.linux-iscsi.node1.x8664:sn.c2dfe5343e63/
/iscsi/iqn.20…c2dfe5343e63> cd tpg1/luns
/iscsi/iqn.20…e63/tpg1/luns> create /backstores/block/disk1 Created LUN 0.
第4步:設定通路控制清單(ACL)。iSCSI協定是通過用戶端名稱進行驗證的,也就是說,使用者在通路存儲共享資源時不需要輸入密碼,隻要iSCSI用戶端的名稱與服務端中設定的通路控制清單中某一名稱條目一緻即可,是以需要在iSCSI服務端的配置檔案中寫入一串能夠驗證使用者資訊的名稱。acls參數目錄用于存放能夠通路iSCSI服務端共享存儲資源的用戶端名稱。 在剛剛系統生成的iSCSI target後面追加上類似于:client的參數,這樣既能保證用戶端的名稱具有唯一性,又非常便于管理和閱讀:
/iscsi/iqn.20…e5343e63/tpg1> cd acls
/iscsi/iqn.20…e63/tpg1/acls> create iqn.2003-01.org.linux-iscsi.node1.x8664:sn.c2dfe5343e63:client
Created Node ACL for iqn.2003-01.org.linux-iscsi.node1.x8664:sn.c2dfe5343e63:client
Created mapped LUN 0.
第5步:設定iSCSI服務端的監聽IP位址和端口号。位于生産環境中的伺服器上可能有多塊網卡,那麼到底是由哪個網卡或IP位址對外提供共享存儲資源呢?這就需要我們在配置檔案中手動定義iSCSI服務端的資訊,即在portals參數目錄中寫上伺服器的IP位址。接下來将由系統自動開啟伺服器192.168.23.132 的3260端口将向外提供iSCSI共享存儲資源服務:
提示報錯
解決辦法
出現這一報錯的原因是已經存在了一個IP和端口 如下圖所示
删除0.0.0.0
delete 0.0.0.0 3260
建立成功
第6步:配置妥當後檢查配置資訊,重新開機iSCSI服務端程式并配置防火牆政策。在參數檔案配置妥當後,可以浏覽剛剛配置的資訊,確定與下面的資訊基本一緻。在确認資訊無誤後輸入exit指令來退出配置。注意,千萬不要習慣性地按Ctrl + C組合鍵結束程序,這樣不會儲存配置檔案,我們的工作也就白費了。最後重新開機iSCSI服務端程式,再設定firewalld防火牆政策,使其放行3260/tcp端口号的流量。
檢視配置資訊
cd /
ls /
exit 儲存退出
重新開機服務
設定 防火牆放行
[[email protected] ~]# systemctl restart targetd
[[email protected] ~]# firewall-cmd --add-port=3260/tcp
success
[[email protected] ~]# firewall-cmd --add-port=3260/tcp --permanent
配置Linux用戶端
安裝 用戶端
yum install iscsi-initiator-utils -y
前面講到,iSCSI協定是通過用戶端的名稱來進行驗證,而該名稱也是iSCSI用戶端的唯一辨別,而且必須與服務端配置檔案中通路控制清單中的資訊一緻,否則用戶端在嘗試通路存儲共享裝置時,系統會彈出驗證失敗的儲存資訊。
下面我們編輯iSCSI用戶端中的initiator名稱檔案,把服務端的通路控制清單名稱填寫進來,然後重新開機用戶端iscsid服務程式并将其加入到開機啟動項中:
systemctl start iscsi && systemctl enable iscsid
iSCSI用戶端通路并使用共享存儲資源的步驟很簡單,
先發現,再登入,最後挂載并使用
iscsiadm是用于管理、查詢、插入、更新或删除iSCSI資料庫配置檔案的指令行工具,使用者需要先使用這個工具掃描發現遠端iSCSI服務端,然後檢視找到的服務端上有哪些可用的共享存儲資源。其中,-m discovery參數的目的是掃描并發現可用的存儲資源,-t st參數為執行掃描操作的類型,-p 192.168.10.10參數為iSCSI服務端的IP位址:
iscsiadm -m discovery -t st -p 192.168.23.132
在使用iscsiadm指令發現了遠端伺服器上可用的存儲資源後,接下來準備登入iSCSI服務端。其中,-m node參數為将用戶端所在主機作為一台節點伺服器,-T iqn.2003-01. org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80參數為要使用的存儲資源(大家可以直接複制前面指令中掃描發現的結果,以免錄入錯誤),-p 192.168.10.10參數依然為對方iSCSI服務端的IP位址。最後使用–login或-l參數進行登入驗證。
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.node1.x8664:sn.c2dfe5343e63 -p 192.168.23.132 --login
在iSCSI用戶端成功登入之後,會在用戶端主機上多出一塊名為/dev/sdb的裝置檔案。 udev服務在命名硬碟名稱時,與硬碟插槽是沒有關系的。接下來可以像使用本地主機上的硬碟那樣來操作這個裝置檔案了。
可以選擇配置卷分區,或者直接格式化
mkfs.xfs /dev/sdc
[[email protected] ~]# mkdir /data
[[email protected] ~]# mount /dev/sdc /data
[[email protected] ~]# df -TH
從此以後,這個裝置檔案就如同是用戶端本機主機上的硬碟那樣工作。需要提醒大家的是,由于udev服務是按照系統識别硬碟裝置的順序來命名硬碟裝置的,當用戶端主機同時使用多個遠端存儲資源時,如果下一次識别遠端裝置的順序發生了變化,則用戶端挂載目錄中的檔案也将随之混亂。為了防止發生這樣的問題,我們應該在/etc/fstab配置檔案中使用裝置的UUID唯一辨別符進行挂載,這樣,不論遠端裝置資源的識别順序再怎麼變化,系統也能正确找到裝置所對應的目錄。
blkid指令用于檢視裝置的名稱、檔案系統及UUID。可以使用管道符進行過濾,隻顯示與/dev/sdb裝置相關的資訊
于/dev/sdb是一塊網絡儲存設備,而iSCSI協定是基于TCP/IP網絡傳輸資料的,是以必須在/etc/fstab配置檔案中添加上_netdev參數,表示當系統聯網後再進行挂載操作,以免系統開機時間過長或開機失敗:
UUID由 blkid 可以檢視
echo “UUID=102525a0-5fd5-4f4e-9cea-abce9809e7a9 /data xfs defaults,_netdev 0 0” >> /etc/fstab
如果我們不再需要使用iSCSI共享裝置資源了,可以用iscsiadm指令的-u參數将其裝置解除安裝:
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.node1.x8664:sn.c2dfe5343e63 -u
配置Windows用戶端
使用Windows系統的用戶端也可以正常通路iSCSI伺服器上的共享存儲資源,而且操作原理及步驟與Linux系統的用戶端基本相同。在進行下面的實驗之前,請先關閉Linux系統用戶端,以免這兩台用戶端主機同時使用iSCSI共享存儲資源而産生潛在問題
第1步:運作iSCSI發起程式。在Windows 7作業系統中已經預設安裝了iSCSI用戶端程式,我們隻需在控制台中找到“系統和安全”标簽,然後單擊“管理工具” ,進入到“管理工具”頁面後即可看到“iSCSI發起程式”圖示。輕按兩下該圖示。在第一次運作iSCSI發起程式時,系統會提示“Microsoft iSCSI服務端未運作”,單擊“是”按鈕即可自動啟動并運作iSCSI發起程式,
回到“目标”頁籤頁面,可以看到共享存儲資源的名稱已經出現,
第3步:準備連接配接iSCSI服務端的共享存儲資源。由于在iSCSI服務端程式上設定了ACL,使得隻有用戶端名稱與ACL政策中的名稱保持一緻時才能使用遠端存儲資源,是以需要在“配置”頁籤中單擊“更改”按鈕,把iSCSI發起程式的名稱修改為服務端
修改發起程式名稱
注意 “:” 冒号後要加client
測試已成功連接配接
已成功挂載
至此,iscsi的服務端,linux用戶端,win用戶端已全部配置挂載完畢