rhel 6 對映多路徑(DM Multipath)配置及管理

selectshen發表於2015-08-26

1 裝置對映器多路徑
11
1 裝置對映器多路徑
裝置對映器多路徑( DM-Multipath 您將服點和存儲陣的多個 I/O 路徑配置一個
I/O 路徑是可包含獨立電纜 機以及控制器的物理 SAN 接。 多路徑集合了 I/O 路徑, 並生成
些整合路徑成的新裝置
本章提供了帽企 Linux 6 初始行本中不包括的 DM-Multipath 新功能概述。 之後, 本章提供 DMMultipath 及其件的高概述以及 DM-Multipath 置概述。
1.1. 新的和更改的功能
本小列出帽企 Linux 6 初始及後版本中 DM-Multipath 新的和更改的功能。
1.1.1. 帽企 Linux 6.0 中新的和更改的功能
帽企 Linux 6.0 包括以下文件和功能更新及更改。
帽企 Linux 6 行本中, 更改了基本故障切配置的初始 DM-Multipath 程。 在可以
DM-Multipath 配置檔案並使用 mpathconf 配置工具 DM-Multipath 工具
device-mapper-multipath 啟動 multipathd 護進程並將 chkconfig 在重啟時
啟動該護進程。
有關新程的參考 3.1 DM-Multipath” 有關 mpathconf 命令的參考
mpathconf(5) man page
帽企 Linux 6 行本提供 multipath 裝置的新模式, find_multipaths 配置檔案引數一
同使用。 在舊版帽企 Linux 中, multipath 嘗試為每個沒有明確放入黑名的路徑
multipath 裝置 但在帽企 Linux 6 中, 如果將 find_multipaths 配置引數 yes 那麼
multipath 將只在滿足以下三個條件之一時創裝置
至少有個沒有列入黑名的路徑使用同一 WWID
使用 multipath 命令指定裝置制手生成該裝置
路徑有與之前建的多路徑裝置相同的 WWID 即使多路徑裝置目前不存在) 如果您之前在沒
find_multipaths 引數的情況下建了多路徑裝置 那麼有關步驟請參考 4.2 配置
檔案黑名
個功能可大多數用動選擇正確的路徑建多路徑裝置 而無需編輯黑名
有關 find_multipaths 配置引數的參考 4.3 配置檔案默認設
帽企 Linux 6 行本提供個新的路徑選擇程式演算法, 可決定下一個 I/O 操作要使用的路徑,
queue-length service-time queue-length 演算法路徑未完成的 I/O 數量以便決定
下一個要使用的路徑。 service-time 演算法看未完成的 I/O 數量以及路徑的相關流量以便決定下一
個要使用的路徑。 有關配置檔案中的路徑選擇程式引數參考 4 DM-Multipath 配置檔案
帽企 Linux 6 行本中, 功能不再能調出程式, 而是與路徑檢查程式功能一樣動態共享
象。 已使用 prio 引數替 prio_callout 引數。 有關支援的 prio 功能參考 4 DMMultipath 配置檔案
帽企 Linux 6 中, 更改了 multipath 命令的出格式。 有關 multipath 命令出的
參考 5.7 多路徑命令
帽企 Linux 6 行本中, 多路徑 bindings 檔案的位置 /etc/multipath/bindings
帽企 Linux 6 行本在 multipath.conf 檔案中提供三個新的默
數:checker_timeout fast_io_fail_tmo dev_loss_tmo 有關引數參考 4
DM-Multipath 配置檔案
當將多路徑配置檔案中的 user_friendly_names 選項設 yes 多路徑裝置的名稱格式
mpathn 帽企 Linux 6 行本中, n 是字母字元, 因此多路徑裝置的名稱就可能是 mpatha
mpathb 在之前的行本中, n 是整數
帽企 Linux 6 裝置對映多路徑
12
1.1.2. 帽企 Linux 6.1 中新的和更改的功能
帽企 Linux 6.1 中包括以下文件和功能更新和更改。
文件在包含新的一章, 5.2 root 檔案系一路徑裝置到多路徑裝置
文件在包含新的一章, 5.3 swap 檔案系一路徑裝置到多路徑裝置
1.1.3. 帽企 Linux 6.2 中新的和更改的功能
帽企 Linux 6.2 包括以下文件和功能更新及更改。
帽企 Linux 6.2 行本提供新的 multipath.conf 引數 rr_min_io_rq 引數位於
multipath.conf 檔案的 defaults devices multipaths 部分。 帽企 Linux 6.2 不再
使用 rr_min_io 引數。 有關 rr_min_io_rq 引數的參考 4 DM-Multipath 配置檔案
在可以將 dev_loss_tmo 配置檔案引數無限大, 這樣就將實際 sysfs
2147483647 秒, 或者 68 年。 有關個引數的參考 4 DM-Multipath 配置檔案
已更新 5.2 root 檔案系一路徑裝置到多路徑裝置描述的程。
1.1.4 . 帽企 Linux 6.3 中新的和更改的功能
帽企 Linux 6.3 包括以下文件和功能更新及更改。
queue_without_daemon 配置檔案引數默認值已改 no
max_fds 配置檔案引數默認值已改 no
在可在 multipath.conf 配置檔案的 defaults, multipaths devices 部分配置
user_friendly_names 配置檔案引數。
multipath.conf 配置檔案的 defaults 部分支援新的 hwtable_regex_match 引數。
有關配置檔案引數參考 4 DM-Multipath 配置檔案
1.1.5. 帽企 Linux 6.4 中新的和更改的功能
帽企 Linux 6.4 包括以下文件和功能更新及更改。
multipath.conf 配置檔案的 defaults 部分和 devices 部分支援新的
retain_attached_hardware_handler 引數和新的 detect_prio 引數。 有關配置參考
4 DM-Multipath 配置檔案
個文件在包括新的一 3.4 initramfs 檔案系啟動 Multipath”
1.2. DM-Multipath 概述
可使用 DM-Multipath 提供:
冗餘
DM-Multipath 可在主/配置中提供出冗餘。 在主/配置中, 只有一半的路徑在每次 I/O
使用。 如果 I/O 路徑的任意元素( 電纜 機或者控制器) 故障, 就會將 DM-Multipath
用路徑。
的效能
可將 DM-Multipath 配置/模式, 其中將 I/O 調度演算法方式分佈到所有路徑中。 在有些配
置中, DM-Multipath 可在 I/O 路徑中檢測負載動態重新平衡負載
1.1 “一個 RAID 裝置的主/多路徑配置演示在服器和 RAID 裝置 I/O 路徑的主/
配置。 裡服器中有 HBA SAN 機以及 RAID 控制器。
1 裝置對映器多路徑
13
1.1. 一個 RAID 裝置的主/多路徑配置
個配置中, 一個 I/O 路徑通 hba1 SAN1 以及控制器 1 一個 I/O 路徑通 hba2 SAN2 以及控制
2 個配置中有很多地方可能出故障:
HBA 故障
FC 電纜故障
SAN 機故障
列控制器埠故障
如果配置了 DM-Multipath 在所有些地方出故障都會使 DM-Multipath I/O 路徑。
1.2 “帶兩 RAID 裝置的主/多路徑配置演示更復的主/配置, 其中服器中有
HBA SAN 機以及 RAID 裝置 每個帶兩 RAID 控制器。
帽企 Linux 6 裝置對映多路徑
14
1.2. 帶兩 RAID 裝置的主/多路徑配置
1.2 “帶兩 RAID 裝置的主/多路徑配置演示的示例中, 每個 RAID 裝置 I/O 路徑(
1.1 “一個 RAID 裝置的主/多路徑配置示的示例相同) 配置了 DM-多路徑, I/O 路徑中任意
點到任意 RAID 裝置發錯誤時 DM-多路徑都會那個裝置 I/O 路徑。
1.3 “一個 RAID 裝置的主/多路徑配置演示在服器中有 HBA 一個 SAN 機以及
RAID 控制器的主/配置。 在服器和存儲裝置間有四條 I/O 路徑:
hba1 到控制器 1
hba1
到控制器 2
hba2
到控制器 1
hba2
到控制器 2
個配置中, 可將 I/O 分佈到那四條路徑中。
1.3. 一個 RAID 裝置的主/多路徑配置
1.3. 儲陣列支援
情況下, DM-Multipath 支援大多數常用的、 支援 DM-Multipath 的存儲陣列。 您可在
multipath.conf.defaults 檔案中找到些支援的裝置 如果您的存儲陣列支援 DM-Multipath 且未在
個檔案中默認設置, 您可能需要將其新增到 DM-Multipath 配置檔案 multipath.conf 中。 有關 DMMultipath 配置檔案的參考 4 DM-Multipath 配置檔案
有些存儲陣列需要特殊的 I/O 錯誤和路徑切換處理。 些都需要獨立的硬體理器核心模
1.4. DM-Multipath
1.1 “DM-Multipath 描述了 DM-Multipath 件。
2 多路徑裝置
15
1.1. DM-Multipath
描述
dm-multipath 核心模 路徑和路徑群重新指定 I/O 並支援出冗餘。
mpathconf 程式 配置並裝置對映器多路徑
multipath 命令 列出並配置 multipath 裝置 通常使用 /etc/rc.sysinit 啟動
可以在新增塊裝置時使用 udev 程式啟動
multipathd 護進 監視器路徑, 如果路徑故障並返回, 它可能會啟動路徑群切
多路徑裝置提供互修改。 /etc/multipath.conf 檔案的任
何修改都必須啟動它。
kpartx 命令 為裝置中的分割槽生成裝置對映器裝置 個命令對帶 DM-MP DOS
分割槽是很必要的。 kpartx 在其自身件包中就存在, devicemapper-multipath 件包要依它。
1.5. DM-Multipath 置概述
DM-Multipath 包含適用於常多路徑配置已編譯的默認設置。 安裝 DM-multipath 通常很簡單
以下是您的系配置 DM-multipath 的基本步
1. 安裝 device-mapper-multipath rpm
2. 使用 mpathconf 命令建配置檔案並用多路徑。 如果您不需要編輯該配置檔案, 可以使用
個命令啟動多路徑守護進程。
3. 如需要, 請編輯 multipath.conf 配置檔案, 修改默認值並儲存更新的檔案:
4. 啟動多路徑守護進程。
有關多路徑配置的詳細安裝明示例參考 3 DM-Multipath
帽企 Linux 6 裝置對映多路徑
16
2 多路徑裝置
沒有 DM-Multipath 從服點到存控制器的所有路徑都將被系統視為獨立的裝置 即使接相同服
點到相同存控制器的 I/O 路徑也不例外。 DM-Multipath 提供了邏輯管理 I/O 路徑的方法, 即在基礎設
部生成一多路徑裝置
2.1. 多路徑裝置識別
每個多路徑裝置都有一個全球識別符( WWID 它是一個全球唯一的無法更改的號 情況下會將多
路徑裝置的名稱它的 WWID 外, 可以在多路徑配置檔案中 user_friendly_names
選項 該選項可將設為格式 mpathn 點唯一名稱。
例如:當將有 HBA 點使用一個不分割槽 FC 附加到有個埠的存控制器中 可看到四個
/dev/sda /dev/sdb dev/sdc /dev/sdd DM-Multipath 生成有唯一 WWID 裝置
裝置可將 I/O 根據多路徑配置重新路由到那四個基礎裝置 當將 user_friendly_names 配置
yes 會將多路徑裝置的名稱 mpathn
當在 DM-Multipath中新增新裝置時 些新裝置會位於 /dev 個不同位
置:/dev/mapper/mpathn /dev/dm-n
/dev/mapper 中的裝置是在引導過程中生成的。 可使用裝置訪問多路徑裝置 例如在生成邏輯

所有 /dev/dm-n 格式的裝置都只能是作內部使用, 不要使用它
有關多路徑配置默情, 包括 user_friendly_names 配置選項 參考 4.3 配置檔案默認設

可以使用多路徑配置檔案 multipaths 部分的 alias 選項將多路徑裝置名稱設為選擇的名稱。
關多路徑配置檔案 multipaths 部分的參考 4.4 多路徑裝置配置屬性
2.2. 在叢集中保持多路徑裝置名稱一致
當將 user_friendly_names 配置選項設為 yes 多路徑裝置的名稱點來是唯一的, 但不
證對使用多路徑裝置的所有點都一致。 如果您 multipath.conf 配置檔案的 multipaths
部分中的裝置設 alias 選項 名稱不會自在叢集的所有點中保持一致。 如果您使用 LVM 在多路徑
裝置邏輯裝置 問題 但如果您需要將您的多路徑裝置名稱在叢集中的每個點上都保持一
致, 不要將 user_friendly_names 選項設 yes 且不要那些裝置配置名。 情況下,
果您不將 user_friendly_names yes 或者某個裝置配置名, 則裝置名稱將是該裝置
WWID 它是不會的。
如果您要系的用友好名稱在叢集的所有點中都一致, 您可按照以下步操作:
1. 在一臺機器中定所有多路徑裝置
2. 行以下命令在其他機器中禁用所有 multipath 裝置
# service multipathd stop
# multipath -F
3. 將第一臺機器中的 /etc/multipath/bindings 檔案複製到叢集中的其它所有機器中。
4. 使用以下命令在叢集的其他機器中重新 multipathd 護進程:
# service mutipathd start
3 DM-Multipath
17
如果您新增新裝置 您將需要重複程。
如果您某個裝置配置名以便在叢集的點中使其保持一致, 確定 /etc/multipath.conf
檔案於叢集中的每個點都是一的, 如下:
1. 機器 multipath.conf 檔案中的多路基功能裝置配置名。
2. 行以下命令在其他機器中禁用所有 multipath 裝置
# service multipathd stop
# multipath -F
3. 將第一臺機器中的 /etc/multipath.conf 檔案複製到叢集中的其它所有機器中。
4. 使用以下命令在叢集的其他機器中重新 multipathd 護進程:
# service mutipathd start
當您新增新裝置時 您將需要重複程。
2.3. 多路徑裝置屬性
user_friendly_names alias 選項外, multipath 裝置有大量屬性。 您可以具體 multipath 裝置
修改些屬性, 方法是在 multipath 配置檔案的 multipaths 部分那個裝置創建一個條目。 有關
multipath 配置檔案 multipaths 部分的參考 4.4 多路徑裝置配置屬性
2.4. 邏輯卷中的多路徑裝置
生成多路徑裝置後, 多路徑裝置的名稱可以與您生成一個 LVM 物理卷使用的物理裝置名稱相同。 例如:
如果多路徑名稱 /dev/mapper/mpatha 以下命令可將 /dev/mapper/mpatha 標記為一個物理
卷。
pvcreate /dev/mapper/mpatha
您可以如在使用其它 LVM 物理裝置 LVM 組時使用得到的 LVM 物理卷。
注意
如果您要在配置了分割槽的整個裝置 LVM 物理卷, pvcreate 命令將會失 注意:如果您
不具體指定每個塊裝置 Anaconda Kickstart 安裝程式會生成空分割槽表。 您可以使用 kpartx -d
fdisk 命令有分割槽。 如果您的系有大於 2 TB 塊裝置 您可使用 parted 命令除分
區。
當您建一個使用主/多路徑列的 LVM 邏輯卷作物理裝置時 應該 lvm.conf 中新增
器, 這樣可以排除成多路徑裝置的磁 是因如果列在接收 I/O 將主路徑改
徑, 過濾裝置 LVM 描被路徑 多路徑將行出冗餘並行出 於需
要使用命令啟用被路徑的主/動陣列, LVM 會在種情況時給出警告資訊。
過濾 LVM 配置檔案( lvm.conf 中的所有 SCSI 裝置 檔案的 devices 部分新增以下過濾器。
filter = [ "r/block/", "r/disk/", "r/sd.*/", "a/.*/" ]
帽企 Linux 6 裝置對映多路徑
18
3 DM-Multipath
本章提供了配置 DM-Multipath 的分步示例, 其中包括以下步
基本 DM-Multipath
忽略本地磁
在配置檔案中新增更多裝置
initramfs 檔案系啟動 Multipath
3.1. DM-Multipath
在您的系中安裝 DM-Multipath 前, 確定您的系經進行了升 其中包括 device-mappermultipath 件包的升
您可使用 mpathconf 程式置多路徑, 它可建多路徑配置檔案 /etc/multipath.conf
如果 /etc/multipath.conf 檔案已存在, mpathconf 程式將會編輯該檔案。
如果 /etc/multipath.conf 檔案不存在, mpathconf 程式將使用 /usr/share/doc/devicemapper-multipath-0.4.9/multipath.conf 檔案作起始檔案。
如果 /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf 檔案不存在,
mpathconf 程式將從開始 /etc/multipath.conf 檔案。
如果您不需要編輯 /etc/multipath.conf 檔案, 您可以行以下命令基本故障切配置 DMMultipath 個命令可用多路徑配置檔案並啟動 multipathd 護進程。
# mpathconf --enable --with_multipathd y
如果您需要在啟動 multipathd 護進程前編輯 /etc/multipath.conf 檔案, 使用以下步驟為基本
故障切配置 DM-Multipath
1. --enable 選項 mpathconf 命令:
# mpathconf --enable
有關您可能需要的 mpathconf 命令的其它選項 參考 mpathconf man page 或者 --
help
選項 mpathconf 命令。
# mpathconf --help
usage: /sbin/mpathconf <command>
Commands:
Enable: --enable
Disable: --disable
Set user_friendly_names (Default n): --user_friendly_names <y|n>
Set find_multipaths (Default n): --find_multipaths <y|n>
Load the dm-multipath modules on enable (Default y): --with_module <y|n>
start/stop/reload multipathd (Default n): --with_multipathd <y|n>
chkconfig on/off multipathd (Default y): --with_chkconfig <y|n>
2. 必要時請編輯 /etc/multipath.conf 檔案。 DM-Multipath 的默認設置會編譯到系中, 且無需在
/etc/multipath.conf 檔案中明確指出。
path_grouping_policy 的默認值設為 failover 因此在個示例中您不需要編輯
/etc/multipath.conf 檔案。 有關在配置檔案中將默認值其它數參考 4
3 DM-Multipath
19
DM-Multipath 配置檔案
在您系配置檔案的初始默部分配置您的系以便多路徑裝置的名稱格式 mpathn 如果沒有
置, 多路徑裝置的名稱將會是該裝置 WWID 名。
3. 需要儲存配置檔案並退出編輯器。
4. 行以下命令:
# service multipathd start
在配置檔案中將 user_friendly_name 值設為 yes 那麼生成的多路徑裝置
/dev/mapper/mpathn 有關將裝置名稱選擇名的方法, 參考 4 DM-Multipath 配置
檔案
如果您不想使用用友好的名稱, 您可以行以下命令:
# mpathconf --enable --user_friendly_names n
注意
如果您在啟動 multipath 護進程後發現需要編輯 multipath 配置檔案, 須執 service
multipathd reload
命令方可使更改生效。
3.2. 在生成多路徑裝置時忽略邏輯
有些機器在其內部磁中有本地 SCSI 卡。 不建裝置中使用 DM-Multipath 如果您將
find_multipaths 配置引數 yes 您不一定要將裝置列入黑名 有關
find_multipaths 配置引數的參考 4.3 配置檔案默認設
如果您沒有將 find_multipaths 配置引數 yes 您可以使用以下步修改多路徑配置檔案以便
在配置多路徑忽略本地磁
1. 確定些磁是內部磁並將其列入黑名
個示例中, /dev/sda 是內部磁 注意:因在默多路徑配置檔案中已經對行了配
置, 所以 multipath -v2 會在多路徑對映中示本地磁 /dev/sda
有關 multipath 命令出的參考 5.7 多路徑命令
帽企 Linux 6 裝置對映多路徑
20
# multipath -v2
create: SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1 undef WINSYS,SF2372
size=33 GB features="0" hwhandler="0" wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 0:0:0:0 sda 8:0
[---------
device-mapper ioctl cmd 9 failed: Invalid argument
device-mapper ioctl cmd 14 failed: No such device or address
create: 3600a0b80001327d80000006d43621677 undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:0 sdb 8:16 undef ready running
`- 3:0:0:0 sdf 8:80 undef ready running
create: 3600a0b80001327510000009a436215ec undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:1 sdc 8:32 undef ready running
`- 3:0:0:1 sdg 8:96 undef ready running
create: 3600a0b80001327d800000070436216b3 undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:2 sdd 8:48 undef ready running
`- 3:0:0:2 sdg 8:112 undef ready running
create: 3600a0b80001327510000009b4362163e undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:3 sdd 8:64 undef ready running
`- 3:0:0:3 sdg 8:128 undef ready running
2. 防止裝置對映器將 /dev/sda 與其多路徑對應 請編輯 /etc/multipath.conf 檔案的
blacklist 部分, 使其包括該裝置 然您可以使用 devnode 型將 sda 裝置列入黑名 但那並不
安全, 啟時無法保 /dev/sda 是同一個名稱。 要將獨的裝置列入黑名 您可以使用那個
裝置 WWID 將其列入黑名
注意:在 multipath -v2 命令的出中, /dev/sda 裝置 WWID SIBMESXSST336732LC____F3ET0EP0Q000072428BX1 要將裝置列入黑名
/etc/multipath.conf 檔案中新增以下內容。
blacklist {
wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
}
3. 在您更新 /etc/multipath.conf 檔案後, 您必動讓 multipathd 護進程重新
件。 以下命令可重新入更新的 /etc/multipath.conf 檔案。
# service multipathd reload
4. 行以下命令除多路徑裝置
# multipath -f SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
5. 看是否除了該裝置 您可以 multipath -ll 命令示當前的多路徑配置。 有關
multipath -ll 命令的參考 5.8 使用多路徑命令行多路徑查詢
要確定被列入黑名裝置沒有被重新新增回來, 您可以 multipath 命令, 如下所示。 如果您
4 DM-Multipath 配置檔案
21
沒有指定 -v 選項 multipath 命令默認詳細級為 v2
# multipath
create: 3600a0b80001327d80000006d43621677 undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:0 sdb 8:16 undef ready running
`- 3:0:0:0 sdf 8:80 undef ready running
create: 3600a0b80001327510000009a436215ec undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:1 sdc 8:32 undef ready running
`- 3:0:0:1 sdg 8:96 undef ready running
create: 3600a0b80001327d800000070436216b3 undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:2 sdd 8:48 undef ready running
`- 3:0:0:2 sdg 8:112 undef ready running
create: 3600a0b80001327510000009b4362163e undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:3 sdd 8:64 undef ready running
`- 3:0:0:3 sdg 8:128 undef ready running
3.3. 配置存儲裝置
情況下, DM-Multipath 包括大多數支援 DM-Multipath 的通用存儲陣列的支援。 配置值請參考
multipath.conf.defaults 檔案, 其中包括支援的裝置
如果您需要新增一個在默情況下不支援的存儲裝置已知多路徑裝置 請編輯
/etc/multipath.conf 檔案並插入正確的裝置資訊。
例如:要新增有關 HP Open-V 系列的資訊, 其條目示例如下, 其中 %n 為裝置名稱:
devices {
device {
vendor "HP"
product "OPEN-V."
getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
}
}
有關配置檔案 devices 部分的參考 4.5 配置檔案裝置
3.4. initramfs 檔案系啟動 Multipath
您可以在 initramfs 檔案系啟動 multipath 配置 multipath 後, 您可以使用 multipath 配置文
件重建 initramfs 檔案系 方法是以下選項 dracut 命令。
# dracut --force --add multipath --include /etc/multipath /etc/multipath
如果您在 initramfs 檔案系 multipath 並更改 multipath 配置檔案, 重建 initramfs
帽企 Linux 6 裝置對映多路徑
22
檔案系方可使更改生效。
4 DM-Multipath 配置檔案
23
4 DM-Multipath 配置檔案
情況下, DM-Multipath 大多數多路徑的使用提供配置 外, DM-Multipath 支援大多數常的、
DM-Multipath 的存儲陣列。 配置和支援的裝置請參考 /usr/share/doc/device-mappermultipath-0.4.9/multipath.conf.defaults 檔案。
您可以編輯 /etc/multipath.conf 覆蓋 DM-Multipath 的默配置。 如果有必要, 可以默配置文
件不支援的存儲陣列。
注意
您可以在 initramfs 檔案系 set up multipathing 如果您在 initramfs 檔案系
multipath 並可以更改 multipath 配置檔案, 您必重建 initramfs 檔案系以便使更改生效。
有關使用 multipath 重建 initramfs 檔案系的下個參考 3.4 initramfs 檔案系
啟動 Multipath”
本章提供瞭解析和修改 multipath.conf 檔案的情。 它包含以下小
配置檔案概述
配置檔案黑名
配置檔案默
配置檔案多路徑
配置檔案裝置
在多路徑配置檔案中, 您只需要指定需要的配置, 或者您想要修改的在 multipath.conf.defaults
件中指定的默認值 如果檔案中有和您的境不相關的部分或者您不需要更改默認值 您可以將其注
來, 在檔案的起始部分。
配置檔案使用正式描述法。
配置檔案的注版本參考 /usr/share/doc/device-mapper-multipathd-
0.4.9/multipath.conf.annotated

4.1. 配置檔案概述
多路徑配置檔案可分以下幾個部分:
blacklist
不被視為多路徑的具體裝置列表。
blacklist_exceptions
根據 blacklist 部分中的引數列出不在黑名中的多路徑裝置
defaults
DM-Multipath 的常認設置。
multipaths
各個獨立多路徑裝置的特性置。 些數覆蓋了在配置檔案的 defaults devices 部分中指
定的數
帽企 Linux 6 裝置對映多路徑
24
devices
各個存控制器的置。 些數覆蓋了在配置檔案的 defaults 部分指定的數 如果您要使
用不是默支援的存儲陣列, 您可能需要您的 devices 子部分。
當系決定多路徑裝置的屬性 首先它會檢查多路徑置, 然後是每個裝置置, 然後才是多路徑系
認設置。
4.2. 配置檔案黑名
多路徑配置檔案的 blacklist 部分指定在系配置多路徑裝置時不能使用的裝置 黑名中的裝置將無法
到多路徑裝置中。
在舊版帽企 Linux 中, multipath 嘗試為每個沒有明確放入黑名的路徑 multipath 裝置
帽企 Linux 6 中, 如果將 find_multipaths 配置引數 yes 那麼 multipath 將只在滿足以
下三個條件之一時創裝置
至少有個沒有列入黑名的路徑使用同一 WWID
可使用 multipath 命令手該裝置
有與之前建的多路徑裝置相同 WWID 的路徑( 即使那個多路徑裝置目前不存在) 建多
路徑裝置後, 多路徑會該裝置 WWID 以便在它看到有使用那個 WWID 的路徑即自再次
該裝置 可允多路徑自動選擇正確的路徑以便建多路徑裝置而無需編輯多路徑黑名
如果您之前建了一個 multipath 裝置而沒有使用 find_multipaths 引數, 然後您隨後將引數
yes 您需要除所有裝置 WWID 您不想從 /etc/multipath/wwids 檔案中將其
multipath 裝置 以下示示例 /etc/multipath/wwids 檔案。 WWID 由斜 / 括起來:
# Multipath wwids, Version : 1.0
# NOTE: This file is automatically maintained by multipath and multipathd.
# You should not need to edit this file in normal circumstances.
##
Valid WWIDs:
/3600d0230000000000e13955cc3757802/
/3600d0230000000000e13955cc3757801/
/3600d0230000000000e13955cc3757800/
/3600d02300069c9ce09d41c31f29d4c00/
/SWINSYS SF2372 0E13955CC3757802/
/3600d0230000000000e13955cc3757803/
如將 find_multipaths 引數 yes 您只需要將那些您不想使其具有多路徑功能的多路徑裝置
入黑名 通常不需要將裝置列入黑名
如果您需要將裝置列入黑名 您可以根據以下條件選擇
根據 WWID 4.2.1 根據 WWID 裝置列入黑名所述
根據裝置名稱, 4.2.2 根據裝置名稱將裝置列入黑名所述
根據裝置類型, 4.2.3 根據裝置類型將其加入黑名所述
情況下, 各種裝置類型都是列在黑名中的, 即使您將配置檔案的初始黑名部分注出來也是如此。
參考 4.2.2 根據裝置名稱將裝置列入黑名
4 .2.1. 根據 WWID 裝置列入黑名
您可根據全球識別符將獨的裝置列入黑名 即在配置檔案的 blacklist 部分加入 wwid 條目。
4 DM-Multipath 配置檔案
25
以下示例示了在配置檔案中可將 WWID 26353900f02796769 裝置列入黑名的行。
blacklist {
wwid 26353900f02796769
}
4 .2.2. 根據裝置名稱將裝置列入黑名
您可以根據裝置名稱將裝置類型列入黑名 以便在配置檔案 blacklist 部分的 devnode 條目中指定不
要將它到多路徑裝置中。
以下配置檔案中的可以將所有 SCSI 裝置放入黑名的行, 它將所有 sd* 裝置放入黑名
blacklist {
devnode "^sd[a-z]"
}
您可以使用配置檔案 blacklist 部分的 devnode 條目指定要列入黑名的每個裝置 而不是指定具體
型的所有裝置 不推薦使用後一種情況。 除非根據 udev 規則的靜對映, 無法保在重後每個
裝置的名稱是一的。 例如:重後, 某個裝置的名稱可能從 /dev/sda 變為 /dev/sdb
情況下, 以下 devnode 條目是編譯到默黑名中的。 些條目中加入黑名中的裝置一般不支援
DM-Multipath 要在裝置用多路徑, 您可能需要在配置檔案的 blacklist_exceptions 部分指
裝置 4.2.4 黑名之外的裝置所述。
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
}
4 .2.3. 根據裝置類型將其加入黑名
您可以在配置檔案的 blacklist 部分與 device 一同指定具體裝置類型。 以下例將所有 IBM DS4200
HP 裝置放入黑名
blacklist {
device {
vendor "IBM"
product "3S42" #DS4200 Product 10
}d
evice {
vendor "HP"
product "*"
}
}
4 .2.4 . 黑名之外的裝置
您可使用配置檔案的 blacklist_exceptions 部分被默加入黑名裝置啟用多路徑。
例如:如果您有大量裝置 但只有一個需要多路徑( WWID
3600d0230000000000e13955cc3757803 您不需要將您想要使用多路徑的裝置之外的每個裝置單
加入黑名 您只需要將所有裝置都加入黑名 然後在 /etc/multipath.conf 檔案中新增以下行以便
只允您想要使用多路徑的裝置
帽企 Linux 6 裝置對映多路徑
26
blacklist {
wwid "*"
} b
lacklist_exceptions {
wwid "3600d0230000000000e13955cc3757803"
}
當在配置檔案的 blacklist_exceptions 指定裝置時 您必以指定黑名的相同方法來指定例外情
況。 例如:在 devnode 黑名條目中指定的裝置無法使用 WWID 將其指定例外情況, 即使列入黑名
裝置 WWID 也不行。 devnode 例外也只適用於 devnode 條目, device 例外只適用於
device 條目。
4.3. 配置檔案默認設
/etc/multipath.conf 配置檔案包括 defaults 部分, 部分中將 user_friendly_names 引數
設為 yes 如下。
defaults {
user_friendly_names yes
}
可覆蓋 user_friendly_names 引數的默認值
配置檔案包括配置默模板。 部分要被注出來, 如下。
#defaults {
# udev_dir /dev
# polling_interval 5
# path_selector "round-robin 0"
# path_grouping_policy failover
# getuid_callout "/lib/dev/scsi_id --whitelisted --device=/dev/%n"
# prio const
# path_checker directio
# rr_min_io 1000
# rr_weight uniform
# failback manual
# no_path_retry fail
# user_friendly_names no
#}
要覆蓋任意配置引數的默認值 您可將個模板中相關的行復制到 defaults 部分並取消其注 例如:
要覆蓋 path_grouping_policy 引數以便用 multibus 覆蓋默 failover 將模板中正確的行
複製到配置檔案的 defaults 部分並取消它的注 如下。
defaults {
user_friendly_names yes
path_grouping_policy multibus
}
4.1 “多路徑配置默認設描述了在 multipath.conf 配置檔案 defaults 部分置的屬性。
會被 DM-Multipath 使用, 除非用 multipath.conf 配置檔案的 devices multipaths 部分指定的
屬性將其覆蓋。
4 DM-Multipath 配置檔案
27
注意
帽企 Linux 6.0 開始棄用 mode uid gid 引數。 device-mapper 裝置限( 包括
multipath 對映) udev 規則設定。 /usr/share/doc/device-mapper-version 中有一個模
板檔案, 12-dm-permissions.rules 您可以使用它並將其放在 /etc/udev/rules.d
中使其生效。
帽企 Linux 6 裝置對映多路徑
28
4 .1. 多路徑配置默認設
屬性 描述
polling_interval 以秒為單位指定次路徑檢查隔。 正常工作的路徑,
檢查間隔會逐增加到 polling_interval 的四倍。 認值為
5
udev_dir 生成 udev 裝置節點的目 認值為 /dev
multipath_dir 儲存動態共享象的目 認值依系而定, 通常
/lib/multipath
find_multipaths
義設定多路徑裝置的模式。 如果將個引數 yes 那麼多路
徑將不會嘗試為每個不在黑名中的路徑裝置 反之, 多路徑將
只在滿足以下三條件之一時創裝置
- 至少有個沒有列入黑名的路徑使用同一 WWID
- 使用 multipath 命令指定裝置該裝置
- 路徑有與之前建的多路徑裝置相同的 WWID 使用
find_multipaths 建多路徑裝置後, 多路徑都會該裝置
WWID 以便在再次看到使用那個 WWID 的路徑動創裝置
您自動選擇正確的所路徑建多路徑裝置而無需編輯多路徑黑名
如果之前您在沒有 find_multipaths 引數的情況下
了多路徑裝置 有關步驟請查 4.2 配置檔案黑名
認值為 no
verbosity 認詳情。 越高則詳細程度越高。 有效等 0 - 6 認值
2
path_selector
指定用來決定下一個 I/O 操作所使用路徑的默演算法。 可能的
括:
round-robin 0:在路徑中循每個路徑, 向每個路徑送同
數量的 I/O
queue-length 0:將下一 I/O 送到具有最少未 I/O 求的
路徑。
service-time 0:將下一 I/O 送到具有最短預計務時間的路
徑, 是由未 I/O 量除以每個路徑的相流量決定的。
認值為 round-robin 0
path_grouping_policy
指定用於未指定路徑的默路徑分策略, 可能的包括:
failover:每個群有一個路徑。
multibus:所有有效路徑在一個群中。
group_by_serial:每個檢測到的系列號有一個群。
group_by_prio:每個群有一個路徑 根據指
global per-controller 或者 per-multipath 選項調用程式決
4 DM-Multipath 配置檔案
29
定。
group_by_node_name:每個目標節點名有一個 標節
名儲存在 /sys/class/fc_transport/target*/node_name
檔案中。
認值為 failover
getuid_callout
指定默程式和引數調得唯一路基功能識別程式。 需要絕對
徑。
認值為 /lib/udev/scsi_id --whitelisted --
device=/dev/%n

prio
指定要得路徑所需調用的默程式及引數。 例如:SPC-3
ALUA 提供了一個可改 prio 可能的包括:
const所有路徑 1
emc EMC 列生成路徑
alua:根據 SCSI-3 ALUA 置生成路徑
tpg_pref:根據 SCSI-3 ALUA 置生成路徑 使用首

ontap NetApp 列生成路徑
rdac LSI/Engenio RDAC 控制程式生成路徑
hp_sw Compaq/HP 控制程式在啟用/等待模式中生成路徑

hds Hitachi HDS Modular 儲陣列生成路徑
認值為 const
features 多路徑裝置的默認額外功能。 有的唯一功能是
queue_if_no_path 其功能與將 no_path_retry 設為 queue
一致。 有關使用個功能可能出現問題情, 參考 5.6
queue_if_no_path 功能的問題
path_checker
指定用於決定路徑狀的默方法, 可能的包括:
readsector0該裝置的第一扇區。
tur:在該裝置 TEST UNIT READY
emc_clariion查詢 EMC Clariion 具體 EVPD 0xCO 以便決
定路徑。
hp_sw使用 Active/Standby 韌體的 HP 儲陣檢查路徑狀
rdac LSI/Engenio RDAC 控制器檢查路徑狀
帽企 Linux 6 裝置對映多路徑
30
directio:使用直接 I/O 取第一個扇區。
認值為 directio
failback
管理路徑群出
immediate 指定立即恢復到包含活路徑的最高級別路徑群。
manual 指定不需要立即恢復, 只有在操作者幹的情況下會
恢復。
followover 指定當路徑的第一個路徑成路徑時應執行自
恢復。 讓節點在一個求故障修復不會自恢復。
大於 0 的數字指定推 以秒錶示。
認值為 manual
rr_min_io 指定切到當前路徑的下一個路徑前路由到路徑的 I/O 求數。
用於行核心 2.6.31 之前的系 使用新版本的系統應
使用 rr_min_io_rq 認值為 1000
rr_min_io_rq 使用 request-based device-mapper-multipath 指定切到當前路徑
的下一個路徑前路由到路徑的 I/O 求數。 用於行當
前核心的系 在使用核心 2.6.31 版本之前的系統應使用
rr_min_io 認值為 1
rr_weight 如果將其設為 priorities 就不會在調 selector 選擇下一個
路徑前向路徑 rr_min_io 求, 而是由 rr_min_io 乘以路徑
決定送的求數, 即由 prio 功能決定。 如果將其
uniform 所有路徑都有相同的加 認值為 uniform
no_path_retry
個屬性的數字指定系在禁用列前應該試圖使用失的路徑的
次數。
fail 值說明立即失 無需排
queue 表示固定路徑前排不會停止。
認值為 0
user_friendly_names 如果將其設為 yes 即指定統應該使用檔案
/etc/multipath/bindings 為該多路徑分配一個持久且唯一的
名, 格式 mpathn 如果 no 即指定統應使用 WWID
為該多路徑的名。 這兩種情況下, 您在裡指定的數將被您
在配置檔案 multipaths 部分指定的具體裝置別名覆蓋。 認值為
no
queue_without_daemon 如果將其 no multipathd 護進程將在其關閉時禁用所有
裝置 認值為 no
flush_on_last_del 如果將其 yes multipathd 護進程將在除了最後一個到
某個裝置的路徑禁用查詢 認值為 no
max_fds multipath 可以開啟的檔案提示符以及 multipathd 護進程的
最大 ulimit -n 命令效果一致。 帽企 Linux 6.3
始, 認值為 max 該值限制到
/proc/sys/fs/nr_open 早的版本, 如果沒有
4 DM-Multipath 配置檔案
31
使用調程作開啟檔案提示符的最大 通常 1024
全起 如果大於 1024 將其路徑最大+32
checker_timeout 明確超時設定的 SCSI 命令的路徑檢查程式的超時時間
採用 sys/block/sdx/device/timeout 中指定的
fast_io_fail_tmo FC 程埠發現問題後, 無法在那個程埠裝置 I/O
SCSI 要等待的時間 認值應小於 dev_loss_tmo 將其
off 會禁用超 認值操作系決定。
dev_loss_tmo FC 程埠發現問題後, 到從除它之前 SCSI 要等待
時間 將其無限, 會將其 2147483647 秒, 或者
68 年。 認值操作系決定。
hwtable_regex_match
帽企 Linux 6.3 行本及之後的版本) 控制 multipath 如何使
用內嵌裝置配置整合配置檔案 devices 部分的裝置配置。
multipath.conf 檔案 devices 部分中的每個裝置配置都可以
建其自己的裝置配置, 也可以修改內嵌裝置配置。 帽企 Linux
6.3
之前, 如果某用戶裝置配置中的售商、 品以及修字串與內
裝置配置完全匹配, 則該配置中的選項就可以修改內嵌配置。
則該裝置配置就將被視為一個新配置。
如果將 hwtable_regex_match yes 使用正式匹
配。 售商、 品以及修字串都是正式。
裝置配置與內嵌裝置配置匹配。 個匹配可以同的方式
用於實際裝置售商、 品以及修字串是否與裝置配置字串
匹配以便決定為該裝置使用個配置。 如果用戶裝置配置匹配, 那麼
就使用用配置中的選項修改內嵌配置。 則該裝置配置就將
視為一個新配置。
retain_attached_hw_han
dler
帽企 Linux 6.4 及之後的版本) 如果將個引數 yes
scsi 為該路徑裝置附加可硬體控制程式碼, multipath 將不會
裝置使用 mutipath.conf 檔案指定的 hardware_handler
scsi 沒有附加硬體控制程式碼, multipath 繼續使用其配置的硬體
控制程式碼。 認值為 no
detect_prio 帽企 Linux 6.4 及之後的版本) 如果將個引數
yes multipath 將首先檢查該裝置是否支援 ALUA 如果支援,
動為該裝置分配 alua 排序器。 如果該裝置不支援 ALUA 按管用
方法確定排序器。 認值為 no
4.4. 多路徑裝置配置屬性
4.2 “多路徑屬性示您可以在 multipath.conf 配置檔案的 multipaths 部分每個具體多路徑
備設定的屬性。 些屬性只可用於指定的多路徑。 些默認設置可由 DM-Multipath 使用並覆蓋在
multipath.conf 檔案的 defaults devices 部分定的屬性。
帽企 Linux 6 裝置對映多路徑
32
4 .2. 多路徑屬性
屬性 描述
wwid 指定 multipath 屬性採用的多路徑裝置 WWID 個引數在
multipath.conf 檔案的個部分是必的。
alias 指定使用 multipath 屬性的多路徑裝置的符號名稱。 如果您使用的
user_friendly_names 必要將其 mpathn 這樣
能會與自分配的用友好名稱衝突, 出不正確的裝置節點名
稱。
path_grouping_policy
指定用於未指定路徑的默路徑分策略, 可能的包括:
failover = 每個群有一個路徑
multibus = 所有有效路徑在一個群中
group_by_serial = 每個檢測到的系列號有一個
group_by_prio = 每個路徑有一個
group_by_node_name = 每個目標節點名有一個
path_selector
指定用來決定下一個 I/O 操作所使用路徑的默演算法。 可能的
括:
round-robin 0:在路徑中循每個路徑, 向每個路徑送同
數量的 I/O
queue-length 0:將下一 I/O 送到具有最少未 I/O 求的
路徑。
service-time 0:將下一 I/O 送到具有最短預計務時間的路
徑, 是由未 I/O 量除以每個路徑的相流量決定的。
failback
管理路徑群出
immediate 指定立即恢復到包含活路徑的最高級別路徑群。
manual 指定不需要立即恢復, 只有在操作者幹的情況下會
恢復。
followover 指定當路徑的第一個路徑成路徑時應執行自
恢復。 讓節點在一個求故障修復不會自恢復。
大於 0 的數字指定推 以秒錶示。
prio
指定要得路徑所需調用的默程式及引數。 例如:SPC-3
ALUA 提供了一個可改 prio 可能的包括:
const所有路徑 1
emc EMC 列生成路徑
4 DM-Multipath 配置檔案
33
alua:根據 SCSI-3 ALUA 置生成路徑
tpg_pref:根據 SCSI-3 ALUA 置生成路徑 使用首

ontap NetApp 列生成路徑
rdac LSI/Engenio RDAC 控制程式生成路徑
hp_sw Compaq/HP 控制程式在啟用/等待模式中生成路徑

hds Hitachi HDS Modular 儲陣列生成路徑
no_path_retry
個屬性的數字指定系在禁用列前應該試圖使用失的路徑的
次數。
fail 值說明立即失 無需排
queue 表示固定路徑前排不會停止。
rr_min_io 指定切到當前路徑的下一個路徑前路由到路徑的 I/O 求數。
用於行核心 2.6.31 之前的系 使用新版本的系統應
使用 rr_min_io_rq 認值為 1000
rr_min_io_rq 使用 request-based device-mapper-multipath 指定切到當前路徑
的下一個路徑前路由到路徑的 I/O 求數。 用於行當
前核心的系 在使用核心 2.6.31 版本之前的系統應使用
rr_min_io 認值為 1
rr_weight 如果將其設為 priorities 就不會在調 selector 選擇下一個
路徑前向路徑 rr_min_io 求, 而是由 rr_min_io 乘以路徑
決定送的求數, 即由 prio 功能決定。 如果將其
uniform 所有路徑都有相同的加
flush_on_last_del 如果將其 yes multipathd 將在除最後一個到某個裝置的路
禁用排
user_friendly_names 如果將其設為 yes 即指定統應該使用檔案
/etc/multipath/bindings 為該多路徑分配一個持久且唯一的
名, 格式 mpathn 如果 no 即指定統應使用 WWID
為該多路徑的名。 這兩種情況下, 您在裡指定的數將被您
在配置檔案 multipaths 部分指定的具體裝置別名覆蓋。
以下示例示在配置檔案中為兩個特定多路徑裝置指定的多路徑屬性。 第一個裝置 WWID
3600508b4000156d70001200000b0000 符號名稱 yellow
示例中第二個多路徑裝置 WWID 1DEC_____321816758474 符號名稱 red 個示例
中, rr_weight 屬性被設為 priorities
帽企 Linux 6 裝置對映多路徑
34
multipaths {
multipath {
wwid 3600508b4000156d70001200000b0000
alias yellow
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}m
ultipath {
wwid 1DEC_____321816758474
alias red
rr_weight priorities
}
}
4.5. 配置檔案裝置
4.3 “裝置屬性示您可以 multipath.conf 配置檔案 devices 部分的每個獨立存儲裝置設定的屬
性。 些屬性可由 DM-Multipath 使用, 除非使用 multipath.conf 檔案 multipaths 部分包含該設
的路徑指定的屬性覆蓋 些屬性覆蓋了在 multipath.conf 檔案 defaults 部分定的屬
性。
情況下, 在多路徑配置中包括很多支援多路徑的裝置 裝置支援列在
multipath.conf.defaults 檔案中。 您可能不需要為這裝置修改默認值 但如果您想要修改默
您可以通在想要更改默認值裝置的配置檔案中新增一個條目來更改默認值 您可以為該裝置複製
multipath.conf.defaults 檔案中的裝置配置默認值 並覆蓋那些您想要更改的
要在配置檔案的個部分新增沒有默配置的裝置 您需要 vendor product 引數。 您可在
/sys/block/device_name/device/vendor /sys/block/device_name/device/model 檔案
中找到 其中 device_name 是要行多路徑操作的裝置 示例如下:
# cat /sys/block/sda/device/vendor
WINSYS
#
cat /sys/block/sda/device/model
SF2372
要指定的附加引數要具體裝置而定。 如果裝置是主/模式, 您通常不需要置附加引數。 您可能想要
path_grouping_policy 設為 multibus 其它您可能需要定的引數有 no_path_retry
rr_min_io 詳見 4.3 “裝置屬性
如果裝置是主/模式, 但它會自將路徑切到被路徑, 那麼您需要將檢查器功能改不需向路徑
I/O 測試其是否工作( 您的裝置將一直行出冗餘) 的功能。 幾乎意味著您將
path_checker 設為 tur 這對所有支援 Test Unit Ready 命令的 SCSI 裝置都適用。
如果該裝置需要一個特殊的命令切路徑, 那麼多路徑配置此裝置需要硬體理器核心模 當前的硬體
理器是 emc 如果這樣還不能滿足您的裝置 您可能無法多路徑配置該裝置
4 DM-Multipath 配置檔案
35
4 .3. 裝置屬性
屬性 描述
vendor 指定 device 採用的存儲裝置的零售商名稱, 例如 COMPAQ
product 指定 device 屬性使用的存儲裝置產品名, 比如 HSV110 (C)
COMPAQ

revision 指定存儲裝置品修訂識別程式。
product_blacklist 根據品指定用來將裝置列入黑名的正式。
hardware_handler
指定將在切路徑群或者 I/O 錯誤時用來行硬體具體作的
可能的包括:
1 emcEMC 儲陣列的硬體理程式。
1 aluaSCSI-3 ALUA 列的硬體理程式。
1 hp_swCompaq/HP 控制器的硬體理程式。
1 rdacLSI/Engenio RDAC 控制器的硬體理程式。
path_grouping_policy
指定用於未指定路徑的默路徑分策略, 可能的包括:
failover = 每個群有一個路徑
multibus = 所有有效路徑在一個群中
group_by_serial = 每個檢測到的系列號有一個
group_by_prio = 每個路徑有一個
group_by_node_name = 每個目標節點名有一個
getuid_callout 指定默程式和引數調得唯一路基功能識別程式。 需要絕對
徑。
path_selector
指定用來決定下一個 I/O 操作所使用路徑的默演算法。 可能的
括:
round-robin 0:在路徑中循每個路徑, 向每個路徑送同
數量的 I/O
queue-length 0:將下一 I/O 送到具有最少未 I/O 求的
路徑。
service-time 0:將下一 I/O 送到具有最短預計務時間的路
徑, 是由未 I/O 量除以每個路徑的相流量決定的。
path_checker
指定用於決定路徑狀的默方法, 可能的包括:
readsector0該裝置的第一扇區。
tur:在該裝置 TEST UNIT READY
emc_clariion查詢 EMC Clariion 具體 EVPD 0xCO 以便決
帽企 Linux 6 裝置對映多路徑
36
定路徑。
hp_sw使用 Active/Standby 韌體的 HP 儲陣檢查路徑狀
rdac LSI/Engenio RDAC 控制器檢查路徑狀
directio:使用直接 I/O 取第一個扇區。
features 多路徑裝置外功能。 有的唯一功能是 queue_if_no_path
它與將 no_path_retry 設為 queue 一致。 有關使用個功能可能
現問題情, 參考 5.6 queue_if_no_path 功能的

prio
指定要得路徑所需調用的默程式及引數。 例如:SPC-3
ALUA 提供了一個可改 prio 可能的包括:
const所有路徑 1
emc EMC 列生成路徑
alua:根據 SCSI-3 ALUA 置生成路徑
tpg_pref:根據 SCSI-3 ALUA 置生成路徑 使用首

ontap NetApp 列生成路徑
rdac LSI/Engenio RDAC 控制程式生成路徑
hp_sw Compaq/HP 控制程式在啟用/等待模式中生成路徑

hds Hitachi HDS Modular 儲陣列生成路徑
failback
管理路徑群出
immediate 指定立即恢復到包含活路徑的最高級別路徑群。
manual 指定不需要立即恢復, 只有在操作者幹的情況下會
恢復。
followover 指定當路徑的第一個路徑成路徑時應執行自
恢復。 讓節點在一個求故障修復不會自恢復。
大於 0 的數字指定推 以秒錶示。
rr_weight 如果將其設為 priorities 就不會在調 selector 選擇下一個
路徑前向路徑 rr_min_io 求, 而是由 rr_min_io 乘以路徑
決定送的求數, 即由 prio 功能決定。 如果將其
uniform 所有路徑都有相同的加
no_path_retry
個屬性的數字指定系在禁用列前應該試圖使用失的路徑的
次數。
fail 值說明立即失 無需排
5 DM-Multipath 管理及故障排除
37
queue 表示固定路徑前排不會停止。
rr_min_io 指定切到當前路徑的下一個路徑前路由到路徑的 I/O 求數。
用於行核心 2.6.31 之前的系 使用新版本的系統應
使用 rr_min_io_rq 認值為 1000
rr_min_io_rq 使用 request-based device-mapper-multipath 指定切到當前路徑
的下一個路徑前路由到路徑的 I/O 求數。 用於行當
前核心的系 在使用核心 2.6.31 版本之前的系統應使用
rr_min_io 認值為 1
fast_io_fail_tmo FC 程埠發現問題後, 無法在那個程埠裝置 I/O
SCSI 要等待的時間 認值應小於 dev_loss_tmo 將其
off 會禁用超
dev_loss_tmo FC 程埠發現問題後, 到從除它之前 SCSI 要等待
時間 將其無限, 會將其 2147483647 秒, 或者
68 年。
flush_on_last_del 如果將其 yes multipathd 護進程將在除了最後一個到
某個裝置的路徑禁用排
user_friendly_names 如果將其設為 yes 即指定統應該使用檔案
/etc/multipath/bindings 為該多路徑分配一個持久且唯一的
名, 格式 mpathn 如果 no 即指定統應使用 WWID
為該多路徑的名。 這兩種情況下, 您在裡指定的數將被您
在配置檔案 multipaths 部分指定的具體裝置別名覆蓋。 認值為
no
retain_attached_hw_han
dler
帽企 Linux 6.4 及之後的版本) 如果將個引數 yes
scsi 為該路徑裝置附加可硬體控制程式碼, multipath 將不會
裝置使用 mutipath.conf 檔案指定的 hardware_handler
scsi 沒有附加硬體控制程式碼, multipath 繼續使用其配置的硬體
控制程式碼。
detect_prio 帽企 Linux 6.4 及之後的版本) 如果將個引數
yes multipath 將首先檢查該裝置是否支援 ALUA 如果支援,
動為該裝置分配 alua 排序器。 如果該裝置不支援 ALUA 按管用
方法確定排序器。
以下示例示了多路徑配置檔案的 device 條目。
# }
# device {
# vendor "COMPAQ "
# product "MSA1000 "
# path_grouping_policy multibus
# path_checker tur
# rr_weight priorities
# }
#}
帽企 Linux 6 裝置對映多路徑
38
5 DM-Multipath 管理及故障排除
本章提供了在行的系中管理 DM-Multipath 的資訊, 其中包括以下部分:
重新定多路徑裝置大小
root 裝置動單一路徑裝置到多路徑裝置
swap 裝置動單一路徑裝置到多路徑裝置中。
多路徑守護進
大量 LUN 造成的問題
queue_if_no_path 功能的問題
multipath 命令
使用 multipath 命令行多路徑查詢
multipath 命令選項
dmsetup 命令行多路徑查詢
使用 multipathd 控制檯行故障排除
5.1. 重新定多路徑裝置大小
如果您要重新定多路徑裝置 按以下步操作。
1. 重新定您的物理裝置大小。
2. 使用以下命令 LUN 的路徑:
# multipath -l
3. 重新定您的路徑大小。 SCSI 裝置 rescan 檔案中寫入 1 以便 SCSI 驅動器重新描,
如以下命令:
# echo 1 > /sys/block/device_name/device/rescan
4. 行重新定多路徑大小的命令重新定您的多路徑裝置大小:
# multipathd -k'resize map mpatha'
5. 重新定檔案系大小( 沒有使用 LVM 或者 DOS 分割槽)
# resize2fs /dev/mapper/mpatha
5.2. root 檔案系一路徑裝置到多路徑裝置
如果您在一路徑裝置中安裝您的系 並後來在 root 檔案系中新增了一個路徑, 您需要將您的 root
檔案系到多路徑裝置中。 本小節記錄了從一路徑移到多路徑裝置程。
安裝 device-mapper-multipath 件包後行以下步
1. 行以下命令 /etc/multipath.conf 配置檔案, 入多路徑模 multipathd
chkconfig on
# mpathconf --enable
有關 mpathconf 命令出的參考 3.1 DM-Multipath”
5 DM-Multipath 管理及故障排除
39
2. 編輯 /etc/multipath.conf 檔案的 blacklist blacklist_exceptions 部分,
4.2 配置檔案黑名所述。
3. 要確定您正確定了配置檔案, 您可以 /sbin/multipath 命令, 使用 -v3 選項查多路徑
護進程是否嘗試為您的 root 裝置創建多路徑裝置 命令會失 root 裝置正在使用中,
命令的應該顯 root 裝置所在路徑列表。
應該可在命令出中看到有以下格式的行:
WWID H:B:T:L devname MAJOR:MINOR
例如:如果在 sda 或者它的一個分割槽中定您的 root 檔案系 您可在出中看到似如下的行:
===== paths list =====
...
1ATA WDC WD800JD-75MSA3 WD-WMAM9F 1:0:0:0 sda
8:0
...
在之後的果中, 應該可以看到分配多路經裝置 root 裝置
time | devname: ownership set to mpathdev
例如:示如下:
Jun 14 06:48:21 | sda: ownership set to mpatha
您將看到一條明告您無法使用命令的以下格式建多路經裝置
time | mpathdev: domap (0) failure for create/reload map
如上面的示例所示, 您可以在命令出中看到以下行:
Jun 14 06:48:21 | mpatha: domap (0) failure for create/reload map
4. 要使用 multipath 重建 initramfs 檔案系 使用附以下選項 dracut 命令:
# dracut --force --add multipath --include /etc/multipath /etc/multipath
5. 如果您的 root 裝置不是 LVM 卷, 且使用裝置名稱掛 您需要 fstab 檔案切換為適當的多路
裝置名稱。 如果您的 root 裝置 LVM 裝置或者使用 UUID 或者其它屬性掛 就不需要個步

a. 使用第三步中描述的步驟運行代 -v3 選項 /sbin/multipath 命令確定 root 裝置 WWID
b. /etc/multipath.conf 檔案中 root 裝置設名。
multipaths {
multipath {
wwid
WWID_of_root_device
alias rootdev
}
}
c. 編輯 /etc/fstab 並使用帶這個多路徑裝置 root 裝置舊的裝置路徑。
例如:如果您在 /etc/fstab 檔案中有以下條目:
帽企 Linux 6 裝置對映多路徑
40
/dev/sda1 / ext4 defaults 1 1
您可將條目更改如下:
/dev/mapper/rootdev / ext4 defaults 1 1
如果您要編輯 /etc/fstab 檔案, 需要編輯 /etc/grub/grub.conf 檔案, 並將 root 引數從
root=/dev/sda1 root=/dev/mapper/rootdev
編輯 grub.conf 檔案前條目應類似如下。
title Red Hat Enterprise Linux FoundationServer (2.6.32-71.24.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-71.24.1.el6.x86_64 ro root=/dev/sda1
rd_NO_LUKS
rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us
console=ttyS0,115200n8 crashkernel=auto
initrd /initramfs-2.6.32-71.24.1.el6.x86_64.img
編輯 grub.conf 檔案後條目應類似如下。
title Red Hat Enterprise Linux FoundationServer (2.6.32-71.24.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-71.24.1.el6.x86_64 ro
root=/dev/mapper/rootdev
rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16
KEYTABLE=us console=ttyS0,115200n8 crashkernel=auto
initrd /initramfs-2.6.32-71.24.1.el6.x86_64.img
6. 機器。
7. 配置 FC 開關以便可在機器中看到其它路徑。
8. 機器。
9. root 檔案系 '/' 是否在多路徑裝置中。
5.3. swap 檔案系一路徑裝置到多路徑裝置
情況下將 swap 裝置設為邏輯卷。 只要您在由該邏輯組組成的物理卷中配置多路徑。 就不要求在將
其配置多路徑裝置時有任何特殊配置。 如果您的 swap 裝置不是 LVM 卷, 且使用裝置名稱掛載該卷,
就需要編輯 fstab 檔案將其轉換為適當的多路徑裝置名稱。
1. /sbin/multipath 命令使用 -v3 選項確定 swap 裝置 WWID 號。 命令的應該在路徑
列表中 swap 裝置
您可以在命令出中看到有以下格式的行, swap 裝置
WWID H:B:T:L devname MAJOR:MINOR
例如:如果在 sda 或者它的分割槽中 swap 檔案系 您會在出中看到似如下的行:
===== paths list =====
...
1ATA WDC WD800JD-75MSA3 WD-WMAM9F 1:0:0:0 sda
8:0
...
2. /etc/multipath.conf 檔案中 swap 裝置配置名。
5 DM-Multipath 管理及故障排除
41
multipaths {
multipath {
wwid
WWID_of_swap_device
alias swapdev
}
}
3. 編輯 /etc/fstab 並使用帶這個多路徑裝置 root 裝置舊的裝置路徑。
例如:如果您在 /etc/fstab 檔案中有以下條目:
/dev/sda2 swap ext4 defaults 0 0
您可將條目更改如下:
/dev/mapper/swapdev swap ext4 defaults 0 0
5.4. 多路徑守護進
如果您在行多路徑配置遇到問題 應該確定多路徑守護進程正在行, 3 DM-Multipath
所述。 須運 multipathd 護進程以便使用多路徑裝置
5.5. 大量 LUN 造成的問題
當在某個點中新增大量 LUN 使用多路徑裝置可明 udev 裝置過濾其生成裝置節點所用的
時間 如果您遇到過這問題 您可在 /etc/udev/rules.d/40-multipath.rules 檔案中除以下
行解決問題
KERNEL!="dm-[0-9]*", ACTION=="add", PROGRAM=="/bin/bash -c '/sbin/lsmod |
/bin/grep ^dm_multipath'", RUN+="/sbin/multipath -v0 %M:%m"
行會在每次向該節點中新增塊裝置時讓 udev 裝置管理器 multipath 除了
行, multipathd 護進程仍將自生成多路徑裝置 在引導過程中仍將為帶多路徑根檔案系調
multipath 唯一的改就是沒有 multipathd 護進程不再自生成多路徑裝置 大多數多
路徑用說應該不是個問題
5.6. queue_if_no_path 功能的問題
如果在 /etc/multipath.conf 檔案中指定 features "1 queue_if_no_path" 那麼所有采用 I/O
操作的程都將被掛起直到恢復了一個或者多個路徑。 要避免種情況, /etc/multipath.conf
件中 no_path_retry N 引數( 其中 N 統應該某個路徑的次數)
當您 no_path_retry 引數 要從 /etc/multipath.conf 檔案中 features "1
queue_if_no_path"
選項 但如果您使用默認編譯為 features "1 queue_if_no_path" 選項的多
路徑裝置 很多 SAN 裝置都是如此) 您必新增 features "0" 覆蓋個默認設置。 您可以將
/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults 中您裝置
devices 部分複製到 /etc/multipath.conf 編輯以便適您的需要。
如果您需要使用 features "1 queue_if_no_path" 選項 且您遇到過這裡提到的問題 使用
dmsetup 命令特定 LUN 編輯運策略( 就是說對該特定 LUN 所有路徑都不可用) 例如:如果
您想要將多路徑裝置 mpath2 的策略從 "queue_if_no_path" "fail_if_no_path" 請執行以
下命令。
帽企 Linux 6 裝置對映多路徑
42
dmsetup message mpathc 0 "fail_if_no_path"
注意:您必指定 mpathn 名而不是路徑。
5.7. 多路徑命令
當您生成、 修改或者列出多路徑裝置時 您會得一個當前裝置組成的列印出, 格式如下。
於每個多路徑裝置
action_if_any: alias (wwid_if_different_from_alias) dm_device_name_if_known
vendor,product size=size features='features' hwhandler='hardware_handler'
wp=write_permission_if_known
與每個路徑群:
-+- policy='scheduling_policy' prio=prio_if_known
status=path_group_status_if_known
於每個路徑:
`- host:channel:id:lun devnode major:minor dm_status_if_known path_status
online_status
例如, 多路徑命令的出可能是如下形式:
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 6:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 7:0:0:0 sdf 8:80 active ready running
如果路徑已經啟用並準 I/O 那麼路徑的狀就是 ready 或者 ghost 如果路徑無法使用,
態為 faulty 或者 shaky 路徑的狀 multipathd 護進程根據在 /etc/multipath.conf
檔案中定的通訊行週期性更新。
dm 和路徑的狀相似, 但從核心來看, dm 個狀failed faulty active 涵蓋
所有其它路徑狀 少數情況下, 裝置的路徑狀 dm 暫時不同。
online_status 的可能值為 running offline offline 意味著 SCSI 裝置已被禁用。
注意
當生成或者修改一個多路徑裝置時 路徑群狀 dm 裝置名稱、 寫入限和 dm 是未知的。
外, 功能也不一定正確。
5.8. 使用多路徑命令行多路徑查詢
您可以使用 multipath 命令的 -l -ll 選項有多路徑配置。 -l 選項顯示從 sysfs 以及裝置
對映器中收集的多路徑拓資訊。 -ll 選項顯 -l 示的所有資訊以及統額外可用的其它件。
訂記錄
43
示多路徑配置 您可以使用 multipath 命令的 -v 選項指定三種詳細 指定 -v0 沒有
出。 指定 -v1 出生成或者更新的路徑名稱。 指定 -v2 出所有檢測到的路徑、 多路徑和裝置
射。
以下示例示了 multipath -l 命令的出。
# multipath -l
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 6:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 7:0:0:0 sdf 8:80 active ready running
以下示例示了 multipath -l1 命令的出。
# multipath -ll
3600d0230000000000e13955cc3757801 dm-10 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 19:0:0:1 sdc 8:32 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 18:0:0:1 sdh 8:112 active ready running
3600d0230000000000e13955cc3757803 dm-2 WINSYS,SF2372
size=125G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 19:0:0:3 sde 8:64 active ready running
`- 18:0:0:3 sdj 8:144 active ready running
5.9. 多路徑命令選項
5.1 “有用的 multipath 命令選項描述了一些您可能會用到的 multipath 命令選項
5.1. 有用的 multipath 命令選項
選項 描述
-l 示來自 sysfs 裝置對映器的當前多路徑配置。
-ll 示來自 sysfs 裝置對映器以及系中的其它可用件的當前多路徑配
置。
-f device 除命名的多路徑裝置
-F 除所有不使用的多路經裝置
5.10. 使用 dmsetup 命令確定裝置對映器條目
您可以使用 dmsetup 找出裝置對映器條目與多路徑的裝置對映。
以下命令示所有裝置對映器裝置及其主、 副號 副號確定 dm 裝置的名稱。 例如:副號 3 與多路徑
裝置 /dev/dm-3 映。
帽企 Linux 6 裝置對映多路徑
44
# dmsetup ls
mpathd (253:4)
mpathep1 (253:12)
mpathfp1 (253:11)
mpathb (253:3)
mpathgp1 (253:14)
mpathhp1 (253:13)
mpatha (253:2)
mpathh (253:9)
mpathg (253:8)
VolGroup00-LogVol01 (253:1)
mpathf (253:7)
VolGroup00-LogVol00 (253:0)
mpathe (253:6)
mpathbp1 (253:10)
mpathd (253:5)
5.11. 使用 multipathd 控制檯行故障排除
multipathd -k 命令是一個 multipathd 護進程的互介面。 行此命令將入互的多路徑控制
臺。 行此命令後, 您可以 help 得可用的命令列表。 您可以入互命令, 或者您可以
CTRL-D 退出。
multipathd 控制檯可用來在您的系問題時進行故障排除。 例如:以下命令會在退出控制檯前
示多路徑配置, 其中包括默配置。
# multipathd -k
> > show config
> > CTRL-D
以下命令確定多路徑已經識別了所有 multipath.conf 的修改。
# multipathd -k
> > reconfigure
> > CTRL-D
使用以下命令確定路徑檢查器工作正常。
# multipathd -k
> > show paths
> > CTRL-D

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1783411/,如需轉載,請註明出處,否則將追究法律責任。

相關文章