VG mirror中PV丢失处理过程

这里写图片描述

这里写图片描述

环境:
AIX6.1+HACMP+SAN存储

1、解除镜像,reduce vg

unmirrorvg rmapp21datavg hdisk3 hdisk7
reducevg rmapp21datavg hdisk3 hdisk7

HA环境下应使用smitty hacmp来解除vg和从vg里移除pv,否则会造成两边vg信息不同步。

2、删除PV

rmdev -dl hdisk2
rmdev -dl hdisk7

3、重新扫描设备

cfgmgr

4、重新把pv加入到VG中



由于开始直接unmirrorvg和reducevg移除的那两个pv,所以重新加回VG时报错,因为HA另一节点上还保留着该VG信息。
这里写图片描述
hacmp同步(

LVM(Logical Volume Manager)实现扩容、快照、灵活分区等高级功能的核心在于其三层抽象架构和动态元数据管理。以下是逐项技术原理解析: 一、LVM 核心架构 二、高级功能实现原理 1. 灵活分区(Logical Volume) ● 原理: LVM 将物理卷(PV)聚合成存储池(VG),从中按需划分逻辑卷(LV)。 突破物理限制:LV 可跨越多块物理硬盘(如将两块硬盘的PV加入同一个VG)。 ● 操作示例: vgcreate vg_data /dev/sda1 /dev/sdb1 # 将两块硬盘加入VG lvcreate -L 500G -n lv_apps vg_data # 创建跨越两块硬盘的LV ● 优势: 传统分区 /dev/sda1 只能使用单块盘空间,而LV /dev/vg_data/lv_apps 可跨盘分配存储。 2. 在线扩容(Extend LV) ● 原理: ○ 扩展LV:lvextend 直接修改LV的元数据(metadata),扩大逻辑边界。 ○ 扩展文件系统:resize2fs(ext4)或 xfs_growfs(XFS)通知文件系统新空间可用。 ● 操作流程: lvextend -L +100G /dev/vg_data/lv_apps # 1. 扩展LV逻辑边界 resize2fs /dev/vg_data/lv_apps # 2. 扩展文件系统(ext4) ● 关键技术: ○ 元数据动态更新:VG/LV的元数据存储在磁盘头部,调整时无需移动物理数据。 ○ 文件系统协作:现代文件系统支持在线扩容。 3. 快照(Snapshot) ● 原理:写时复制(Copy-on-Write, CoW) ○ 创建快照时:仅记录原始LV的数据块映射表,不复制实际数据(秒级完成)。 ○ 原始LV数据修改时: ⅰ. 将被修改的旧数据块复制到快照空间 ⅱ. 再写入新数据到原始LV ○ 读取快照时:自动组合未修改块(从原始LV) + 修改块(从快照区) ● 操作示例: lvcreate --size 10G --snapshot --name lv_apps_snap /dev/vg_data/lv_apps ● 关键技术: ○ CoW 元数据表:跟踪数据块变化(类似版本控制)。 ○ 空间效率:仅存储被修改的旧数据块(初始快照几乎不占空间)。 4. 精简配置(Thin Provisioning) ● 原理:按需分配物理存储 ○ 创建精简LV:仅声明逻辑大小(如1TB),实际物理空间为0。 ○ 写入数据时:动态从VG分配物理块(每次分配单位如1MB)。 ● 操作示例: # 1. 创建精简池(Thin Pool) lvcreate -L 100G -T vg_data/thin_pool # 2. 创建精简LV(逻辑大小1TB) lvcreate -V 1T -T vg_data/thin_pool -n lv_thin ● 关键技术: ○ 虚拟大小映射:LV逻辑地址 → 物理块地址的延迟绑定。 ○ 空间超额分配:多个LV的逻辑空间总和可超过VG实际容量(需监控避免写满)。 三、关键技术支撑 1. 元数据管理 ● 位置:存储在磁盘起始处的 VGDA(Volume Group Descriptor Area) ● 内容: ○ PV/UUID映射 ○ LV大小/位置 ○ 快照CoW映射表 ● 动态更新:所有变更先写日志再提交,避免崩溃损坏。 2. 数据块分配 ● PE(Physical Extent): ○ 物理卷被划分为固定大小的块(默认4MB)。 ○ LV由多个PE组成(可能来自不同PV)。 ● LE(Logical Extent): ○ LV内部逻辑块,与PE一一映射。 3. 快照的流程 四、为何LVM能安全实现这些功能? 1. 事务性元数据更新: 修改VG/LV结构时,先写日志再提交,避免断电崩溃导致不一致。 2. 原子操作: 快照创建、LV扩容等操作是原子的,不会出现"半完成"状态。 3. 与文件系统解耦: LVM只管理块设备,文件系统在其上独立运作(如ext4/XFS)。 💎 总结: LVM通过存储虚拟化层 + 动态元数据管理 + CoW技术,在保证数据安全的前提下: ● 用 VG 池化物理存储 → 实现灵活分区 ● 用 元数据实时扩展 → 实现在线扩容 ● 用 写时复制 → 实现零延迟快照 ● 用 块延迟分配 → 实现精简配置 硬盘损坏处理 当两块磁盘组成LVM逻辑卷,且其中一块磁盘损坏时,会发生以下情况: 1. LVM状态变化 ● 卷组(VG)状态变为部分(partial): vgdisplay 输出会显示: VG Status resizable, partial "partial"表示卷组中部分物理卷(PV)不可用 ● 物理卷(PV)状态变为丢失(missing): pvs 输出示例: PV VG Fmt Attr PSize PFree /dev/sda1 vg0 lvm2 a-m 100.00g 0 /dev/sdb1 vg0 lvm2 m- 100.00g 0 # "m-"表示缺失 2. 数据访问情况 ● 未损坏部分数据可访问: ○ 未损坏磁盘上的数据仍然可读 ○ 文件系统可能进入只读模式(取决于损坏位置) ● 损坏部分数据不可访问: ○ 当访问存储在损坏磁盘上的数据时: dmesg | grep error 会显示I/O错误: Buffer I/O error on device dm-0, logical block XXXXX 3. LVM操作限制 ● 无法执行常规操作: lvextend -l +100%FREE /dev/vg0/lv0 会报错: Cannot process volume group vg0 with partial PVs ● 需要强制选项: 任何LVM操作都需要--partial或--force参数: vgreduce --removemissing --force vg0 4. 恢复流程 步骤1:移除损坏的PV vgreduce --removemissing --force vg0 步骤2:检查剩余空间 vgdisplay vg0 输出将显示减少的容量: Alloc PE / Size 5000 / 100.00 GiB # 原为200GiB 步骤3:更换磁盘并重建 pvcreate /dev/sdc1 vgextend vg0 /dev/sdc1 lvextend -l +100%FREE /dev/vg0/lv0 5. 数据丢失风险 ● 线性模式(默认):损坏磁盘上的数据永久丢失 ● 镜像模式:数据仍完整(需立即修复): lvcreate -m1 -L 100G -n lv_mirror vg0 /dev/sda1 /dev/sdb1 损坏后状态: LV Status available, partial 6. 预防措施 ● 始终使用冗余: # RAID1 + LVM mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb pvcreate /dev/md0 ● 监控工具: # 检查PV状态 pvscan -s # 监控SMART状态 smartctl -a /dev/sda 关键总结: 情况 数据可访问性 恢复难度 风险等级 单磁盘损坏(线性) 部分数据丢失 高 ⚠️ 灾难性 单磁盘损坏(镜像) 全部数据保持 中 ⚠️ 可恢复 RAID1+LVM 无数据丢失 低 ✅ 安全 📌 最佳实践:生产环境应始终使用硬件RAID1或LVM镜像,并为关键数据配置定期备份(如rsync或btrfs send/receive)。单磁盘LVM配置仅适用于非关键临时数据。 帮我整理一下,同时输出一个思维导图
最新发布
07-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值