恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Linux底层存储路由配
首页
资讯中心
/
Linux底层存储路由配
Linux底层存储路由配
发布时间:2026/10/14 22:59:45
文章目录场景2DM-Multipath 多路径存储路由SAN存储重点完整部署Ubuntu/CentOS通用1. 安装multipath工具2. 生成multipath主配置文件3. 加载内核模块启动服务4. 扫描存储LUN生成多路径虚拟设备5. 查看存储路由信息场景3纯dmsetup手动自定义DM映射原生底层不推荐生产适合学习存储路由常用排查命令汇总# 场景1LVMdm-linear最常用本地存储路由 LVM底层就是dm-linear把多个物理磁盘PV组织成VG卷组再划分LV逻辑卷DM虚拟设备 /dev/mapper/vgname-lvname。 IO路由应用→文件系统→LV(dm) →映射到多个PV磁盘。 ### 步骤 1. 准备裸磁盘例如 /dev/sdb /dev/sdc无分区、无文件系统 bash # 创建PV物理卷 pvcreate /dev/sdb pvcreate /dev/sdc # 创建VG卷组把2块盘加入 vgcreate vg_data /dev/sdb /dev/sdc # 创建LV逻辑卷例如20G lvcreate -L 20G -n lv_data vg_data生成虚拟块设备/dev/mapper/vg_data-lv_data查看DM底层存储路由映射表dmsetup table vg_data-lv_data输出示例0 41943040 linear 8:16 0含义从逻辑块0开始总41943040块线性映射到设备主从号8:16(/dev/sdb)偏移0。如果跨多块盘会有多条映射条目。格式化挂载使用mkfs.ext4 /dev/mapper/vg_data-lv_datamkdir/datamount/dev/mapper/vg_data-lv_data /data开机自动挂载写入/etc/fstab/dev/mapper/vg_data-lv_data /data ext4 defaults 0 0扩容场景新增磁盘做成PVvgextend加到VGlvextend扩容LVDM会自动更新存储路由映射表。场景2DM-Multipath 多路径存储路由SAN存储重点适用服务器HBA卡连SAN同一个存储LUN多条光纤链路系统识别出多个sd设备/dev/sdb /dev/sdc实际是同一个LUN。multipath内核模块dm-multipath多条物理路径合并为1个虚拟设备 /dev/mapper/mpathX配置路径调度策略轮询/主备实现存储路由负载均衡、链路故障自动切换。完整部署Ubuntu/CentOS通用1. 安装multipath工具# Ubuntuaptinstallmultipath-tools-y# CentOS/RHELdnfinstalldevice-mapper-multipath-y2. 生成multipath主配置文件# CentOSmpathconf--enable# Ubuntu默认自带 /etc/multipath.conf如不存在手动新建编辑配置文件/etc/multipath.confdefaults { user_friendly_names yes # 使用mpathX友好命名 path_selector round-robin 0 # 路由策略round-robin轮询failover主备 path_grouping_policy multibus failback immediate no_path_retry fail } # 识别你的存储厂商LUN可添加blacklist屏蔽本地磁盘防止本地盘被误纳入multipath blacklist { devnode ^(sr|hd|vd|nvme) }path_selector存储路由策略round-robin 0轮询IO请求轮流分发所有可用链路存储负载均衡failover主备只用优先级最高主路径主链路断自动切备用链路数据库SAN常用。3. 加载内核模块启动服务modprobe dm-multipath modprobe dm-round-robin systemctlenable--nowmultipathd4. 扫描存储LUN生成多路径虚拟设备multipath-v25. 查看存储路由信息# 查看多路径拓扑重点查看每条路径状态multipath-ll# 查看dm-multipath底层映射表dmsetup table mpath0输出可以看到虚拟设备mpath0后端多条路径IO按照path_selector策略路由分发。之后使用/dev/mapper/mpath0作为存储设备不要直接使用底层/dev/sdb、/dev/sdc。可以在mpath之上继续做LVMpvcreate /dev/mapper/mpath0叠加多层存储路由。场景3纯dmsetup手动自定义DM映射原生底层不推荐生产适合学习直接用dmsetup手动编写存储路由映射表不依赖LVM工具。示例把/dev/sdb前10G映射为虚拟设备myvol# 创建映射起始块0块数量20971520linear映射 /dev/sdb偏移0echo0 20971520 linear /dev/sdb 0|dmsetup create myvol# 查看路由表dmsetup table myvol# 删除映射dmsetup remove myvol这种方式配置不会持久化重启失效生产用LVM/multipath自动管理dm映射。存储路由常用排查命令汇总lsblk# 查看块设备拓扑识别dm虚拟设备dmsetupls# 列出所有dm设备dmsetup table[设备名]# 查看底层IO映射路由最重要multipath-ll# 查看SAN多路径路由状态cat/proc/dmstats# DM IO统计iostat /dev/mapper/xxx# 查看虚拟设备IO负载blktrace# 抓底层bio请求追踪IO路由链路