LVM故障模拟常用命令大全

#VibeCoding·九月创作之星挑战赛#

LVM 故障模拟与恢复命令大全

(涵盖物理卷、卷组、逻辑卷全场景)


一、物理卷(PV)故障模拟
  1. 模拟磁盘I/O错误

    # 触发设备I/O错误
    echo 1 > /sys/block/sdb/device/delete  
    

    效果:系统无法访问磁盘,LVM 报告 PV 丢失

  2. 软移除磁盘

    pvchange -x n /dev/sdb  # 禁止分配新空间
    

    效果:PV 状态变为不可用

  3. 强制标记PV为丢失

    pvdisplay --partial --verbose  # 查看PV UUID
    pvchange --uuid <原UUID> --newuuid 00000000-0000-0000-0000-000000000000 /dev/sdb
    

    效果:模拟元数据损坏


二、卷组(VG)故障模拟
  1. 破坏VG元数据

    dd if=/dev/zero of=/dev/sdb bs=512 count=1  # 覆盖LVM元数据
    

    效果vgdisplay 显示 “Cannot process volume group”

  2. 模拟VG不一致

    vgchange -an vg_test        # 停用卷组
    vgck --dump /etc/lvm/backup/vg_test.vg > corrupted.vg
    sed -i 's/consistent="1"/consistent="0"/' corrupted.vg
    cp corrupted.vg /etc/lvm/backup/vg_test.vg
    

    效果:激活卷组时报错 “Inconsistent metadata”


三、逻辑卷(LV)故障模拟
  1. 注入文件系统错误

    # 对XFS文件系统
    xfs_db -x -c "blocktrash -n 100" /dev/vg_test/lv_data  
    
    # 对ext4文件系统
    debugfs -w /dev/vg_test/lv_data -R "ssv last_error_time 1"
    

    效果fsck 检测到文件系统损坏

  2. 模拟LV数据损坏

    # 随机破坏前1MB数据
    dd if=/dev/urandom of=/dev/vg_test/lv_data bs=1M count=1 conv=notrunc
    

    效果:挂载后出现文件读取错误


四、高级故障场景
  1. 模拟RAID/LVM混合故障

    mdadm --fail /dev/md0 /dev/sdb1      # 软故障RAID成员盘
    pvchange -x n /dev/md0               # 禁用PV分配
    

    组合效果:多层存储故障

  2. 内核级故障注入

    # 需要内核配置CONFIG_FAULT_INJECTION
    echo 1 > /sys/kernel/debug/fail_make_request/probability
    echo 100 > /sys/kernel/debug/fail_make_request/times
    

    效果:随机磁盘I/O失败


五、恢复命令大全
场景恢复命令
PV丢失vgreduce --removemissing --force vg_test
VG元数据损坏vgcfgrestore -f /etc/lvm/archive/vg_test_00001.vg vg_test
LV文件系统损坏xfs_repair /dev/vg_test/lv_datafsck.ext4 -y /dev/vg_test/lv_data
激活部分丢失的VGvgchange -ay --partial vg_test
重建PV元数据pvcreate --restorefile /etc/lvm/backup/vg_test.vg /dev/sdb
修复LVM缓存lvconvert --repair vg_test/lv_cache

六、预防性命令
# 元数据备份
vgcfgbackup vg_test

# 启用LVM监控
lvmd --foreground --monitor &

# 定期一致性检查
lvconvert --checkconsistency vg_test/lv_data

# 创建快照用于安全测试
lvcreate -s -n lv_snapshot -L 1G /dev/vg_test/lv_data

操作原则

  1. 生产环境操作前务必备份:vgcfgbackup + 文件系统备份
  2. 优先使用 --test 参数模拟命令效果
  3. 复杂故障使用 dmsetup create 创建隔离测试环境
  4. 关键操作记录审计日志:lvm 2>&1 | tee /var/log/lvm_operation.log

此大全覆盖了LVM全栈故障模拟场景,建议在隔离环境中验证后应用于生产环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩公子的Linux大集市

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值