lvm mirror 可实现跨物理磁盘实时数据镜像,通过 pvcreate、vgcreate、lvcreate -m1 三步构建,支持故障自动降级与在线恢复。

直接用 LVM Mirror 就能实现跨物理磁盘的数据镜像,核心是让同一份数据实时写入两块(或更多)独立物理盘,硬件级冗余由此建立。它不依赖 RAID 卡,由内核 LVM 层统一管理,故障时自动降级为单盘运行,不影响业务连续性。
准备至少两块独立物理盘
镜像必须基于不同物理设备,不能是同一块盘的两个分区(否则无法防盘故障)。确认设备名并确保未被使用:
- 用 lsblk 或 lshw -class disk 查看真实磁盘,例如 /dev/nvme0n1 和 /dev/nvme1n1
- 若已有文件系统或 LVM 签名,先清空:dd if=/dev/zero of=/dev/nvme0n1 bs=1M count=100
- 确保两盘容量相近(LVM 会以较小者为准分配镜像空间)
创建镜像逻辑卷(-m1 是关键)
按顺序执行三步,全程无需重启或停服务:
- 初始化物理卷:pvcreate /dev/nvme0n1 /dev/nvme1n1
- 组建卷组:vgcreate vg_mirror /dev/nvme0n1 /dev/nvme1n1
-
创建镜像 LV:lvcreate -L 50G -m1 -n lv_data vg_mirror /dev/nvme0n1 /dev/nvme1n1
其中 -m1 表示保留 1 个额外副本(共 2 份),/dev/nvme0n1 /dev/nvme1n1 明确指定镜像成员盘
验证镜像状态与日志位置
运行 lvs -a -o +devices,输出中应看到类似结构:
- lv_data 行 Attr 列含 mwi-(表示 mirror+write-intent log)
- 下方带 [lv_data_rimage_0] 和 [lv_data_rimage_1] 的行,分别对应两块物理盘
- 带 [lv_data_mlog] 的行说明日志已自动创建(通常在较小盘或单独小盘上,用于记录同步状态)
故障模拟与自动接管验证
为确认冗余生效,可做安全测试:
- 卸载逻辑卷:umount /dev/vg_mirror/lv_data
- 强制屏蔽一块盘(如拔掉 nvme1n1 的电源或用 echo 1 > /sys/block/nvme1n1/device/delete)
- 重新挂载:mount /dev/vg_mirror/lv_data /mnt —— 若成功,说明 LVM 已自动转为线性模式继续服务
- 用 lvs 查看,Attr 列变为 lwi-(linear+write-intent),Cpy%Sync 为 0.00,表明镜像中断但读写正常
恢复时只需替换故障盘、pvcreate 初始化、vgextend 加入卷组、再用 lvconvert -m1 重建镜像,全程在线完成。











