1. 程式人生 > >iscsi共享(磁碟共享)

iscsi共享(磁碟共享)

前言:

最近整理一些以前的學習筆記。
過去都是儲存在本地,此次傳到網路留待備用。\


 

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                                              #存檔,再強制重啟,避免