Skip to main content
ONTAP SAN Host Utilities
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

使用ONTAP儲存為 FCP 和 iSCSI 配置 Ubuntu 20.04

貢獻者 netapp-pcarriga netapp-sarajane netapp-ranuk

配置 Ubuntu 20.04 以實現多路徑,並使用ONTAP儲存的 FCP 和 iSCSI 協定操作的特定參數和設定。

註

Linux Host Utilities 軟體包不支援 Ubuntu 作業系統。

您不需要手動設定基於核心的虛擬機器 (KVM) 設定,因為 ONTAP LUN 會自動對應到虛擬機器管理程式。

步驟 1 :選擇性啟用 SAN 開機

您可以將主機設定為使用 SAN 開機,以簡化部署並改善擴充性。

開始之前

使用"互通性對照表工具"驗證您的 Linux 作業系統,主機匯流排介面卡( HBA ), HBA 韌體, HBA 開機 BIOS 和 ONTAP 版本是否支援 SAN 開機。

步驟
  1. "建立 SAN 啟動 LUN 並將其對應到主機"

  2. 在伺服器BIOS中為SAN開機LUN對應的連接埠啟用SAN開機。

    如需如何啟用HBA BIOS的相關資訊、請參閱廠商專屬的文件。

  3. 重新啟動主機並驗證作業系統是否正常運作,以確認組態是否成功。

步驟 2:確認主機的多路徑配置

您可以使用 Ubuntu 20.04 的多路徑來管理ONTAP LUN。

為確保主機正確設定多重路徑,請確認 `/etc/multipath.conf`檔案已定義,且您已針對 ONTAP LUN 設定 NetApp 建議的設定。

步驟
  1. 確認 `/etc/multipath.conf`檔案已結束。如果檔案不存在,請建立空白的零位元組檔案:

    touch /etc/multipath.conf
  2. 第一次 `multipath.conf`建立檔案時,您可能需要啟用並啟動多重路徑服務,才能載入建議的設定:

    systemctl enable multipathd
    systemctl start multipathd
  3. 每次引導主機時,空的 `/etc/multipath.conf`零位元組檔案會自動載入 NetApp 建議的主機多重路徑參數作為預設設定。您不需要變更 `/etc/multipath.conf`主機的檔案,因為作業系統會使用多重路徑參數進行編譯,以正確辨識及管理 ONTAP LUN 。

    下表顯示 ONTAP LUN 的 Linux OS 原生編譯多重路徑參數設定。

    顯示參數設定
    參數 設定

    DETECT(偵測)_prio

    是的

    開發損失_tmo

    "無限遠"

    容錯回復

    立即

    fast_io_f故障_tmo

    5.

    功能

    "2 pg_init_retries 50"

    Flip_on_last刪除

    "是"

    硬體處理常式

    「0」

    no_path_retry

    佇列

    path_checker_

    "周"

    path_grouping_policy

    "群組by_prio"

    path_selector

    "服務時間0"

    Polling_時間 間隔

    5.

    優先

    「NetApp」ONTAP

    產品

    LUN

    Retain附加的硬體處理常式

    是的

    RR_weight

    "統一"

    使用者易記名稱

    廠商

    NetApp

  4. 驗證 ONTAP LUN 的參數設定和路徑狀態:

    multipath -ll

    預設多路徑參數支援ASA、 AFF和FAS配置。在這些配置中,單一ONTAP LUN 不應需要超過四條路徑。儲存故障時,路徑超過四條可能會導致問題。

    以下輸出範例顯示 ASA , AFF 或 FAS 組態中 ONTAP LUN 的正確參數設定和路徑狀態。

    ASA 組態

    ASA 組態可最佳化通往指定 LUN 的所有路徑,使其保持作用中。如此可同時透過所有路徑提供 I/O 作業、進而提升效能。

    顯示範例
    # multipath -ll
    3600a098038314559533f524d6c652f62 dm-24 NETAPP,LUN C-Mode
    size=10G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    `-+- policy='service-time 0' prio=50 status=active
      |- 11:0:1:13 sdm  8:192  active ready running
      |- 11:0:3:13 sdah 66:16  active ready running
      |- 12:0:1:13 sdbc 67:96  active ready running
      `- 12:0:3:13 sdbx 68:176 active ready running
    AFF 或 FAS 組態

    AFF 或 FAS 組態應該有兩個路徑群組,優先順序較高或較低。較高優先順序的主動 / 最佳化路徑由集合所在的控制器提供服務。較低優先順序的路徑是作用中的,但未最佳化,因為它們是由不同的控制器提供服務。非最佳化路徑只有在最佳化路徑無法使用時才會使用。

    以下範例顯示 ONTAP LUN 的輸出,其中包含兩個主動 / 最佳化路徑和兩個主動 / 非最佳化路徑:

    顯示範例
    # multipath -ll
    3600a098038314837352453694b542f4a dm-0 NETAPP,LUN C-Mode
    size=160G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    |-+- policy='service-time 0' prio=50 status=active
    | |- 14:0:3:0 sdbk 67:224 active ready running
    | `- 15:0:2:0 sdbl 67:240 active ready running
    `-+- policy='service-time 0' prio=10 status=enabled
      |- 14:0:0:0 sda  8:0    active ready running
      `- 15:0:1:0 sdv  65:80  active ready running

步驟 3:確認主機的 iSCSI 組態

請確保已為您的主機正確配置 iSCSI。

關於這項工作

您可以在 iSCSI 主機上執行下列步驟。

步驟
  1. 確認已安裝 iSCSI 啟動器套件(open-iscsi):

    $apt list |grep open-iscsi

    您應該會看到類似以下範例的輸出:

    open-iscsi/noble-updates,noble-updates,now 2.1.9-3ubuntu5.4 amd64
  2. 驗證 iSCSI 發起程式節點名稱,該名稱位於 /etc/iscsi/initiatorname.iscsi 檔案中:

    InitiatorName=iqn.YYYY-MM.com.<vendor>:<host_name>
  3. 配置位於 /etc/iscsi/iscsid.conf 檔案中的 iSCSI 會話逾時參數:

    node.session.timeo.replacement_timeout = 5

    iSCSI replacement_timeout 參數控制 iSCSI 層在逾時路徑或工作階段重新建立連線之前應等待多長時間,超過此時間後,對其執行的任何命令都會失敗。您應該在 iSCSI 組態檔中將 replacement_timeout 的值設為 5。

  4. 啟用 iSCSI 服務:

    $systemctl enable iscsid
  5. 啟動 iSCSI 服務:

    $systemctl start iscsid
  6. 確認 iSCSI 服務正在執行:

    $systemctl status iscsid
    顯示範例
    ●iscsid.service - iSCSI initiator daemon (iscsid)
         Loaded: loaded (/usr/lib/systemd/system/iscsid.service; enabled; preset: disabled)
         Active: active (running) since Mon 2026-01-12 12:53:18 IST; 2 days ago
    TriggeredBy: ● iscsid.socket
           Docs: man:iscsid(8)
       Main PID: 1127419 (iscsid)
          Tasks: 2 (limit: 76557)
         Memory: 4.3M (peak: 8.8M)
            CPU: 1.657s
         CGroup: /system.slice/iscsid.service
                 ├─1127418 /usr/sbin/iscsid
                 └─1127419 /usr/sbin/iscsid
  7. 探索 iSCSI 目標:

    $iscsiadm --mode discovery --op update --type sendtargets --portal <target_IP>
    顯示範例
    iscsiadm --mode discovery --op update --type sendtargets --portal  192.168.100.197
    192.168.100.197:3260,1046 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8
    192.168.200.199:3260,1049 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8
    192.168.100.199:3260,1048 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8
    192.168.200.197:3260,1047 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8
  8. 登入目標:

    $iscsiadm --mode node -l all
  9. 設定 iSCSI 在主機開機時自動登入:

    $iscsiadm --mode node -T <target_name> -p <ip:port> -o update -n node.startup -v automatic

    您應該會看到類似以下範例的輸出:

    iscsiadm --mode node -T iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 -p 192.168.100.197:3260 -o update -n node.startup -v automatic
  10. 驗證 iSCSI 工作階段:

    $iscsiadm --mode session
    顯示範例
    iscsiadm --mode session
    tcp: [1] 192.168.200.197:3260,1047 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 (non-flash)
    tcp: [2] 192.168.100.197:3260,1046 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 (non-flash)
    tcp: [3] 192.168.100.199:3260,1048 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 (non-flash)
    tcp: [4] 192.168.200.199:3260,1049 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 (non-flash)

步驟 4 :選擇性地將裝置排除在多重路徑之外

如果需要,您可以將不需要的裝置的 WWID 新增至檔案的「黑名單」區段,以排除裝置的多重路徑 `multipath.conf`功能。

步驟
  1. 判斷 WWID :

    /lib/udev/scsi_id -gud /dev/sda

    「 SDA 」是您要新增至黑名單的本機 SCSI 磁碟。

    例如 WWID 360030057024d0730239134810c0cb833

  2. 將 WWID 新增至「黑名單」區:

    blacklist {
    	     wwid   360030057024d0730239134810c0cb833
            devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
            devnode "^hd[a-z]"
            devnode "^cciss.*"
    }

步驟 5 :自訂 ONTAP LUN 的多重路徑參數

如果您的主機已連接至其他廠商的 LUN ,而且任何多重路徑參數設定都會被覆寫,則您需要在稍後的檔案中新增特定套用至 ONTAP LUN 的節點來修正這些設定 multipath.conf。如果您不這麼做, ONTAP LUN 可能無法如預期般運作。

請檢查您的 `/etc/multipath.conf`檔案,尤其是在預設值區段中,以瞭解可能會覆寫的設定多重路徑參數的預設設定

警告 您不應覆寫 ONTAP LUN 的建議參數設定。這些設定是主機組態最佳效能所必需的。如需詳細資訊,請聯絡 NetApp 支援,您的作業系統廠商或兩者。

下列範例說明如何修正被覆寫的預設值。在此範例中,檔案會 multipath.conf`定義與 ONTAP LUN 不相容的值 `path_checkerno_path_retry`而且您無法移除這些參數,因為 ONTAP 儲存陣列仍連接至主機。而是修正和 `no_path_retry`的值 `path_checker,方法是將裝置節新增至 `multipath.conf`特定適用於 ONTAP LUN 的檔案。

顯示範例
defaults {
   path_checker      readsector0
   no_path_retry     fail
}

devices {
   device {
      vendor          "NETAPP"
      product         "LUN"
      no_path_retry   queue
      path_checker    tur
   }
}

步驟 6 :檢閱已知問題

沒有已知問題。

接下來呢?

  • 了解 Ubuntu Linux 虛擬化 (KVM)

    Ubuntu Linux 可以作為 KVM 主機。這樣,您就可以使用基於 Linux 核心的虛擬機器 (KVM) 技術在單一實體伺服器上執行多個虛擬機器。KVM 主機不需要對ONTAP LUN 進行明確主機設定設定。