«

Linux 多路径(Multipath)挂载教程

myluzh 发布于 阅读:68 NOTES


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

multipath


正文到此结束
版权声明:若无特殊注明,本文皆为 Myluzh Blog 原创,转载请保留文章出处。
文章内容:https://itho.cn/notes/551.html
文章标题:《Linux 多路径(Multipath)挂载教程