IBM Cloud Docs
在 Red Hat Enterprise Linux 8 上掛載 iSCSI 磁碟區

在 Red Hat Enterprise Linux 8 上掛載 iSCSI 磁碟區

本指導教學指導您如何在具有 Red Hat Enterprise Linux® 8 作業系統的伺服器上裝載 IBM Cloud® Block Storage for Classic 磁區。 您將會建立兩個連線,從主機的一個網路介面連到儲存空間陣列的兩個目標 IP 位址。

如果您使用其他 Linux® 作業系統,請參閱特定發行版的說明文件,並確認多重路徑支援 ALUA 的路徑優先順序。

開始之前

如果多個主機裝載相同的 Block Storage for Classic 磁區而未聯合管理,則您的資料有毀損風險。 如果多個主機同時對磁區進行變更,則可能會發生磁區毀損。 您需要可察覺叢集的共用磁碟檔案系統,以防止資料遺失,例如 Microsoft 叢集共用磁區 (CSV)、Red Hat 廣域檔案系統 (GFS2)、VMware® VMFS 及其他。 如需詳細資訊,請參閱主機的作業系統文件。

最好是在 VLAN 上執行儲存空間資料流量,這樣會略過防火牆。 透過軟體防火牆執行儲存空間資料流量,會增加延遲,而且會對儲存空間效能造成不利的影響。 如需將儲存空間資料流量遞送至其專屬 VLAN 介面的相關資訊,請參閱 常見問題

開始之前,請確定要存取 Block Storage for Classic 磁區的主機已獲授權。 有關更多信息,請參閱 在控制台授權主機從 CLI 授權主機使用 Terraform 授權主機

安裝 iSCSI 和多重路徑公用程式

請確定您的系統已更新,並包含 iscsi-initiator-utilsdevice-mapper-multipath 套件。 使用下列指令安裝套件。

sudo dnf -y install iscsi-initiator-utils device-mapper-multipath

設定多路徑

您可以使用 mpathconf 公用程式來設定 DM 多重路徑,這會建立多重路徑配置檔 /etc/multipath.conf

  • 如果 /etc/multipath.conf 檔案存在,mpathconf 公用程式可以編輯它。
  • 如果 /etc/multipath.conf 檔案不存在,mpathconf 公用程式會從頭開始建立 /etc/multipath.conf 檔案。

如需 mpathconf 公用程式的相關資訊,請參閱 mpathconf(8)man page

  1. 輸入含 --enable 選項的 mpathconf 指令。

    # mpathconf --enable --user_friendly_names n
    
  2. 以下列最低配置編輯 /etc/multipath.conf 檔案。

    defaults {
    user_friendly_names no
    max_fds max
    flush_on_last_del yes
    queue_without_daemon no
    dev_loss_tmo infinity
    fast_io_fail_tmo 5
    }
    # All data in the following section must be specific to your system.
    blacklist {
    wwid "SAdaptec*"
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
    }
    devices {
    device {
    vendor "NETAPP"
    product "LUN"
    path_grouping_policy group_by_prio
    features "2 pg_init_retries 50"
    no_path_retry queue
    prio "alua"
    path_checker tur
    failback immediate
    path_selector "round-robin 0"
    hardware_handler "1 alua"
    rr_weight uniform
    rr_min_io 128
    }
    }
    

    配置檔的起始預設值區段會配置系統,以便多路徑裝置名稱的格式為 /dev/mapper/mpath n,其中 mpath n 是裝置的 WWID。

  3. 必要的話,儲存配置檔並結束編輯器。

  4. 發出下列指令。

    systemctl start multipathd.service
    

    如果您在啟動多路徑常駐程式之後需要編輯多路徑配置檔,則必須發出 systemctl reload multipathd.service 指令,變更才會生效。

    如需在 RHEL 8 上使用「裝置對映器多重路徑」特性的相關資訊,請參閱 配置裝置對映器多重路徑

更新 /etc/iscsi/initiatorname.iscsi 檔案

從 IBM Cloud® 主控台以 IQN 更新 /etc/iscsi/initiatorname.iscsi 檔案。 請以小寫字體輸入此值。

InitiatorName=<value-from-the-Portal>

配置認證

使用 IBM Cloud® 主控台中的使用者名稱和密碼,在 /etc/iscsi/iscsid.conf 中編輯下列設定。 請對 CHAP 名稱使用大寫字體。

node.session.auth.authmethod = CHAP
node.session.auth.username = <Username-value-from-Portal>
node.session.auth.password = <Password-value-from-Portal>
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <Username-value-from-Portal>
discovery.sendtargets.auth.password = <Password-value-from-Portal>

讓其他 CHAP 設定保持註解狀態。IBM Cloud® 儲存體僅使用單向鑑別。 請勿啟用 Mutual CHAP。

探索儲存裝置並登入

iscsiadm 公用程式是一個指令行工具,用來探索和登入 iSCSI 目標,以及存取和管理 open-iscsi 資料庫。 如需相關資訊,請參閱 iscsiadm(8)線上資訊。 在此步驟,使用從 IBM Cloud® 主控台取得的目標 IP 位址來發現裝置。

  1. 針對 iSCSI 陣列執行搜尋。

    iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
    

    如果顯示 IP 位址資訊及存取詳細資料,則探索成功。

  2. 登入 iSCSI 陣列。

    iscsiadm -m node --login
    

驗證配置

  1. 驗證已建立 iSCSI 階段作業。

    iscsiadm -m session -o show
    
  2. 請驗證存在多個路徑。

    multipath -l
    

    這個指令會報告路徑。 如果配置正確,則每一個磁區都有單一群組,路徑數等於 iSCSI 階段作業數。 可以使用單一路徑附加磁碟區,但重要的是在兩個路徑上都建立連線,以避免服務中斷。

    如果 MPIO 未正確配置,則發生網路中斷時或 IBM Cloud® 團隊執行維護時,您的儲存裝置可能會中斷連線並顯示離線。 在這些事件中,MPIO 提供了額外的連線層級,並在進行讀/寫作業時,與卷保持已建立的會話。

  3. 列出已連接裝置的分割區表格。

    fdisk -l | grep /dev/mapper
    

    依預設,儲存裝置會連接至 /dev/mapper/<wwid>。 當磁區存在時,WWID 是持續性的。 命令報告與以下範例類似。

    Disk /dev/mapper/3600a0980383030523424457a4a695266: 73.0 GB, 73023881216 bytes
    

    在範例中,字串 3600a0980383030523424457a4a695266 是 WWID。 您的應用程式應該使用 WWID。 也可以在 multipath.conf 中使用「user_friendly_names」或「alias」關鍵字來指定更容易閱讀的名稱。 如需相關資訊,請參閱 multipath.conf 線上說明

    磁區現在已裝載且可在主機上存取。 接下來您可以建立檔案系統。

建立檔案系統(選用)

請遵循這些步驟,以便在新裝載的磁區上建立檔案系統。 大部分應用程式都需要檔案系統,才能使用磁區。 請對小於 2 TB 的磁碟機使用 fdisk,而對大於 2 TB 的磁碟使用 parted

使用 fdisk 建立檔案系統

  1. 取得磁碟名稱。

    fdisk -l | grep /dev/mapper
    

    傳回的磁碟名稱看起來類似於 /dev/mapper/XXX

  2. 在磁碟上建立分割區。

    fdisk /dev/mapper/XXX
    

    XXX 代表步驟 1 中傳回的磁碟名稱。

  3. 在新的分割區上建立檔案系統。

    fdisk –l /dev/mapper/XXX
    
    • 新磁碟分割與磁碟一起列出,類似於 XXXp1,接著是大小、類型 (83) 和 Linux®。

    • 記下分割區名稱,您將在下一步中需要它。 (XXXp1 代表分割區名稱。)

    • 建立檔案系統:

      mkfs.ext3 /dev/mapper/XXXp1
      
  4. 為檔案系統建立裝載點,並裝載它。

    • 建立一個分割區名稱 PerfDisk,或您要裝載檔案系統的位置。

      mkdir /PerfDisk
      
    • 使用分割區名稱來裝載儲存空間。

      mount /dev/mapper/XXXp1 /PerfDisk
      
    • 確認您在清單中看到新的檔案系統。

      df -h
      
  5. 若要啟用自動裝載 om 開機,請將新的檔案系統新增至系統的 /etc/fstab 檔案。

    • 將下行附加至 /etc/fstab 的結尾(使用步驟 3 中的分割區名稱)。
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

    如需詳細資訊,請參閱 Linux /etc/fstab 檔案簡介

使用 parted 建立檔案系統

在許多 Linux® 發行版上,parted 已經預先安裝。 但是,如果需要,您可以發出以下指令來安裝。

# dnf install parted

若要使用 parted 來建立檔案系統,請遵循下列步驟。

  1. 啟動互動式 parted Shell。

    parted
    
  2. 在磁碟上建立分割區。

    1. 除非另有指定,否則 parted 公用程式會使用您的主磁碟機,在大多數情況下為 /dev/sda。 使用 select 指令,切換至您要分割的磁碟。 將 XXX 取代為新的裝置名稱。

      select /dev/mapper/XXX
      
    2. 執行 print 確認您在正確的磁碟上。

      print
      
    3. 建立 GPT 分割區表格。

      mklabel gpt
      
    4. Parted 可以用來建立主要及邏輯磁碟分割區,涉及的步驟相同。 若要建立磁碟分割,公用程式會使用 mkpart。 您可以為它提供其他參數,如 primarylogical,視您想要建立的分割區類型而定。

      mkpart
      

      列出的單位預設為百萬位元組 (MB)。 若要建立 10 GB 分割區,請從 1 開始,並在 10000 結束。 想要的話,您也可以輸入 unit TB,將大小單位變更為兆位元組 (TB)。

    5. 使用 parted 來結束 quit

      quit
      
  3. 在新的分割區上建立檔案系統。

    mkfs.ext3 /dev/mapper/XXXp1
    

    執行此指令時,選擇正確的磁碟和磁碟分割非常重要。 請列印分割區表格來驗證結果。 在檔案系統列下,您可以看到 ext3。

  4. 為檔案系統建立裝載點,並裝載它。

    • 建立一個分割區名稱 PerfDisk,或您要裝載檔案系統的位置。
    mkdir /PerfDisk
    
    • 使用分割區名稱來裝載儲存空間。
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • 確認您在清單中看到新的檔案系統。
    df -h
    
  5. 若要啟用自動裝載 om 開機,請將新的檔案系統新增至系統的 /etc/fstab 檔案。

    • 將下行附加至 /etc/fstab 的結尾(使用步驟 3 中的分割區名稱)。
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

    如需詳細資訊,請參閱 Linux /etc/fstab 檔案簡介

管理使用者對已掛載磁碟區內容的權限

身為系統管理員,您可以管理掛載磁碟區上資料的存取權。 檔案系統就緒後,您可以使用 chownchmod 指令,為個別使用者和群組指定讀取、寫入和執行權限,從而完善存取控制。 如需詳細資訊,請參閱 Red Hat 的教學:如何管理 Linux 的使用者、群組及其他權限

驗證 MPIO 配置

如果 MPIO 未正確配置,則發生網路中斷時或 IBM Cloud® 團隊執行維護時,您的儲存裝置可能會中斷連線並顯示離線。 在這些事件中,MPIO 提供了額外的連線層級,並在進行讀/寫作業時,與卷保持已建立的會話。

  • 若要檢查多重路徑是否正在擷取裝置,請列出目前的組態。 如果配置正確,則每個磁碟區都存在一個群組,其路徑數等於磁碟區的數量iSCSI會議。

    multipath -l
    
    root@server:~# multipath -l
    3600a09803830304f3124457a45757067 dm-1 NETAPP,LUN C-Mode
    size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=-1 status=active
    | `6:0:0:101 sdd 8:48 active ready running
    `-+- policy='round-robin 0' prio=-1 status=enabled
     `- 7:0:0:101 sde 8:64 active ready running
    

    範例中的字串 3600a09803830304f3124457a45757067 是磁碟區的唯一 WWID。 每個磁碟區均由其唯一的 WWID 標識,該 WWID 在磁碟區存在時保持不變。

  • 確認所有磁碟都存在。 在正確的配置中,您可以預期輸出中會顯示兩個具有相同標識符的磁碟,並且一個 /dev/mapper 具有相同標識符的相同大小的清單。 /dev/mapper 裝置是多路徑設定的裝置。

    fdisk -l | grep Disk
    
    • 正確配置的輸出範例。
    root@server:~# fdisk -l | grep Disk
    Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d
    Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/mapper/3600a09803830304f3124457a45757066: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    

    WWID 包含在多路徑建立的設備名稱中。 建議您的應用程式使用 WWID。

    • 錯誤設定的輸出範例。 不 /dev/mapper 磁碟存在。
    root@server:~# fdisk -l | grep Disk
    Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d
    Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    
  • 若要確認多路徑設備清單中不包含任何本機磁碟,請以詳細等級 3 顯示目前配置。 以下命令的輸出顯示設備,並顯示哪些設備已新增至封鎖清單。

    multipath -l -v 3 | grep sd <date and time>
    
  • 如果在第二條路徑停機時配置並附加磁碟區,主機可能會在第一次執行發現掃描時看到單一路徑。 如果您遇到這種罕見現象,請檢查 IBM Cloud®狀態頁查看是否正在發生影響主機存取儲存能力的事件。 如果沒有報告任何事件,請再次執行發現掃描,以確保正確發現所有路徑。 如果事件正在進行中,則可以使用單一路徑附加儲存。 但是,在事件完成後重新掃描路徑至關重要。 如果重新掃描後沒有發現兩條路徑,創建支援案例這樣就可以對其進行適當的調查。

卸載 Block Storage for Classic 磁區

  1. 卸載檔案系統。
    umount /dev/mapper/XXXp1 /PerfDisk
    
  2. 如果您在該目標入口網站中沒有任何其他磁區,可登出該目標。
    iscsiadm -m node -T <TARGET NAME> -p <PORTAL IP:PORT> --logout
    
  3. 如果您在該目標入口網站中沒有任何其他磁區,請刪除目標入口網站記錄,以防止未來的登入嘗試。
    iscsiadm -m node -o delete -T <TARGET IQN> -p <PORTAL IP:PORT>
    
    如需詳細資訊,請參閱 iscsiadm 手冊