首页 > 运维 > Linux > lvm精简卷
2020
11-20

lvm精简卷

命令解析

这是一个使用 LVM 创建精简池 的命令。

  • lvcreate: 逻辑卷管理工具中用于创建逻辑卷的命令。
  • -L 10G: 指定逻辑卷的大小。
    • -L 是 --size 的缩写,表示分配固定大小的空间。
    • 10G 表示容量为 10 GiB。
  • -T: 这是一个关键选项,它告诉 lvcreate 命令要创建的是一个精简池 或一个精简卷
    • 当 -T 后面跟的是一个卷组/池名 的组合时(如本例中的 vg_bricks/thinpool),它表示创建一个精简池
  • vg_bricks/thinpool: 指定了要创建的精简池的位置和名称。
    • vg_bricks: 是已经存在的卷组 的名称。
    • thinpool: 是即将在这个卷组中创建的精简池 的名称。中间的 / 是分隔符。

命令执行结果

行这条命令后,系统会:

  1. 从名为 vg_bricks 的卷组中,划出 10 GiB 的物理空间。
  2. 用这 10 GiB 的空间创建一个名为 thinpool 的精简池

这个 thinpool 本身是一个特殊的逻辑卷,它不直接存放文件系统数据,而是作为一个共享的资源池,为后续创建的精简卷提供存储空间。

通俗比喻

你可以把这个过程想象成:

  • 卷组: 一个巨大的空白硬盘空间(比如 100G)。
  • 精简池: 你从这 100G 中专门划出 10G,设立了一个“虚拟资金池”。
  • 后续的精简卷: 你可以基于这个“资金池”,创建多个总大小远超 10G 的“虚拟账户”(比如创建 3 个 10G 的卷,总共 30G)。这些“虚拟账户”承诺了最大可用空间,但实际只占用它们真正写入数据的那部分物理空间。

创建完精简池后,你通常会使用它来创建精简卷,命令类似于:

注意-V 用于指定精简卷的虚拟大小,这个大小可以超过物理池(thinpool)的实际大小(10G)。这就是** thin provisioning 的核心优势——超额配置**。

精简池扩容

当精简池中的空闲空间即将耗尽时,你需要对其进行扩容,以防止精简卷写入失败。扩容主要有两种方法:

方法一:扩大精简池的物理大小

这是最直接的方法,即从所属的卷组中分配更多的物理空间给精简池。

举例:
假设你的 vg_bricks 卷组还有剩余空间,现在想给 thinpool 增加 5GB 的物理空间。

执行后:

  • 精简池的总物理容量从 10GB 变成了 15GB(或 20GB)。
  • 之前创建的所有精简卷不受任何影响,可以立即使用新加入的空间,无需对它们进行任何操作。

方法二:先扩充分配给 LVM 的物理磁盘空间

如果卷组 vg_bricks 本身也没有空闲空间了,你需要先扩容底层物理卷,然后再扩容精简池。这是一个更底层的操作流程。

步骤 1:扩展物理磁盘

  • 这步在物理机或虚拟化层面完成。例如,在 VMware 中为虚拟机增加硬盘大小,或者在云平台上扩容云硬盘。

步骤 2:扩展物理卷

  • 假设你的物理卷是 /dev/sda1,扩展完磁盘后,需要让操作系统识别新的大小。

步骤 3:查看卷组空闲空间

  • 现在卷组 vg_bricks 应该有了新的空闲空间。

步骤 4:扩展精简池

  • 现在你可以使用 方法一 中的 lvextend 命令来扩展精简池了。

重要概念区分:精简池扩容 vs. 精简卷扩容

这一点非常重要,初学者很容易混淆:

操作对象命令示例目的与效果
扩容精简池lvextend -L +5G vg_bricks/thinpool增加“资金池”的真实资金。为所有精简卷提供更多的实际物理存储空间。这是为了防止空间耗尽。
扩容精简卷lvextend -L +3G vg_bricks/thin_vol1增加“虚拟账户”的信用额度。只是让一个特定的卷(如 thin_vol1)的最大可用空间变大了,但并没有立即消耗池里的物理空间。

简单来说:

  • 池子快满了(物理空间不足),你需要扩容精简池
  • 某个卷的空间不够用了(比如你的数据库文件快把分配给它的 5G 用完了),你需要扩容精简卷
最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。