当前位置:首页 > Linux > 正文

linux 如何创建vg

使用 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 命令指定卷组名称和关联的物理卷。

语法

linux 如何创建vg  第1张

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 SizeFree 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: 删除卷组需按以下顺序操作(危险操作!请确保无活跃逻辑卷):

  1. 移除所有逻辑卷:lvremove <逻辑卷路径>
  2. 删除卷组:vgremove <卷组名称>
  3. 清除物理卷标记:pvremove <物理卷路径>

警告:若跳过步骤1直接删除卷组,会导致数据永久丢失!建议仅在测试环境中尝试。


通过以上步骤,您已掌握 Linux LVM 中创建和管理卷组的核心技能,实际部署时,建议结合业务需求设计合理的存储架构,并定期监控磁盘使用率(可通过 df -hlvdisplay 实现)。

0