直接用lvm mirror可实现跨物理硬盘实时镜像,核心是同一数据同步写入两块独立硬盘建立硬件冗余;不依赖raid控制器,由内核lvm管理,单盘故障时自动降级为线性模式,业务无感知。

直接用 LVM Mirror 就能实现跨物理硬盘的数据实时镜像,核心是让同一份数据同时写入两块独立硬盘,硬件级冗余由此建立。它不依赖 RAID 控制器,由内核 LVM 层统一管理;单盘故障时自动降级为线性模式继续服务,业务无感知。
选对物理设备是前提
镜像必须基于真实独立的物理硬盘,不能是同一块盘的两个分区(否则无法防止单盘故障)。操作前请确认:
- 用 lsblk 或 lshw -class disk 查看设备,例如 /dev/nvme0n1 和 /dev/sdb(注意区分 NVMe 与 SATA 设备)
- 若设备已有文件系统或 LVM 签名,先清空元数据:dd if=/dev/zero of=/dev/nvme0n1 bs=1M count=100
- 两盘容量尽量接近——LVM 镜像空间以较小者为准,过大差异会浪费空间
三步完成镜像 LV 创建(全程在线)
无需重启、无需停服务,按顺序执行:
- pvcreate /dev/nvme0n1 /dev/sdb —— 初始化物理卷
- vgcreate vg_data /dev/nvme0n1 /dev/sdb —— 组建卷组
-
lvcreate -L 80G -m1 -n lv_app vg_data /dev/nvme0n1 /dev/sdb —— 创建镜像逻辑卷
其中 -m1 表示保留 1 个额外副本(共 2 份),末尾明确指定两块成员盘
验证镜像状态是否生效
运行 lvs -a -o +devices,正确输出应包含:
- 主 LV 行的 Attr 列含 mwi-(mirror + write-intent log)
- 下方带 [lv_app_rimage_0] 和 [lv_app_rimage_1] 的行,分别对应两块物理盘
- 带 [lv_app_mlog] 的行,说明日志已自动创建(通常放在较小盘的起始 PE 区域)
模拟故障测试自动接管能力
为验证冗余真实有效,可做安全测试:
- 卸载逻辑卷:umount /dev/vg_data/lv_app
- 模拟单盘离线(如拔掉 /dev/sdb 电源,或执行 echo 1 > /sys/block/sdb/device/delete)
- 重新挂载:mount /dev/vg_data/lv_app /mnt —— 若成功,说明已自动转为线性模式
- 再运行 lvs,Attr 列变为 lwi-,Cpy%Sync 显示 0.00,即镜像中断但读写正常











