Linux 下的逻辑卷管理 LVM

时间:2023-9-5    作者:老伯伯    分类:


Linux 下的逻辑卷管理 LVM

LVM(Logical Volume Manager)是 Linux 下的一种逻辑卷管理方式。它可以抽象地将硬盘分区封装成为卷组(Volume Group)和逻辑卷(Logical Volume),从而实现硬盘空间的动态分配和扩容。

LVM 的工作原理

LVM 的工作原理如下:

  • 将硬盘分区初始化为物理卷(Physical Volume,PV)
  • 将多个 PV 汇聚为一个卷组(Volume Group, VG)
  • 在 VG 上创建逻辑卷(Logical Volume,LV),LV 才是真正的数据块存储区
  • 文件系统建立在 LV 之上,应用程序对 LV 进行读写

LVM 的安装

在 Linux 下安装 LVM 很简单,通常只需要安装 lvm2 软件包即可。

$ sudo apt-get install lvm2 # Debian/Ubuntu
$ sudo yum install lvm2 # CentOS/Red Hat

LVM 常用命令

LVM 的常用命令主要包括:

  • pvcreate:初始化物理卷
  • vgcreate:创建卷组
  • lvcreate:在卷组上创建逻辑卷
  • lvextend:扩展逻辑卷的空间
  • pvdisplay:显示物理卷的信息
  • vgdisplay:显示卷组的信息
  • lvdisplay:显示逻辑卷的信息

实际应用示例

假设我们有两块硬盘 /dev/sdb/dev/sdc,现在想要使用 LVM 来创建可扩容的数据分区。

初始设置

  1. /dev/sdb 初始化为 PV:

    pvcreate /dev/sdb
  2. 创建名为 datavg 的 VG:

    vgcreate datavg /dev/sdb
  3. 在 datavg 上创建名为 datalv 的 10G LV:

    lvcreate -L 10G -n datalv datavg
  4. 格式化并挂载 datalv:

    mkfs.ext4 /dev/datavg/datalv
    mount /dev/datavg/datalv /data

到此我们就得到了一个可用的逻辑卷 /dev/datavg/datalv 作为 /data 分区使用。

扩容

后期如果 /data 分区空间不足,我们可以很容易进行扩容:

  1. 将新硬盘 /dev/sdc 初始化为 PV,并加入 datavg:

    pvcreate /dev/sdc
    vgextend datavg /dev/sdc
  2. 扩展逻辑卷空间:

    lvextend -L +5G /dev/datavg/datalv
  3. 重新调整文件系统大小:

    resize2fs /dev/datavg/datalv

这样通过 LVM 即可轻松实现存储空间的动态扩展,无需担心物理磁盘分区不足。

总结

LVM 提供了磁盘分区抽象化管理的功能,可以将硬盘分区的物理限制解耦,实现存储空间的动态分配和扩展。上面介绍了 LVM 的工作原理、常用命令以及实际应用的示例,可以看到利用 LVM 可以非常方便地实现磁盘空间的热插拔和在线扩容。


扫描二维码,在手机上阅读