透過 Linux iSCSI 儲存服務,使用 QNAP 企業級儲存設備


最後修訂日期: 2018-06-01

系統架構概觀


網路設定清單

以下範例中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
Linux 客戶端設定
  • 作業系統版本 : 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 將使用所有路徑進行傳輸,以達成負載平衡與高可用性效果。

這篇文章有幫助嗎?

67% 的人認為有幫助。
謝謝您,我們已經收到您的意見。

請告訴我們如何改進這篇文章:

如果您想提供其他意見,請於下方輸入。

選擇規格

      顯示更多 隱藏更多

      選擇其他偏好的語言:

      back to top