Linux iSCSI 磁盤共享管理


Linux iSCSI 磁盤共享管理

  iSCSI 服務是通過服務端(target)與客戶端(initiator)的形式來提供服務。iSCSI 服務端用於存放存儲源的服務器,將磁盤空間共享給客戶使用,客戶端可以再不充氣的情況下擴容磁盤空間。iSCSI 服務端通過已終端的形式配置存儲共享過程,每一個目錄的含義都不同,下面會詳細講到。iSCSI 協議是通過客戶端名稱進行驗證的,也就是說,用戶在訪問存儲共享資源時不需要輸入密碼,只要 iSCSI 客戶端的名稱與服務端中設置的訪問控制列表中某一名稱條目一致即可,因此需要在 iSCSI 服務端的配置文件中寫入一串能夠驗證用戶信息的名稱。


Linux iSCSI 結構介紹

目錄介紹

  • # iSCSI服務端存放本地共享設備的位置。
  • /backstores/block 
  • # SCSI服務端管理target。
  • /iscsi
  • # SCSI服務端共享資源設備加入到target。
  • /iscsi/target名稱目錄/tpg1/luns
  • SCSI服務端目錄用於存放能夠訪問共享存儲資源的客戶端名稱。
  • /iscsi/target名稱目錄/tpg1/acls
  • SCSI服務端目錄用於指定客戶端可被訪問的監聽IP地址及端口
  • /iscsi/target名稱目錄/tpg1/portals

Linux iSCSI 服務端配置

  • 需求:共享服務端的 /dev/sdb4 設備
  • 版本:targetd-0.8.6
  • 版本:targetcli-2.1

1、服務端安裝iSCSI

yum -y install targetd targetcli

2、啟動服務並設置開機自啟動

systemctl start targetd
systemctl enable targetd

3、進入iSCSI服務終端、ls查看目錄、服務端終端命令: targetcli

[root@linuxprobe ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb34
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> ls
o- / ................................................................... [...]
o- backstores ........................................................ [...]
| o- block ............................................ [Storage Objects: 0]
| o- fileio ........................................... [Storage Objects: 0]
| o- pscsi ............................................ [Storage Objects: 0]
| o- ramdisk .......................................... [Storage Objects: 0]
o- iscsi ...................................................... [Targets: 0]
o- loopback ................................................... [Targets: 0
View Code

4、進入 /backstores/block 目錄下、指定共享磁盤設備,命名磁盤設備

# 進入指定目錄下
/> cd /backstores/block
# 創建共享設備,命名為 “disk0” /backstores/block> create disk0 /dev/sdb4
Created block storage object disk0 using /dev/sdb4.
查看輸出

5、進入 /iscsi 目錄下創建iSCSI target 名稱

# 進入指定目錄
cd /iscsi
#
創建新的 target 名稱 /iscsi> create
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.a52e09c8e24f.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
輸出

6、進入 /iscsi/target名稱目錄/tpg1/luns 目錄下創建共享資源加入到target

# 進入指定目錄
/iscsi> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d/tpg1/luns 
# 創建共享設備到 target
/iscsi/iqn.20...f2d/tpg1/luns> create /backstores/block/disk0 
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d:client
輸出

7、進入 /iscsi/target名稱目錄/tpg1/acls 設置訪問控制,創建存入客戶端可訪問名稱

# 進入指定目錄
/iscsi/iqn.20...f2d/tpg1/luns> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d/tpg1/acls/
# 創建存入客戶端可訪問名稱
/iscsi/iqn.20...f2d/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d:xsk
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d:xsk
Created mapped LUN 0.
輸出

8、進入 /iscsi/target名稱目錄/tpg1/portals 設置服務端共享設備的網卡IP地址及端口

# 進入指定目錄
/iscsi/iqn.20...f2d/tpg1/acls> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d/tpg1/portals/
# 添加IP及端口、端口可以不填默認3260
/iscsi/iqn.20.../tpg1/portals> create 192.168.1.17 3260
報錯:Could not create NetworkPortal in configFS

# 報錯可以刪除 0.0.0.0
delete 0.0.0.0 3260

注:繼續添加IP即可
報錯

9、保存退出並重啟服務

# 保存設置
/> saveconfig
#
退出 /> exit # 重啟服務 systemctl restart targetd
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
開放防火牆

其他操作

# 該 tgp 關閉賬號驗證
/iscsi/../tpg1> set attribute authentication=0
關閉賬號驗證
# 該 tgp 使用自定義ad實現節點訪問限制
/iscsi/.../tpg1> set attribute generate_node_acls=0
使用自定義ad實現節點訪問限制

Linux iSCSI 客戶端配置

  • 需求:使用服務端共享設備並掛載使用
  • 版本:iscsi-initiator-utils-6.2.0.874
  • 版本:iscsi-initiator-utils-iscsiuio-6.2.0.874

1、安裝iscsi客戶端

yum install iscsi-initiator-utils

2、將服務端訪問控制表中的共享名稱加入到客戶端配置文件

vim /etc/iscsi/initiatorname.iscsi

iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d:xsk

3、啟動iscsi客戶端並設置開機自啟

systemctl restart iscsid
systemctl enable iscsid

4、通過 iscsiadm 工具掃描發現 服務端共享的存儲設備

# 其中,-m discovery 參數的目的是掃描並發現可用的存儲資源,-t st 參數為執行掃描操作的類型,-p 192.168.10.17 數為 iSCSI 服務端的IP 地址
iscsiadm -m discovery -t st -p 192.168.1.17
192.168.1.17:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d
輸出

5、登錄 iSCSI 指定共享服務端

# 其中,-m node 參數為將客戶端所在主機作為一台節點服務器,-T iqn.20.... 參為要使用的存儲資源,-p 192.168.10.17 參數依然為對方iSCSI 服務端的 IP 地址。最后使用--login 或-l 參數進行登錄驗證。
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d -p 192.168.1.17 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d, portal: 192.168.1.17,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d, portal: 192.168.1.17,3260] successful.
輸出

6、查看共享到客戶端的磁盤設備

# 已共享到客戶端本地
命令:file /dev/sdb
輸出:/dev/sdb: block special

7、格式化共享設備

# 格式化格式為xfs
mkfs.xfs /dev/sdb

8、臨時掛載設備

# 創建掛載目錄
mkdir /iscsi
# 臨時掛載設備
mount /dev/sdb /iscsi

9、永久掛載共享設備

vim /etc/fstab

UUID=eb9cbf2f-fce8-413a-b770-8b0f243e8ad6 /iscsi xfs defaults,_netdev 0 0
命令:blkid | grep /dev/sdb
輸出:/dev/sdb: UUID="eb9cbf2f-fce8-413a-b770-8b0f243e8ad6" TYPE="xfs"
查看設備UUID

注:_netdev 參數含義為在有網絡傳輸時使用。

10、刪除iSCSI共享資源

# 其中,-u 參數將其設備卸載
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d -u

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM