iscsi共享(磁碟共享)
阿新 • • 發佈:2019-07-11
前言:
最近整理一些以前的學習筆記。
過去都是儲存在本地,此次傳到網路留待備用。\
iSCSI共享
- internet scsi 磁碟共享
- 軟體包:
- 服務端: targetcli(centos7) ; scsi-target-utils(centos6)
- 客戶端: iscsi-initiator-utils
- 系統服務:
- 服務端: target
- 客戶端: iscsid
- 預設埠: 3260
·做iscsi服務需要三個概念: ①.backstore(後端儲存):後端真正的儲存裝置(實物); ②.target(目標):共享磁碟名(虛擬); target共享名的要求:iqn規範 iqn規範 = iqn.yyyy-mm.主機域名反寫:任意字串 例:iqn.2018-02.com.example:data ③.lun(邏輯單元):Logic Unit Number ,繫結、關聯儲存裝置。
搭建iscsi共享
一、iscsi服務端:
0.準備後端儲存磁碟:
]# lsblk /dev/vdb #後端儲存必須是分割槽、LV或磁碟映象
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 252:16 0 20G 0 disk
1.安裝服務端軟體targetcli :
]# yum -y install targetcli
2.啟動和設定自啟服務:
]# systemctl restart target ]# systemctl enable target
3.配置iscsi
3.0 進入targetcli :
]# targetcli /> 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] />
3.1 建立backstore後端儲存:
/> backstores/block create 後端儲存名 /後端儲存磁碟路徑
/> backstores/block create backend /dev/vdb
Created block storage object backend using /dev/vdb.
3.2 建立target共享名:iqn(在客戶端顯示的名稱)
/> iscsi/ create 共享名(iqn.yyyy-mm.主機域名反寫:伺服器描述)
/> iscsi/ create iqn.2000-10.com.example:server
Created target iqn.2000-10.com.example:server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
3.3 建立lun,關聯共享名和後端儲存裝置:
/> iscsi/共享名/tpg1/luns create /backstores/block/後端儲存名
/> iscsi/iqn.2000-10.com.example:server/tpg1/luns create /backstores/block/backend
Created LUN 0.
3.4 建立acl訪問口令(知道口令的客戶端可以訪問共享):
/> iscsi/共享名/tpg1/acls create 客戶端iqn名稱(iqn.yyyy-mm.客戶端主機域名反寫:任意字串)
/> iscsi/iqn.2000-10.com.example:server/tpg1/acls create iqn.2000-10.com.example:client
Created Node ACL for iqn.2000-10.com.example:client
Created mapped LUN 0.
3.5 建立門戶(portal)的監聽ip與埠:
# 預設有一個0.0.0.0:3260的portal
/> iscsi/共享名/tpg1/portals create 伺服器ip 埠號(預設3260,可省略)
/> iscsi/iqn.2000-10.com.example:server/tpg1/portals create 192.168.4.11 13260
Created network portal 192.168.4.11:13260.
3.6 配置驗證使用者名稱與密碼(可省略):
/> ls
o- / ................................................................................... [...]
o- backstores ........................................................................ [...]
| o- block ............................................................ [Storage Objects: 1]
| | o- backend ................................... [/dev/vdb (20.0GiB) write-thru activated]
| | o- alua ............................................................. [ALUA Groups: 1]
| | o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
| o- fileio ........................................................... [Storage Objects: 0]
| o- pscsi ............................................................ [Storage Objects: 0]
| o- ramdisk .......................................................... [Storage Objects: 0]
o- iscsi ...................................................................... [Targets: 1]
| o- iqn.2000-10.com.example:server .............................................. [TPGs: 1]
| o- tpg1 ......................................................... [no-gen-acls, no-auth]
| o- acls .................................................................... [ACLs: 1]
| | o- iqn.2000-10.com.example:client ................................. [Mapped LUNs: 1]
| | o- mapped_lun0 ......................................... [lun0 block/backend (rw)]
| o- luns .................................................................... [LUNs: 1]
| | o- lun0 .............................. [block/backend (/dev/vdb) (default_tg_pt_gp)]
| o- portals .............................................................. [Portals: 2]
| o- 0.0.0.0:3260 ............................................................... [OK]
| o- 192.168.4.11:13260 ......................................................... [OK]
o- loopback ................................................................... [Targets: 0]
/>
3.7 儲存並退出:
/> saveconfig
Configuration saved to /etc/target/saveconfig.json
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json
4.配置防火牆
]# firewall-cmd --permanent --add-service=iscsi-target #開啟預設3260埠
]# firewall-cmd --permanent --add-port=13260/tcp #開啟指定埠
]# firewall-cmd --reload #重讀防火牆配置
二、iscsi客戶端:
1.安裝客戶端軟體iscsi-initiator-utils:
]# yum -y install iscsi-initiator-utils
2.啟動和設定自啟服務:
]# systemctl restart iscsid
]# systemctl enable iscsid
3.配置ISCSI initiator名稱:
]# vim /etc/iscsi/initiatorname.iscsi #iscsi訪問服務埠令配置檔案
InitiatorName=客戶端iqn名稱 #與伺服器acl的客戶端iqn名稱相同
InitiatorName=iqn.2000-10.com.exampl:client
]# systemctl restart iscsid #修改配置檔案後需重啟重新整理服務
4.發現服務端ISCSI共享裝置:
]# iscsiadm --mode discovery --type sendtargets --portal 服務端ip:埠號(埠可省略,預設3260)
]# iscsiadm --mode discovery --type sendtargets --portal 192.168.4.11
192.168.4.11:3260,1 iqn.2000-10.com.example:server
192.168.4.11:13260,1 iqn.2000-10.com.example:server
或
]# iscsiadm -m discovery -t st -p 服務端ip:埠
]# iscsiadm -m discovery -t st -p 192.168.4.11:13260
192.168.4.11:13260,1 iqn.2000-10.com.example:server
192.168.4.11:13260,1 iqn.2000-10.com.example:server
5.手動載入登入(服務ip上的共享):
]# iscsiadm --mode node --targetname 共享名 --portal 服務端ip:埠號 --login
]# iscsiadm --mode node --targetname iqn.2000-10.com.example:server --portal 192.168.4.11:3260 --login
或
]# iscsiadm -m node -L all
6.自動載入
]# vim /var/lib/iscsi/nodes/iqn名\:服務端名/*/default
node.conn[0].startup = automatic #將manual手動改為automatic自動
]# vim /var/lib/iscsi/nodes/iqn.2000-10.com.example\:server/192.168.4.11\,3260\,1/default
node.conn[0].startup = automatic #改為自動
7.設定multipath多路徑
]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk #這兩個是同一網路磁碟
sdb 8:16 0 20G 0 disk
]# /lib/udev/scsi_id --whitelisted --device=/dev/sda #獲取裝置的wwid
360014050e9fae7a04594d99be16e0634
]# /lib/udev/scsi_id --whitelisted --device=/dev/sdb
360014050e9fae7a04594d99be16e0634
]# yum -y install device-mapper-multipath #安裝多路徑軟體
]# mpathconf --user_friendly_names n #不使用裝置自動配置的友好名稱
]# vim /etc/multipath.conf #設定多路徑裝置別名
#末尾新增
multipaths {
multipath {
wwid "360014050e9fae7a04594d99be16e0634" #裝置wwid
alias "multipath_iscsi" #自定義裝置別名
}
}
]# systemctl start multipathd #啟動多路徑服務
]# lsblk #確認裝置命名
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
└─multipath_iscsi 253:2 0 20G 0 mpath #自定義裝置名
sdb 8:16 0 20G 0 disk
└─multipath_iscsi 253:2 0 20G 0 mpath
]# ls -1 /dev/mapper/ #檢視裝置
control
multipath_iscsi
8.本地使用
]# parted /dev/mapper/multipath_iscsi mklabel gpt #新建分割槽
]# parted /dev/mapper/multipath_iscsi mkpart primary 1M 100%
]# partprobe /dev/mapper/multipath_iscsi #重新整理分割槽表
]# mkfs.ext4 /dev/mapper/multipath_iscsi1 #格式化
]# mkdir /iscsi #建立掛載點
]# blkid /dev/mapper/multipath_iscsi1 #檢視uuid
/dev/mapper/multipath_iscsi1: UUID="3eed683f-505a-4be6-b0a9-9621729a8bef" TYPE="ext4" PARTLABEL="primary" PARTUUID="aa1d7978-4012-4dc0-b2cf-6caf714549ce"
]# vim /etc/fstab #配置自動掛載
UUID="3eed683f-505a-4be6-b0a9-9621729a8bef" /iscsi ext4 _netdev 0 0
]# mount -a #掛載
]# sync; reboot -f #存檔,再強制重啟,避免