0%

LVM基础

LVM操作

传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

LVM使用分层结构,如下图所示。

图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。

首先查看disk

fdisk -l

创建LVM

1、将物理磁盘设备初始化为物理卷(PV)

  • 例:初始化磁盘sdbsdc

    pvcreate /dev/sdb /dev/sdc

2、创建卷组(VG),并将PV加入卷组中

  • 例:创建名为linuxcast的VG,并加入sdb和sdc这两个PV

    vgcreate linuxcast /dev/sdb /dev/sdc

3、基于卷组(VG)创建逻辑卷(LV)

  • 例:基于名为linuxcast的VG,创建名为mylv的LV,大小为2G

    lvcreate -n mylv -L 2G linuxcast

4、为创建好的逻辑卷(LV)创建文件系统

  • mkfs.ext4 /dev/linuxcast/mylv

5、将格式化好的逻辑卷(LV)挂在(mount)使用

  • mount <LV_NAME> <FILE_DIRECOTRY>

  • mount /dev/linuxcast/mylv /mnt

查看LVM

查看物理卷(PV)信息

  • pvdisplay:详细
  • pvs

查看卷组(VG)信息

  • vgdisplay:详细
  • vgs

查看逻辑卷(LV)信息

  • lvdisplay:详细
  • lvs

删除LVM

删除LV:

  • 删除linuxcastVG下的名为mylv的LV

    lvremove /dev/linuxcast/mylv

删除VG

  • 删除名为linuxcast的VG

    vgremove linuxcast

删除物理卷(PV)

pvremove /dev/sdb

LVM的拉伸与缩小

LVM的拉伸操作可以在线执行(mount中),不需要卸载LVM

1,保证VG中有足够的空间

vgdisplay

2,扩充LVM

  • -L:要增加的大小

lvextend -L +1G /dev/linuxcast/mylv

3,查看扩充后LV大小

lvdisplay

4,更新文件系统

resize2fs /dev/linuxcast/mylv

5,查看更新后文件系统

df -h

拉伸一个卷组(VG)

1,将要添加到VG的硬盘格式化为PV

  • 把硬盘sdd格式化为PV

    pvcreate /dev/sdd

2,将新的PV添加到指定的卷组(VG)中

  • 添加到linuxcast VG中

    vgextend linuxcast /dev/sdd

3,查看扩充后VG大小

  • vgdisplay

缩小一个LV

必须离线执行(umount后)

1,卸载已经挂载的LV

  • umount /dev/linuxcast/mylv

2,检测磁盘错误

  • e2fsck /dev/linuxcast/mylv

3,缩小文件系统

  • resize2fs <LV的名称> <变更后size的大小>
  • ``resize2fs /dev/linuxcast/mylv 1G`

4,缩小LV

  • lvreduce -L -1G /dev/linuxcast/mylv

5,查看缩小后的LV

  • lvdisplay

6,重新挂载

  • mount /dev/linuxcast/mylv /mnt

缩小卷组(VG)

1,将一个PV从指定的卷组中移除

vgreduce linuxcast /dev/sdd

2,查看缩小后的卷组(VG)大小

vgdisplay