lvm 卷组移除 pv 操作示例
基本步骤概述
要从 lvm 卷组(vg)中移除物理卷(pv),通常需要以下步骤:
- 检查当前 pv、vg 和 lv 信息
- 确保要移除的 pv 上没有数据或已迁移数据
- 从 vg 中移除 pv
- 可选:从 pv 中删除 lvm 元数据
详细操作示例
1. 查看当前 lvm 信息
# 查看物理卷(pv)信息 pvs pvdisplay # 查看卷组(vg)信息 vgs vgdisplay # 查看逻辑卷(lv)信息 lvs lvdisplay
2. 检查要移除的 pv 上是否有数据
# 查看 pv 上的 pe 使用情况 pvdisplay /dev/sdx # 检查是否有 lv 完全或部分位于该 pv 上 pvmove -n /dev/vg_name/lv_name /dev/sdx
3. 如果 pv 上有数据,需要先迁移数据
# 将数据从要移除的 pv 迁移到卷组中的其他 pv pvmove /dev/sdx # 如果只想迁移特定 lv 的数据 pvmove -n /dev/vg_name/lv_name /dev/sdx /dev/sdy
4. 从卷组中移除 pv
# 从卷组中移除 pv vgreduce vg_name /dev/sdx # 使用 --removemissing 选项自动移除所有缺失或空的 pv vgreduce --removemissing vg_name
5. 可选:从 pv 中删除 lvm 元数据
# 清除 pv 上的 lvm 元数据 pvremove /dev/sdx
完整示例
假设我们要从卷组 vg_data
中移除 /dev/sdb1
:
# 1. 查看当前信息 pvs vgs lvs # 2. 检查 /dev/sdb1 上的数据 pvdisplay /dev/sdb1 # 3. 如果有数据,迁移数据到其他 pv (如 /dev/sdc1) pvmove /dev/sdb1 /dev/sdc1 # 4. 从卷组中移除 pv vgreduce vg_data /dev/sdb1 # 5. 可选:清除 pv 的 lvm 元数据 pvremove /dev/sdb1
注意事项
- 确保要移除的 pv 上没有活动数据,否则会导致数据丢失
- 确保卷组中有足够的剩余空间来容纳迁移的数据
- 操作前最好备份重要数据
- 如果 pv 是系统启动必需的,不要移除它
- 某些操作可能需要先卸载文件系统
常见问题解决
如果遇到 “cannot remove last physical volume” 错误,表示你试图移除卷组中最后一个 pv,这是不允许的。必须先删除整个卷组或添加更多 pv。
如需移除整个卷组,可以使用:
vgremove vg_name
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论