透過 Linux iSCSI 儲存服務,使用 QNAP 企業級儲存設備
系統架構概觀

網路設定清單
以下範例中NAS與Linux電腦,都將使用此網路設定進行連接與傳輸。
NAS網路設定 | ||
---|---|---|
角色 | IP | 描述 |
SCA 管理埠 | 192.168.1.10 | SCA 管理埠 IP |
SCA Ethernet 1 | 10.10.10.51 | SCA 10Gb 資料埠 1 |
SCA Ethernet 2 | 10.10.20.51 | SCA 10Gb 資料埠 2 |
SCB 管理埠 | 192.168.1.11 | SCB 管理埠 IP |
SCB Ethernet 1 | 10.10.10.52 | SCB 10Gb 資料埠 1 |
SCB Ethernet 2 | 10.10.20.52 | SCB 10Gb 資料埠 2 |
Linux客戶端網路設定 | ||
角色 | IP | 描述 |
Ethernet 1 | 10.10.10.21 | 10Gb 資料埠 1 |
Ethernet 2 | 10.10.20.21 | 10Gb 資料埠 2 |
iSCSI 儲存設定
- iSCSI Target 名稱 : linux
- iSCSI LUN 名稱 : linux_test1
- 容量 : 100GB
- 作業系統版本 : CentOS 7 x86_64
- open-iscsi 套件版本 : 6.2.0.873-32.el7
- device-mapper-multipath 套件版本 : 0.4.9-85.el7_2.1
在 ES NAS 上建立 iSCSI 儲存空間
將客戶端加入 Host 允許清單
1. 在 NAS 管理介面開啟「儲存空間總管」。
2. 進入「連線主機管理」,再點選「建立主機」按鈕。
3. 輸入 Linux 客戶端別名,在此範例中,我們輸入「Linux Server」。
4. 輸入 Linux 客戶端IP位置、IP範圍、子網路遮罩或客戶端名稱,再按下「確認」。
5. 已經成功建立客戶端主機資訊。
建立 iSCSI Target 與 LUN
1. 前往「儲存空間總管」>「iSCSI 儲存」。
2. 點選「建立」。
3. 選擇「建立一個 iSCSI 目標並且掛載一個 iSCSI 磁碟」,並按「下一步」。
4. 輸入 iSCSI Target 名稱,並按「下一步」。
5. 在這份教學中我們不會開啟 CHAP 功能,按「下一步」。
6. 選擇對外的網路介面卡,按「下一步」。
7. 將先前加入 Host 清單的 Linux 客戶端,賦予 All Access 權限,按「下一步」。
8. 輸入 iSCSI LUN 名稱。
9. 調整 iSCSI LUN 設定以符合您的需求。
10. 按「下一步」、「下一步」、「完成」。
11. 您可在「儲存空間總管」>「iSCSI 儲存」檢視建立完成的 iSCSI LUN。
在Linux客戶端上設定iSCSI MPIO
使用Open-iSCSI Initiator建立連線
1. 探索 ES NAS 上的 iSCSI Target。
# iscsiadm -m discovery -t st -p 10.10.10.51
# iscsiadm -m discovery -t st -p 10.10.10.52
# iscsiadm -m discovery -t st -p 10.10.20.51
# iscsiadm -m discovery -t st -p 10.10.20.52
2. 連接到iSCSI Target。
# iscsiadm -m node –l
3. 顯示iSCSI session細節。
# iscsiadm -m session
tcp: [23] 10.10.20.51:3260,1 iqn.2004-04.com.qnap:es1640dc:iscsi.linux.e57840.0 (non-flash)
tcp: [24] 10.10.10.51:3260,1 iqn.2004-04.com.qnap:es1640dc:iscsi.linux.e57840.0 (non-flash)
tcp: [31] 10.10.20.52:3260,1 iqn.2004-04.com.qnap:es1640dc:iscsi.linux.e57840.1 (non-flash)
tcp: [32] 10.10.10.52:3260,1 iqn.2004-04.com.qnap:es1640dc:iscsi.linux.e57840.1 (non-flash)
設定多路徑連接
1. 建立一個多路徑連接設定檔。
# mpathconf --enable --with_multipathd y
2. 寫入多路徑連接相關設定。
# vim /etc/multipath.conf
defaults {
user_friendly_names yes
find_multipaths yes
polling_interval 10
path_selector "round-robin 0"
path_grouping_policy multibus
uid_attribute ID_SERIAL
prio alua
path_checker readsector0
rr_min_io 100
max_fds 8192
rr_weight priorities
failback immediate
no_path_retry fail
}
3. 重新啟動多路徑服務。
#systemctl restart multipathd
4. 確認多路徑連接狀態。
# multipath -ll
mpathn (36e843b66430373739633034323866663) dm-2 QNAP,iSCSI Storage
size=100G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=30 status=active
|- 26:0:0:1 sdf 8:80 active ready running
|- 25:0:0:1 sdj 8:144 active ready running
|- 34:0:0:1 sdbe 67:128 active ready running
`- 33:0:0:1 sdx 65:112 active ready running
使用 iSCSI LUN
1. 建立一個磁碟區。
# fdisk /dev/mapper/mpathn
2. 格式化這個磁碟區。
# mkfs.ext4 /dev/mapper/mpathn
3. 掛載檔案系統。
# mount /dev/mapper/mpathn /mount_point/
4. 當系統啟動時,自動掛載檔案系統。
# vim /etc/fstab
/dev/mapper/mpathn /mount_point/ ext4 defaults,_netdev 1 2
總結
完成多路徑設定後,Linux iSCSI initiator 將使用所有路徑進行傳輸,以達成負載平衡與高可用性效果。