Linux 主機的設定
為了確保在失效接手實務範例中進行路徑回復,建議使用某些「裝置對映器多重路徑 (DMMP)」設定及 udev 規則,將 Linux® 主機連接至系統。 這些設定適用於 IBM® System x、所有 Intel 或 AMD 型伺服器,以及 Power ® 平台。
對於發行套件內的每一個 Linux 發行套件及發行套件,請參閱下的預設值[/usr/share/doc/device-mapper-multipath.*]適用於 Red Hat 及[/usr/share/doc/packages/multipath-tools]適用於 Novell SuSE。 請確定新增至的項目multipath.conf符合所需 Linux 發行套件的格式和語法。 請利用multipath.conf僅來自您的相關發行套件。 請勿複製multipath.conf從一個配送或釋放到另一個配送或釋放的檔案。
對於部分作業系統層次,polling_interval需要位於預設值下,而不是位於 裝置設定下。 如果polling_interval在裝置區段中,註銷polling_interval使用 # 鍵。
Under Device Section
# polling_interval 30,
Under Defaults Section
defaults {
user_friendly_names yes
polling_interval 30
}
特定 Linux 發行套件和版本的多重路徑設定
multipathd -k
multipathd> show config
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "round-robin 0"
prio_callout "/sbin/mpath_prio_alua /dev/%n" #Used by Red Hat 5.x
prio "alua"
path_checker "tur"
failback "immediate"
no_path_retry 5
rr_weight uniform
rr_min_io 1000
dev_loss_tmo 120
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "round-robin 0" # Used by Red Hat 6.2
prio "alua"
path_checker "tur"
failback "immediate"
no_path_retry 5
rr_weight uniform
rr_min_io_rq "1"
dev_loss_tmo 120
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "service-time 0" # Used by Red Hat 7.x
prio "alua"
path_checker "tur"
failback "immediate"
no_path_retry 5
rr_weight uniform
rr_min_io_rq "1"
dev_loss_tmo 120
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "round-robin 0"
prio "alua"
path_checker "tur"
failback "immediate"
no_path_retry 5
rr_weight uniform
rr_min_io 1000
dev_loss_tmo 120
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "round-robin 0" # Used by SLES 11 SP2
prio "alua"
path_checker "tur"
failback "immediate"
no_path_retry 5
rr_weight uniform
rr_min_io_rq "1"
dev_loss_tmo 120
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "service-time 0" # Used by SLES 11 SP3+
prio "alua"
path_checker "tur"
failback "immediate"
no_path_retry 5
rr_weight uniform
rr_min_io_rq "1"
dev_loss_tmo 120
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "service-time 0"
prio "alua"
path_checker "tur"
failback "immediate"
retain_attached_hw_handler "yes"
no_path_retry 5 # or no_path_retry "fail"
fast_io_fail_tmo 5
rr_min_io 1000
rr_min_io_rq 1
rr_weight "uniform"
vendor "IBM"
product "2145"
path_grouping_policy "group_by_prio"
path_selector "service-time 0"
prio "alua"
path_checker "tur"
failback "immediate"
no_path_retry 5 # or no_path_retry "fail"
retain_attached_hw_handler "yes"
fast_io_fail_tmo 5
rr_min_io 1000
rr_min_io_rq 1
rr_weight "uniform"
dev_loss_tmo 的 DM-MPIO
在光纖通道埠上偵測到問題並設為無限後,SCSI 層可以等候 2147483647 秒(68 年),之後才將其從系統中移除。 預設值由 OS 決定。
所有 Linux 主機都應該具有 dev_loss_tmo 設定,但值 (以秒為單位) 是等待刪改裝置/路徑的時間長度。 建議期間為 120-150 秒,但也支援延長的期間。
如果它太低,則需要注意,因為如果刪改了路徑,則還需要重新探索它們;如果太低,則可能需要稍後手動重新掃描。 如果查詢超時是正確的,則還原 SVC 節點後,主機應能夠重新新增路徑。
如果查詢太短(例如 20 秒),則查詢可能會在路徑備妥之前逾時。
多路徑驅動程式
如果您遺失路徑並且沒有自動還原,則可以透過以下程序手動將其找回。
- 如果您使用 Linux dm-multipath 作為multipathing主機上的軟體,以及 SVC 上已停用 NPIV ,在每一個節點還原其路徑之後,可能需要重新掃描埠。
- 如果您在 SVC 上停用了 NPIV,則需要其他配置。 在升級期間,已停用 NPIV 的 SVC 將會長時間關閉埠,這可能會導致 Linux 移除埠。
- 此設定可以套用至執行中系統,但也必須套用至GRUB配置,以確保它在重新開機時持續保存。
- 可能的情況是,即使採用此設定,SVC 升級仍可能保持埠關閉,關閉時間長於逾時設定所容許。 SVC 节点還原作業後,可能有必要重新扫描埠。
- 一旦 SVC 節點完成升級,請在更新下一個節點之前使用 multipath 指令檢查路徑狀態:
# multipath -ll /dev/mapper/mpatha (360050768028211d8b000000000000061) dm-11 IBM,2145 size=10G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=50 status=enabled | |- 4:0:1:0 sder 129:48 failed faulty running | `- 5:0:1:0 sdfb 129:208 failed faulty running `-+- policy='service-time 0' prio=10 status=active |- 4:0:0:0 sdem 128:224 active ready running `- 5:0:0:0 sdew 129:128 active ready running#
在上面的範例中,選擇裝置名稱(而不是 mpatha)以符合正在執行升級的 SVC 所利用的裝置。 failed 及 faulty 狀態,指出 Linux的路徑仍在關閉中。 您可以使用 multipath -ll 指令來列出所有裝置名稱,然後在輸出中掃描失敗路徑,確認失敗路徑位於 SVC 升級的關聯裝置上。
若要重新掃描 Red Hat® Enterprise Linux 或 SUSE Linux Enterprise Server 上的所有 SCSI 目標和埠,請使用 rescan-scsi-bus.sh 指令 (屬於sg3_utils套件。
如果您的 Linux 發行套件不包含 rescan-scsi-bus.sh 指令,請使用 SCSI-rescan 指令重新掃描所有 SCSI 目標。