目錄
- 一、簡介
-
- 1、iSCSI技術
- 2、硬碟接口類型
- 二、服務端配置
-
- 1、主機與IP
- 2、建立RAID5磁盤陣列
-
- ❶虛拟機添加四塊SCSI格式硬碟
- ❷建立RAID5磁盤陣列
- 3、配置iSCSI
-
- ⑴ 安裝iSCSI
- ⑵ 配置iSCSI
-
- ❶基本指令
- ❷配置共享裝置
- ❸建立iSCSI target名稱
- ❹配置硬碟共享資源
- ❺ACL設定通路控制清單
- ❻設定iSCSI服務端的監聽IP位址和端口号
- ❼配置防火牆
- 三、用戶端配置
-
- 1、Linux用戶端
-
- ❶安裝iSCSI用戶端
- ❷發現iSCSI服務端
- ❸登入iSCSI服務端
- ❹挂載使用
- ❺解除安裝裝置
- 2、Win7用戶端
-
- ❶啟用iSCSI服務
- ❷配置iSCSI服務端IP位址
- ❸修改并連接配接iSCSI發起程式名稱
- ❹對磁盤進行初始化操作
- ❺實作遠端存儲讀取
一、簡介
1、iSCSI技術
- 描述:一種将SCSI接口與以太網技術相結合的新型存儲技術
- 用途:在網絡中傳輸SCSI接口的指令和資料,使使用者可以通過網際網路通路遠端主機的共享存儲資源
- 載體:iSCSI-HBA卡,連接配接的則是SCSI接口或FC總線(光纖通道)和記憶體,基于iSCSI協定在主機之間交換存儲資料。
- 傳輸過程:Linux伺服器會基于iSCSI協定把硬碟裝置指令與資料打包成标準的TCP/IP資料包→以太網傳輸到目标儲存設備→目标儲存設備接收資料包→基于iSCSI協定把TCP/IP資料包解壓成硬碟裝置指令與資料。
- 優點:克服了傳統SCSI接口裝置的實體局限性,實作了跨區域的存儲資源共享,還可以在不停機的狀态下擴充存儲容量。
2、硬碟接口類型
接口 | 描述 |
---|---|
IDE | 一種成熟穩定、價格便宜的并行傳輸接口 |
SATA | 一種傳輸速度更快、資料校驗更完整的串行傳輸接口 |
SCSI | 一種用于計算機和硬碟、光驅等裝置之間系統級接口的通用标準,具有系統資源占用率低、轉速高、傳輸速度快等優點 |
二、服務端配置
1、主機與IP
主機 | 系統 | IP |
---|---|---|
iSCSI服務端 | centos8.3 | 192.168.10.30 |
iSCSI用戶端 | centos8.3 | 192.168.10.10 |
iSCSI用戶端 | win7 | 192.168.10.20 |
2、建立RAID5磁盤陣列
❶虛拟機添加四塊SCSI格式硬碟
[[email protected] yum.repos.d]# fdisk -l
Disk /dev/sda:20 GiB,21474836480 位元組,41943040 個扇區
Disk /dev/sdb:10 GiB,10737418240 位元組,20971520 個扇區
Disk /dev/sdc:10 GiB,10737418240 位元組,20971520 個扇區
Disk /dev/sdd:10 GiB,10737418240 位元組,20971520 個扇區
Disk /dev/sde:10 GiB,10737418240 位元組,20971520 個扇區
略去部分文字
❷建立RAID5磁盤陣列
- 建立RAID5陣列:顯示建立過程,陣列名稱,RAID5格式,3塊用于存儲,1塊用于備份
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
- 檢視陣列詳細資訊
mdadm -D /dev/md0
-
值是裝置的唯一辨別符,可以用于精确地區分本地或遠端裝置UUID
[[email protected] ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
[[email protected] ~]# mdadm -D /dev/md0
UUID : 29a97ee2:8a936099:52a4dfe3:296eca38
3、配置iSCSI
⑴ 安裝iSCSI
- 安裝
dnf -y install targetcli
- 啟動
systemctl start target
- 開機啟動
systemctl enable target
[[email protected] ~]# dnf -y install targetcli
已安裝:
targetcli-2.1.fb49-1.el8.noarch python3-configshell-1:1.1.fb25-1.el8.noarch
python3-kmod-0.9-20.el8.x86_64 python3-pyparsing-2.1.10-7.el8.noarch
python3-rtslib-2.1.fb69-3.el8.noarch python3-urwid-1.3.1-4.el8.x86_64
target-restore-2.1.fb69-3.el8.noarch
完畢!
[[email protected] ~]# systemctl start target
[[email protected] ~]# systemctl enable target
Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.
⑵ 配置iSCSI
❶基本指令
- 管理iSCSI服務端存儲資源的配置指令
targetcli
-
檢視目錄參數的結構ls
-
切換到不同的目錄中cd
-
退出exit
- iSCSI共享資源的配置被抽象成“
”,隻需将各類目錄形式
中即可。配置資訊填入相應目錄
描述 | 位置 |
---|---|
配置共享裝置位置 | |
建立iscsi_target名稱 | |
存放通路控制清單 | |
存放硬體裝置目錄 | |
存放端口号及監聽位址 | |
[[email protected] yum.repos.d]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb49
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]
❷配置共享裝置
- iSCSI服務端配置共享裝置的位置
/backstores/block
- 将RAID5磁盤陣列md0檔案加入配置共享裝置的位置
cd /backstores/block create disk0 /dev/md0
/> cd /backstores/block
/backstores/block> create disk0 /dev/md0
Created block storage object disk0 using /dev/md0.
/backstores/block> cd /
/> ls
o- / ............................................................ [...]
o- backstores ................................................. [...]
| o- block ..................................... [Storage Objects: 1]
| | o- disk0 ............ [/dev/md0 (20.0GiB) write-thru deactivated]
| | 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: 0]
o- loopback ............................................ [Targets: 0]
❸建立iSCSI target名稱
- 建立iSCSI target名稱(系統自動生成)
create
- iSCSI target名稱是由系統自動生成的一串用于描述共享資源的唯一字元串。
- iSCSI target名稱同名目錄(系統自動生成)用于存放共享資源
iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49/tpg1
- 存放通路控制清單
iSCSI target名稱/tpg1/acls
- 存放硬體裝置目錄
iSCSI target名稱/tpg1/luns
- 存放端口号及監聽位址
iSCSI target名稱/tpg1/portals
-
cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49
/> cd iscsi
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49
/iscsi/iqn.20....ccbac1f4ba49> ls
o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49 [TPGs: 1]
o- tpg1 ...................................... [no-gen-acls, no-auth]
o- acls ................................................. [ACLs: 0]
o- luns ................................................. [LUNs: 0]
o- portals ........................................... [Portals: 1]
o- 0.0.0.0:3260 ............................................ [OK]
❹配置硬碟共享資源
- 切換到使用者預設的共享資源硬體裝置目錄
cd tpg1/luns
- iSCSI共享的硬碟裝置添加到這個目錄
create /backstores/block/disk0
/iscsi/iqn.20....ccbac1f4ba49> cd tpg1/luns
/iscsi/iqn.20...a49/tpg1/luns> create /backstores/block/disk0
Created LUN 0.
❺ACL設定通路控制清單
- iSCSI協定通過用戶端名稱進行驗證:使用者在通路共享資源時,隻要使用者的iSCSI用戶端名稱存在于服務端的通路控制清單中即可。
- 傳回上層目錄
cd ..
- 用于存放能夠通路iSCSI服務端共享資源的用戶端名稱
cd acls
- 允許通路共享檔案的iSCSI用戶端名稱
create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49:client
/iscsi/iqn.20...a49/tpg1/luns> cd ..
/iscsi/iqn.20...c1f4ba49/tpg1> cd acls
/iscsi/iqn.20...a49/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49:client
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49:client
Created mapped LUN 0.
❻設定iSCSI服務端的監聽IP位址和端口号
- 存放端口号及監聽位址目錄
cd portals
- 删除預設
delete 0.0.0.0 3260
- 建立新的伺服器共享端口
create 192.168.10.10
- 退出指令
exit
- 重新開機服務
systemctl restart target
/iscsi/iqn.20...a49/tpg1/acls> cd ..
/iscsi/iqn.20...c1f4ba49/tpg1> cd portals
/iscsi/iqn.20.../tpg1/portals> create 192.168.10.30
Using default IP port 3260
Could not create NetworkPortal in configFS
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20.../tpg1/portals> create 192.168.10.30
Using default IP port 3260
Created network portal 192.168.10.30:3260.
完整過程:
[[email protected] yum.repos.d]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb49
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]
/> cd /backstores/block
/backstores/block> create disk0 /dev/md0
Created block storage object disk0 using /dev/md0.
/backstores/block> cd /
/> ls
o- / ............................................................ [...]
o- backstores ................................................. [...]
| o- block ..................................... [Storage Objects: 1]
| | o- disk0 ............ [/dev/md0 (20.0GiB) write-thru deactivated]
| | 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: 0]
o- loopback ............................................ [Targets: 0]
/> cd iscsi
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49
/iscsi/iqn.20....ccbac1f4ba49> ls
o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49 [TPGs: 1]
o- tpg1 ...................................... [no-gen-acls, no-auth]
o- acls ................................................. [ACLs: 0]
o- luns ................................................. [LUNs: 0]
o- portals ........................................... [Portals: 1]
o- 0.0.0.0:3260 ............................................ [OK]
/iscsi/iqn.20....ccbac1f4ba49> cd tpg1/luns
/iscsi/iqn.20...a49/tpg1/luns> create /backstores/block/disk0
Created LUN 0.
/iscsi/iqn.20...a49/tpg1/luns> cd ..
/iscsi/iqn.20...c1f4ba49/tpg1> cd acls
/iscsi/iqn.20...a49/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49:client
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49:client
Created mapped LUN 0.
/iscsi/iqn.20...a49/tpg1/acls> cd ..
/iscsi/iqn.20...c1f4ba49/tpg1> cd portals
/iscsi/iqn.20.../tpg1/portals> create 192.168.10.30
Using default IP port 3260
Could not create NetworkPortal in configFS
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20.../tpg1/portals> create 192.168.10.30
Using default IP port 3260
Created network portal 192.168.10.30:3260.
/iscsi/iqn.20.../tpg1/portals> ls
o- portals ........................................................................................... [Portals: 1]
o- 192.168.10.30:3260 ...................................................................................... [OK]
/iscsi/iqn.20.../tpg1/portals> ls /
o- / ........................................................................................................ [...]
o- backstores ............................................................................................. [...]
| o- block ................................................................................. [Storage Objects: 1]
| | o- disk0 .......................................................... [/dev/md0 (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.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49 ...................................... [TPGs: 1]
| o- tpg1 .............................................................................. [no-gen-acls, no-auth]
| o- acls ......................................................................................... [ACLs: 1]
| | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49:client .................. [Mapped LUNs: 1]
| | o- mapped_lun0 ................................................................ [lun0 block/disk0 (rw)]
| o- luns ......................................................................................... [LUNs: 1]
| | o- lun0 ..................................................... [block/disk0 (/dev/md0) (default_tg_pt_gp)]
| o- portals ................................................................................... [Portals: 1]
| o- 192.168.10.30:3260 .............................................................................. [OK]
o- loopback ........................................................................................ [Targets: 0]
/iscsi/iqn.20.../tpg1/portals> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json
[[email protected] yum.repos.d]# systemctl restart target
❼配置防火牆
- 防火牆放行3260端口
firewall-cmd --permanent --add-port=3260/tcp
-
firewall-cmd --reload
[[email protected] yum.repos.d]# firewall-cmd --permanent --add-port=3260/tcp
success
[[email protected] yum.repos.d]# firewall-cmd --reload
success
三、用戶端配置
1、Linux用戶端
- iscsi管理工具指令
iscsiadm [參數]
參數 | 說明 |
---|---|
-m discovery|node | 指定模式: 掃描并發現 将用戶端所在主機作為一台節點伺服器 |
-p | 指定目标伺服器IP和端口 |
-o | 開啟認證模式 |
-u | 解除安裝裝置 |
-T | 使用的資源 |
-t st | 執行掃描操作的類型 |
–login或-l | 登入驗證 |
❶安裝iSCSI用戶端
- 安裝iSCSI用戶端
yum install iscsi-initiator-utils
- iSCSI協定是通過用戶端的名稱來進行驗證
- 配置共享資源讀取驗證檔案
vim /etc/iscsi/initiatorname.iscsi
- 重新開機/加入開機啟動
systemctl restart/enable iscsid
#安裝用戶端
[[email protected] ~]# yum install iscsi-initiator-utils
AppStream 586 kB/s | 4.3 kB 00:00
BaseOS 279 kB/s | 3.9 kB 00:00
Package iscsi-initiator-utils-6.2.0.876-7.gitf3c8e90.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
#寫入服務端的通路控制清單
[[email protected] ~]# vim /etc/iscsi/initiatorname.iscsi
#InitiatorName=iqn.1994-05.com.redhat:4f7fdc8ff61
InitiatorName=iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49:client
#重新開機/開機啟動
[[email protected] ~]# systemctl restart iscsid
[[email protected] ~]# systemctl enable iscsid
Created symlink /etc/systemd/system/multi-user.target.wants/iscsid.service → /usr/lib/systemd/system/iscsid.service.
❷發現iSCSI服務端
- 掃描并發現可用的存儲資源
-m discovery
- 執行掃描操作的類型
-t st
- iSCSI服務端的IP位址
-p 192.168.10.10
- 掃描服務端的IP位址
iscsiadm -m discovery -t st -p 192.168.10.30
[[email protected] ~]# iscsiadm -m discovery -t st -p 192.168.10.30
192.168.10.30:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49
❸登入iSCSI服務端
- 将用戶端所在主機作為一台節點伺服器
-m node
- 要使用的存儲資源
-T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49
- iSCSI服務端的IP位址
-p 192.168.10.30
- 進行登入驗證
或--login
-l
- 登入iSCSI服務端
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49 -p 192.168.10.30 --login
[[email protected] ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49 -p 192.168.10.30 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49, portal: 192.168.10.30,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49, portal: 192.168.10.30,3260] successful.
❹挂載使用
- 檢視檔案類型
file /dev/sdb
- 為什麼是sdb?硬體命名規則
- 強制格式化為xfs檔案
mkfs.xfs -f /dev/sdb
- 建立挂載目錄
mkdir /iscsi
- 挂載
mount /dev/sdb /iscsi
- 顯示磁盤空間占用情況
df -h
- 檢視裝置名稱、檔案系統、UUID
blkid | grep /dev/sdb
- 寫入配置檔案
vim /etc/fstab
-
表示當系統聯網後再進行挂載操作_netdev
- 配置檔案全挂載
mount -a
[[email protected] ~]# file /dev/sdb
/dev/sdb: block special (8/16)
#先配置的win7,是以顯示已使用
[[email protected] ~]# mkfs.xfs /dev/sdb
mkfs.xfs: /dev/sdb appears to contain a partition table (dos).
mkfs.xfs: Use the -f option to force overwrite.
# -f參數強制格式化
[[email protected] ~]# mkfs.xfs -f /dev/sdb
meta-data=/dev/sdb isize=512 agcount=16, agsize=327296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=5236736, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[[email protected] ~]# mkdir /iscsi
[[email protected] ~]# mount /dev/sdb /iscsi
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 968M 0 968M 0% /dev
tmpfs 984M 0 984M 0% /dev/shm
tmpfs 984M 9.7M 974M 1% /run
tmpfs 984M 0 984M 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 3.9G 14G 23% /
/dev/sr0 6.7G 6.7G 0 100% /mnt/cdrom
/dev/sda1 976M 116M 794M 13% /boot
tmpfs 197M 28K 197M 1% /run/user/42
tmpfs 197M 3.5M 194M 2% /run/user/1000
/dev/sdb 20G 176M 20G 1% /iscsi
[[email protected] ~]# blkid | grep /dev/sdb
/dev/sdb: UUID="0b462f57-aa1c-4bd1-9b2f-6dcde5b6324c" TYPE="xfs"
[[email protected] ~]# vim /etc/fstab
UUID=0b462f57-aa1c-4bd1-9b2f-6dcde5b6324c /iscsi xfs defaults,_netdev 0 0
[[email protected] ~]# mount -a
❺解除安裝裝置
- 裝置解除安裝
-u
-
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49 -u
#解除安裝裝置
[[email protected] ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49 -u
2、Win7用戶端
❶啟用iSCSI服務
- 控制台-系統和安全-管理工具-iSCSI發起程式-
-輕按兩下
是
❷配置iSCSI服務端IP位址
- 點選
,輸入服務端IP位址目标
192.168.10.30
- 點選
快速連結
- 點選
完成
❸修改并連接配接iSCSI發起程式名稱
- 點選
,點選配置
更改
- 修改發起程式名稱為
iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ccbac1f4ba49:client
- 點選
确定
- 連接配接到遠端共享存儲資源:目标-
連接配接
- 成功連接配接狀态
已連接配接
❹對磁盤進行初始化操作
- 滑鼠右擊
,點選計算機
,點選管理
,點選存儲
磁盤管理
- 對多出的空間格式化使用