Linux 多路径(Multipath)挂载教程
Linux 下的 多路径 IO (Multipath I/O) 挂载流程
# 可以看到 sdb, sdc, sdd 三个物理路径都对应同一个 WWID (360...33a) 的 mpath 设备,说明多路径聚合成功。
root@xianshitest3day3:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 446.1G 0 disk
├─sda1 8:1 0 446G 0 part /
└─sda2 8:2 0 64M 0 part
sdb 8:16 0 1000G 0 disk
└─3600000000bc0a0000090a76e2bc7033a 253:0 0 1000G 0 mpath
└─3600000000bc0a0000090a76e2bc7033a-part1 253:1 0 1000G 0 part
sdc 8:32 0 1000G 0 disk
├─sdc1 8:33 0 1000G 0 part
└─3600000000bc0a0000090a76e2bc7033a 253:0 0 1000G 0 mpath
└─3600000000bc0a0000090a76e2bc7033a-part1 253:1 0 1000G 0 part
sdd 8:48 0 1000G 0 disk
└─3600000000bc0a0000090a76e2bc7033a 253:0 0 1000G 0 mpath
└─3600000000bc0a0000090a76e2bc7033a-part1 253:1 0 1000G 0 part
nvme0n1 259:0 0 1.7T 0 disk
nvme1n1 259:1 0 1.7T 0 disk
nvme2n1 259:2 0 1.7T 0 disk
└─nvme2n1p1 259:3 0 1.7T 0 part
nvme3n1 259:4 0 1.7T 0 disk
# 验证设备映射关系,确认 /dev/mapper 下的友好名称是指向真实的内核设备 (dm-x)。
# dm-0 是多路径聚合后的父设备,dm-1 是该设备上的第一个分区。
root@xianshitest3day3:~# ll /dev/mapper/3600000000bc0a0000090a76e2bc7033a
lrwxrwxrwx 1 root root 7 Dec 6 17:25 /dev/mapper/3600000000bc0a0000090a76e2bc7033a -> ../dm-0
root@xianshitest3day3:~# ll /dev/mapper/3600000000bc0a0000090a76e2bc7033a-part1
lrwxrwxrwx 1 root root 7 Dec 6 17:25 /dev/mapper/3600000000bc0a0000090a76e2bc7033a-part1 -> ../dm-1
# 查看多路径配置文件,定义多路径的聚合策略和黑白名单。关键点:这里配置了仅对厂商为 "BCSAN" 的设备启用多路径,并屏蔽了本地盘 (如 sda/nvme) 以免冲突。
root@xianshitest3day3:~# cat /etc/multipath.conf
defaults {
user_friendly_names no
path_grouping_policy multibus
default_selector "queue-length 0"
}
blacklist_exceptions {
device {
vendor "^BCSAN*"
product "^VIRTUAL-DISK*"
}
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
device {
vendor ".*"
product ".*"
}
}
devices{
device {
vendor "^BCSAN*"
product "^VIRTUAL-DISK*"
path_grouping_policy multibus
prio const
path_checker tur
path_selector "queue-length 0"
failback 15
rr_weight priorities
no_path_retry queue
}
}
# -------------------------------------------------------
# 以下为操作步骤
# -------------------------------------------------------
# 格式化分区,一定要对聚合后的多路径设备分区(part1)进行格式化,不要直接操作 sdb/sdc 等底层设备。-K 参数说明:保留文件系统块,不立即执行 discard/trim 操作,能让格式化瞬间完成。
root@xianshitest3day3:~# mkfs.ext4 -K /dev/mapper/3600000000bc0a0000090a76e2bc7033a-part1
# 创建挂载点并进行临时挂载,测试文件系统是否建立成功,能否正常读写。
root@xianshitest3day3:~# mkdir -p /data
root@xianshitest3day3:~# mount /dev/mapper/3600000000bc0a0000090a76e2bc7033a-part1 /data
# 配置开机自动挂载 (持久化),写入 fstab 前建议先备份。这里使用追加写入 (>>)。
root@xianshitest3day3:~# echo "/dev/mapper/3600000000bc0a0000090a76e2bc7033a-part1 /data ext4 defaults 0 0" >> /etc/fstab
# 验证 fstab 配置,在重启前必须测试 fstab 是否正确,否则配置错误会导致机器无法开机。如果没有报错,说明配置正确。
root@xianshitest3day3:~# mount -a
# 最终检查挂载状态
root@xianshitest3day3:~# df -h | grep data