在 CloudLinux 8 上掛載 iSCSI區
瞭解如何在 CloudLinux 8 上以多路徑 I/O 掛載 Block Storage for Classic 磁碟區,以進行備援的高效能儲存存取。
請按照教學在配備 CloudLinux 8 作業系統的伺服器上掛載 IBM Cloud® Block Storage for Classic 磁碟區。 您將會建立兩個連線,從主機的一個網路介面連到儲存空間陣列的兩個目標 IP 位址。
如果您使用的是其他 Linux® 作業系統,請參閱您所使用發行版的文件,並確認多路徑功能是否支援用於設定路徑優先順序的非對稱邏輯單元存取(ALUA)。
開始之前
如果多個主機裝載相同的 Block Storage for Classic 磁區而未聯合管理,則您的資料有毀損風險。 如果多個主機同時對磁區進行變更,則可能會發生磁區毀損。 您需要群集感知的共享磁碟檔案系統來防止資料遺失,例如 Microsoft Cluster Shared Volumes ( CSV )、Red Hat Global File System ( GFS2 )、VMware® VMFS 等。 如需更多資訊,請參閱您的作業系統說明文件。
最好是在 VLAN 上執行儲存空間資料流量,這樣會略過防火牆。 透過軟體防火牆執行儲存空間資料流量,會增加延遲,而且會對儲存空間效能造成不利的影響。 如需將儲存空間資料流量遞送至其專屬 VLAN 介面的相關資訊,請參閱 常見問題。
開始之前,請確保要存取該卷 Block Storage for Classic 的主機已獲得授權。 有關更多信息,請參閱 在控制台授權主機從 CLI 授權主機使用 Terraform 授權主機。
安裝 iSCSI 和多重路徑公用程式
請確定您的系統已更新,並包含 iscsi-initiator-utils 和 device-mapper-multipath 套件。
-
請使用以下指令安裝套件。
dnf install iscsi-initiator-utils device-mapper-multipath -
啟動服務。
chkconfig multipathd onchkconfig iscsid on
設定多路徑
您可以使用 mpathconf 公用程式來設定 DM 多重路徑,這會建立多重路徑配置檔 /etc/multipath.conf。
- 如果 /etc/multipath.conf 檔案存在,mpathconf 公用程式可以編輯它。
- 如果 /etc/multipath.conf 檔案不存在,mpathconf 公用程式會從頭開始建立 /etc/multipath.conf 檔案。
-
輸入
mpathconf指令並指定--enable選項。# mpathconf --enable --user_friendly_names n -
請使用以下基本設定編輯
/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 (全球識別碼)。
-
必要的話,儲存配置檔並結束編輯器。
-
執行下列指令:
# systemctl start multipathd.service如果您在啟動多路徑常駐程式之後需要編輯多路徑配置檔,則必須發出
systemctl reload multipathd.service指令,變更才會生效。
更新 /etc/iscsi/initiatorname.iscsi 檔案
請使用 IBM Cloud® 控制台中的 IQN 來更新 /etc/iscsi/initiatorname.iscsi 檔案。 請以小寫字體輸入此值。
InitiatorName=<value-from-the-Portal>
配置認證
請使用 IBM Cloud® 控制台中的使用者名稱和密碼,在 /etc/iscsi/iscsid.conf 中編輯以下設定。 對於 CHAP(Challenge-Handshake Authentication Protocol,挑戰握手驗證通訊協定)名稱,請使用大寫。
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 資料庫。 在此步驟中,請使用從 IBM Cloud® 控制台取得的目標 IP 位址來偵測裝置。
-
對 iSCSI 陣列執行探索。
Block Storage for Classic 需要使用
SendTargets方法進行動態目標偵測。 請勿使用靜態節點配置,因為此配置不具可擴展性,且當儲存系統發生變更(例如對主機授予或撤銷 LUN 存取權限)時,可能會導致連線問題。 動態發現可確保您的主機自動偵測目標入口網站的任何變更。iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>如果顯示 IP 資訊及存取詳細資料,則探索成功。
-
登入 iSCSI 陣列。
iscsiadm -m node --login
驗證配置
-
驗證已建立 iSCSI 階段作業。
iscsiadm -m session -o show -
請驗證存在多個路徑。
multipath -l這個指令會報告路徑。 如果配置正確,則每一個磁區都有單一群組,路徑數等於 iSCSI 階段作業數。 可以使用單一路徑附加磁碟區,但重要的是在兩個路徑上都建立連線,以避免服務中斷。
如果 MPIO 未正確配置,則發生網路中斷時或 IBM Cloud® 團隊執行維護時,您的儲存裝置可能會中斷連線並顯示離線。 MPIO 在這些事件發生時提供額外的連線能力,並透過持續的讀寫操作維持與卷的連線。
-
列出已連接裝置的分割區表格。
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」關鍵字,為項目指派更易於閱讀的名稱。磁區現在已裝載且可在主機上存取。 接下來您可以建立檔案系統。
建立檔案系統(選用)
請遵循這些步驟,以便在新裝載的磁區上建立檔案系統。 大部分應用程式都需要檔案系統,才能使用磁區。 請對小於 2 TB 的磁碟機使用 fdisk,而對大於 2 TB 的磁碟使用 parted。
使用 fdisk 建立檔案系統
-
取得磁碟名稱。
fdisk -l | grep /dev/mapper傳回的磁碟名稱看起來類似於
/dev/mapper/XXX。 -
在磁碟上建立分割區。
fdisk /dev/mapper/XXXXXX 代表步驟 1 中傳回的磁碟名稱。
請向下滾動以查看《
fdisk》指令表中所列的指令代碼。 -
在新的分割區上建立檔案系統。
fdisk –l /dev/mapper/XXX- 新分割區會與磁碟一同列出,格式類似於
XXXp1``,後面接著大小、類型 (83) 以及Linux®。 - 記下分割區名稱,您將在下一步中需要它。 (XXXp1 代表分割區名稱。)
- 建立檔案系統:
mkfs.ext3 /dev/mapper/XXXp1 - 新分割區會與磁碟一同列出,格式類似於
-
為檔案系統建立裝載點,並裝載它。
- 建立一個分割區名稱
PerfDisk,或您要裝載檔案系統的位置。
mkdir /PerfDisk- 使用分割區名稱來裝載儲存空間。
mount /dev/mapper/XXXp1 /PerfDisk- 確認您在清單中看到新的檔案系統。
df -h - 建立一個分割區名稱
-
將新的檔案系統新增至系統的
/etc/fstab檔案,以在開機時啟用自動裝載。- 將下行附加至
/etc/fstab的結尾(使用步驟 3 中的分割區名稱)。
/dev/mapper/XXXp1 /PerfDisk ext3 defaults,_netdev 0 1 - 將下行附加至
使用 parted 建立檔案系統
在許多 Linux® 發行版中,parted 已預先安裝。 不過,如有需要,您可以執行以下指令來安裝它。
# dnf install parted
若要使用 parted 來建立檔案系統,請遵循下列步驟。
-
啟動互動式
partedShell。parted -
在磁碟上建立分割區。
-
除非另有指定,否則
parted會使用您的主要磁碟機。 在大部分情況下,主要磁碟機是/dev/sda。 使用 select 指令,切換至您要分割的磁碟。 將 XXX 取代為新的裝置名稱。select /dev/mapper/XXX -
執行
以確認您是否位於正確的磁碟上。print -
建立分割表。
mklabel gpt -
Parted可以用來建立主要及邏輯磁碟分割區,涉及的步驟相同。 若要建立分割區,parted會使用mkpart。 您可以為它提供其他參數,如 primary 或 logical,視您想要建立的分割區類型而定。 列出的單位預設為百萬位元組 (MB)。 若要建立 10 GB 分割區,請從 1 開始,並在 10000 結束。 想要的話,您也可以輸入unit TB,將大小單位變更為兆位元組 (TB)。mkpart -
使用
parted來結束quit。quit
-
-
在新的分割區上建立檔案系統。
mkfs.ext3 /dev/mapper/XXXp1執行此指令時,務必選擇正確的磁碟和分割區。 請列印分割區表格來驗證結果。 在「檔案系統」欄位下,您可以看到「ext3」。
-
為檔案系統建立裝載點,並裝載它。
- 建立一個分割區名稱
PerfDisk,或您要裝載檔案系統的位置。
mkdir /PerfDisk- 使用分割區名稱來裝載儲存空間。
mount /dev/mapper/XXXp1 /PerfDisk- 確認您在清單中看到新的檔案系統。
df -h - 建立一個分割區名稱
-
若要啟用自動裝載 om 開機,請將新的檔案系統新增至系統的
/etc/fstab檔案。- 將下行附加至
/etc/fstab的結尾(使用步驟 3 中的分割區名稱)。
/dev/mapper/XXXp1 /PerfDisk ext3 defaults,_netdev 0 1 - 將下行附加至
管理使用者對已掛載磁碟區內容的權限
身為系統管理員,您可以管理掛載磁碟區上資料的存取權。 檔案系統就緒後,您可以使用 chown 和 chmod 指令,為個別使用者和群組指定讀取、寫入和執行權限,從而完善存取控制。 如需詳細資訊,請參閱 CloudLinux 產品文件。
卸載 Block Storage for Classic 磁區
當您不再需要該磁碟區時,請先卸載它,然後再刪除它。
- 卸載檔案系統。
umount /dev/mapper/XXXp1 /PerfDisk - 如果您在該目標入口網站中沒有任何其他磁區,可登出該目標。
iscsiadm -m node -t <TARGET NAME> -p <PORTAL IP:PORT> --logout - 如果您在該目標入口網站中沒有任何其他磁區,請刪除目標入口網站記錄,以防止未來的登入嘗試。
iscsiadm -m node -o delete -t <TARGET IQN> -p <PORTAL IP:PORT>