linux 如何创建vg
- Linux
- 2025-08-11
- 4
vgcreate
命令创建,如
vgcreate vgdata /dev/sdb1
,需提前初始化PV且未加入其他VG
在 Linux 系统中,逻辑卷管理(Logical Volume Manager, LVM) 是一种强大的磁盘管理工具,它允许管理员灵活地分配和管理存储资源,其中核心组件之一是 卷组(Volume Group, VG),它是物理卷(Physical Volume, PV)的集合,用于构建逻辑卷(Logical Volume, LV),以下是创建 VG 的完整指南,涵盖原理、步骤、命令详解、注意事项及常见问题解答。
前置条件与准备工作
硬件与系统要求
支持 LVM 的内核:现代 Linux 发行版(如 CentOS/RHEL 7+、Ubuntu Server)默认启用 LVM 支持。
空闲磁盘或分区:需提前规划未使用的磁盘或分区作为物理卷。
️ 重要提示:若对现有数据盘进行操作,务必先备份数据!LVM 初始化会擦除目标设备的所有数据。
常用工具链
工具 | 功能 | 典型命令示例 |
---|---|---|
pvcreate |
初始化物理卷 | pvcreate /dev/sdb |
vgcreate |
创建卷组 | vgcreate myvg /dev/sdb |
vgextend |
向卷组添加新物理卷 | vgextend myvg /dev/sdc |
vgdisplay |
显示卷组详细信息 | vgdisplay myvg |
vgs |
列出所有卷组 | vgs |
lvcreate |
在卷组内创建逻辑卷 | lvcreate -L 10G myvg |
lvextend |
扩展逻辑卷容量 | lvextend -L +5G /dev/myvg/lv1 |
lvreduce |
缩减逻辑卷容量 | lvreduce -L -3G /dev/myvg/lv1 |
创建卷组(VG)的详细步骤
步骤 1:准备物理卷(PV)
物理卷可以是整个磁盘或单个分区,但必须满足以下条件:
- 文件系统类型为空(未格式化)或已被清空。
- 分区 ID 设置为
LVM
(十六进制8e
),可通过fdisk
修改。
操作示例:
# 查看当前磁盘状态 lsblk # 假设选择 /dev/sdb 作为物理卷 sudo pvcreate /dev/sdb # 验证物理卷是否成功创建 pvs
输出应显示类似 /dev/sdb lvm2 [X.XX GiB]
的信息。
步骤 2:创建卷组(VG)
使用 vgcreate
命令指定卷组名称和关联的物理卷。
语法:
vgcreate <卷组名称> <物理卷列表>
示例:
sudo vgcreate myvg /dev/sdb
myvg
:自定义的卷组名称(建议有意义且唯一)。/dev/sdb
:已初始化的物理卷路径。
多物理卷合并:
若需将多个物理卷合并到一个卷组:
sudo vgcreate myvg /dev/sdb /dev/sdc /dev/sdd
步骤 3:验证卷组创建结果
通过以下命令检查卷组状态:
# 列出所有卷组及其属性 vgs # 查看特定卷组的详细信息 vgdisplay myvg
关键输出字段说明:
| 字段 | 含义 | 示例值 |
|——————–|—————————————|—————–|
| VG Name | 卷组名称 | myvg |
| VG Size | 卷组总容量 | 93.10 GiB |
| Max LV | 可创建的最大逻辑卷数量 | 256 |
| Cur LV | 当前已创建的逻辑卷数量 | 0 |
| Free Space | 剩余可用空间 | 93.10 GiB |
| PE Size | 物理扩展块大小(默认 4MB) | 4.00 MiB |
| Total PE | 总物理扩展块数量 | 23840 |
| Allocated PE | 已分配的物理扩展块数量 | 0 |
进阶操作与注意事项
向现有卷组添加新物理卷
当需要扩容时,可将新磁盘加入现有卷组:
sudo vgextend myvg /dev/sde
执行后,vgdisplay myvg
会显示更新后的 VG Size
和 Free Space
。
调整物理扩展块(PE)大小
默认 PE 大小为 4MB,可根据需求调整(仅适用于新建卷组):
sudo vgcreate --physical-extent-size=8M myvg /dev/sdb
️ 注意:修改 PE 大小会影响性能与碎片率,通常无需手动调整。
关键注意事项
风险点 | 解决方案 |
---|---|
误删生产环境数据 | 操作前通过 lsblk 确认设备用途,避免选择正在使用的磁盘/分区 |
跨控制器磁盘混合使用 | 不推荐!不同控制器的磁盘可能导致性能瓶颈或故障域不一致 |
RAID 阵列直接作为 PV | 需先通过硬件控制器或 MDRAID 软件创建 RAID,再将其整体作为物理卷 |
SSD + HDD 混合部署 | ️ 根据负载均衡策略决定是否混用,建议同类介质组成独立卷组以优化 I/O |
元数据冗余 | LVM 会自动在每块物理卷上存储元数据副本,单点故障不影响整体可用性 |
典型应用场景示例
场景 1:单机多系统共享存储池
# 初始化三块磁盘为物理卷 sudo pvcreate /dev/sdb /dev/sdc /dev/sdd # 创建共享卷组 storage_pool sudo vgcreate storage_pool /dev/sdb /dev/sdc /dev/sdd # 创建两个逻辑卷分别给 CentOS 和 Ubuntu sudo lvcreate -L 20G -n centos_root storage_pool sudo lvcreate -L 15G -n ubuntu_home storage_pool
场景 2:动态扩容数据库存储
# 原有卷组 data_vg 包含 /dev/sda # 新增磁盘 /dev/sdb 并扩展到卷组 sudo pvcreate /dev/sdb sudo vgextend data_vg /dev/sdb # 扩展逻辑卷 db_data 至最大可用空间 sudo lvextend -l +100%FREE data_vg/db_data
相关问答(FAQs)
Q1: 如何查看某个卷组中包含哪些物理卷?
A: 使用 vgdisplay
命令并过滤输出:
vgdisplay myvg | grep 'PV Name' -A5
或直接查看物理卷归属:
pvs --noheadings -o vgname,pvname | grep myvg
Q2: 如果不再需要某个卷组,该如何安全删除?
A: 删除卷组需按以下顺序操作(危险操作!请确保无活跃逻辑卷):
- 移除所有逻辑卷:
lvremove <逻辑卷路径>
- 删除卷组:
vgremove <卷组名称>
- 清除物理卷标记:
pvremove <物理卷路径>
警告:若跳过步骤1直接删除卷组,会导致数据永久丢失!建议仅在测试环境中尝试。
通过以上步骤,您已掌握 Linux LVM 中创建和管理卷组的核心技能,实际部署时,建议结合业务需求设计合理的存储架构,并定期监控磁盘使用率(可通过 df -h
和 lvdisplay
实现)。