Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 多路徑配置完整實戰:從安裝套件到多路徑裝置驗證

編輯:關於 Linux

多路徑將伺服器至存儲的多條物理路徑聚合為單一邏輯裝置(/dev/mapper/mpathX),提供路徑容錯、負載均衡與頻寬聚合。本文以 RHEL/CentOS 5/6/7 為例,涵蓋 device-mapper-multipath 套件安裝、multipath.conf 關鍵配置、服務啟動與 multipath -ll 驗證的完整流程。

多路徑架構示意圖

一、安裝套件

# RHEL/CentOS 5/6 (rpm)
rpm -ivh device-mapper-1.02.67-2.el5.x86_64.rpm
rpm -ivh device-mapper-event-1.02.67-2.el5.x86_64.rpm
rpm -ivh device-mapper-multipath-0.4.7-48.el5.x86_64.rpm

# RHEL/CentOS 7/8/9 (yum/dnf)
yum install device-mapper-multipath -y

二、設定開機自啟並檢核模組

chkconfig --level 345 multipathd on   # CentOS 5/6
systemctl enable multipathd           # CentOS 7+

lsmod | grep dm_multipath
# 輸出應含 dm_multipath、scsi_dh、dm_mod

三、配置 /etc/multipath.conf 關鍵區塊

defaults {
    udev_dir                /dev
    polling_interval        10
    selector                "round-robin 0"
    path_grouping_policy    multibus
    getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
    prio_callout            none
    path_checker            readsector0
    rr_min_io               100
    max_fds                 8192
    rr_weight               priorities
    failback                immediate
    no_path_retry           fail
    user_friendly_names     yes
}

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

# 註解掉預設黑名單(否則所有裝置皆被忽略)
# blacklist {
#     devnode "*"
# }
# defaults {
#     user_friendly_names yes
# }

關鍵參數說明

參數推薦值用途
path_grouping_policymultibus所有有效路徑歸為同一優先組(主動-主動)
path_checkerreadsector0讀取 Sector 0 檢查路徑存活(通用性最佳)
failbackimmediate故障路徑恢復即立即納入負載
no_path_retryfail所有路徑失敗時快速報錯(避免應用無限掛起)
user_friendly_namesyes邏輯裝置命名為 mpath0、mpath1 而非 WWID

四、載入模組、重新掃描並啟動服務

modprobe dm-multipath
multipath -F          # 清除現有多路徑對應
multipath -v2         # 詳細掃描並建立對應
service multipathd restart
# 或 systemctl restart multipathd

五、驗證多路徑裝置

multipath -ll
# 輸出範例
mpath1 (3600d02310000011b16a5d57c6a1bd99a) dm-0 TOYOU,NetStor_iSUM510
[size=3.3T][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=2][enabled]
 \_ 1:0:0:0 sdb 8:16  [failed][ready]
 \_ 1:0:1:0 sdc 8:32  [failed][ready]
  • mpath1:邏輯裝置名(user_friendly_names=yes)
  • 3600d023...:WWID(全域唯一識別碼)
  • dm-0:device-mapper 分配的次裝置號
  • round-robin 0:負載均衡策略
  • [failed][ready]:路徑狀態(檢查器判定失敗但裝置就緒,可能為暫時性)

六、後續管理常用指令

操作指令
查看狀態multipath -ll
手動觸發路徑檢查multipathd -k"check path sdb"
顯示拓撲圖multipathd -k"show topology"
重新載入配置systemctl reload multipathd
移除特定裝置多路徑multipath -f /dev/mapper/mpath1

七、存儲端配置提醒

  • 存儲端須將同一 LUN 透過多個目標埠映射給同一主機群組。
  • 主機 HBA 卡 WWN 需正確登錄於存儲主機群組。
  • 建議啟用存儲端的 ALUA(非對稱邏輯單元存取),配合 prio_callout 實現優選路徑。

完成上述配置,即可在 Linux 層面獲得透明的多路徑容錯與負載均衡,大幅提升存儲連線可用性。

Copyright © Windows教程網 All Rights Reserved