直接用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 镜像空间以较小者为准,过大差异会浪费空间
三步创建镜像逻辑卷(全程在线)
按顺序执行以下命令,无需重启、无需停服务:
- 初始化物理卷:pvcreate /dev/nvme0n1 /dev/sdb
- 组建卷组:vgcreate vg_data /dev/nvme0n1 /dev/sdb
- 创建镜像 LV: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 /app——若成功,说明已自动转为线性模式
- 再运行 lvs,Attr 列变为 lwi-,Cpy%Sync 显示 0.00,即镜像中断但读写正常











