Linux LVM 镜像逻辑卷创建与故障恢复指南
 
                  更新时间 2025-09-02 09:48:41
                 
 
                    最近更新时间: 2025-09-02 09:48:41
                  
 本文档将指导您如何在 Linux 系统上制作 LVM 镜像逻辑卷,并提供从 LVM 镜像故障中恢复的步骤。
一、LVM 镜像卷概述
LVM 镜像卷通过在不同物理卷上维护相同数据的副本提供数据冗余,类似 RAID 1,当单个磁盘故障时能确保数据可用。关键特点包括:
- 实时数据同步:写入操作同时复制到所有镜像设备 
- 自动故障转移:主设备故障时自动切换到镜像副本 
- 在线恢复:可在系统运行时更换故障设备并重建镜像 
二、创建 LVM 镜像逻辑卷
本文档以 /dev/nvme0n1、/dev/nvme1n1 作为示例,操作时请根据实际情况进行替换。
1. 创建物理卷(PV)
pvcreate /dev/nvme{0,1}n12. 创建卷组(VG)
vgcreate data /dev/nvme0n1 /dev/nvme1n13. 创建镜像逻辑卷(LV)
lvcreate -l 100%FREE -m1 -n app data /dev/nvme0n1 /dev/nvme1n1命令参数说明:
- -l 100%FREE:使用卷组100%的可用空间
- -m1:创建1个镜像副本(共2份数据)
- -n app:逻辑卷名称为app
4. 创建文件系统并挂载
# 创建XFS文件系统
mkfs.xfs /dev/mapper/data-app
# 创建挂载点
mkdir /app
# 编辑/etc/fstab添加条目
echo "/dev/mapper/data-app /app xfs defaults 0 0" >> /etc/fstab
# 重新加载并挂载
systemctl daemon-reload
mount -a以上请根据业务实际使用情况替换挂载点和文件系统类型。
5. 验证镜像状态
lvs -a -o +devices输出示例:
  LV             VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                        
  app            data    rwi-aor---   9.99g                                    100.00           app_rimage_0(0),app_rimage_1(0)
  [app_rimage_0] data    iwi-aor---   9.99g                                                     /dev/nvme0n1(1)                
  [app_rimage_1] data    iwi-aor---   9.99g                                                     /dev/nvme1n1(1)                
  [app_rmeta_0]  data    ewi-aor---   4.00m                                                     /dev/nvme0n1(0)                
  [app_rmeta_1]  data    ewi-aor---   4.00m                                                     /dev/nvme1n1(0)    三、镜像逻辑卷故障恢复操作
当 LVM 镜像中的一个物理卷发生故障时,LVM 会自动将其转换为线性卷,系统仍可运行但失去冗余保护。以下是单个磁盘故障(/dev/nvme1n1损坏)恢复流程示例:
1. 检查卷组状态
vgdisplay data若显示 WARNING: VG data is missing PV 等警告信息,表明有设备丢失;此时有磁盘故障,但 LVM 镜像仍可挂载,读写操作不受影响。
2. 移除故障磁盘
# 从卷组中移除故障磁盘(卷组名 data 根据实际情况替换)
vgreduce --removemissing data --force注意
换盘前必须先从卷组中移除故障磁盘。
3. 更换完故障磁盘后添加新磁盘到卷组
# 初始化新磁盘
pvcreate /dev/nvme1n1
# 添加到卷组
vgextend data /dev/nvme1n14. 修复镜像卷
lvconvert --repair -y data/app5. 重新建立镜像副本
lvconvert -m1 -y /dev/data/app /dev/nvme0n1 /dev/nvme1n16. 确认镜像同步完成
lvs -a -o +devices输出示例:
  LV             VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                        
  app            data    rwi-aor---   9.99g                                    36.23           app_rimage_0(0),app_rimage_1(0)
  [app_rimage_0] data    iwi-aor---   9.99g                                                     /dev/nvme0n1(1)                
  [app_rimage_1] data    iwi-aor---   9.99g                                                     /dev/nvme1n1(1)                
  [app_rmeta_0]  data    ewi-aor---   4.00m                                                     /dev/nvme0n1(0)                
  [app_rmeta_1]  data    ewi-aor---   4.00m                                                     /dev/nvme1n1(0)    
  
  LV             VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                        
  app            data    rwi-aor---   9.99g                                    100.00           app_rimage_0(0),app_rimage_1(0)
  [app_rimage_0] data    iwi-aor---   9.99g                                                     /dev/nvme0n1(1)                
  [app_rimage_1] data    iwi-aor---   9.99g                                                     /dev/nvme1n1(1)                
  [app_rmeta_0]  data    ewi-aor---   4.00m                                                     /dev/nvme0n1(0)                
  [app_rmeta_1]  data    ewi-aor---   4.00m                                                     /dev/nvme1n1(0)    此时等到 Cpy%Sync 字段显示 100.00 后即同步完成。
