LVM逻辑卷

77 阅读4分钟

LVM概念

LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。LVM 适合于管理大存储设备,并允许用户动态调整文件系统的大小。此外,LVM 的快照功能可以帮助我们快速备份数据。LVM 为我们提供了逻辑概念上的磁盘,使得文件系统不再关心底层物理磁盘的概念。

  • 物理卷PV(Physical Volume):就是真正的物理硬盘或分区。
  • 卷组VG(Volume Group):将多个物理卷合起来就组成了卷组。组成同一个卷组的物理卷可以是同一块硬盘的不同分区,也可以是不同硬盘上的不同分区。我们可以把卷组想象为一块逻辑硬盘。
  • 逻辑卷LV(Logical Volume):卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据。我们可以把逻辑卷想象为分区。
  • 物理扩展PE(Physical Extend):PE 是用来保存数据的最小单元,我们的数据实际上都是写入 PE 当中的。PE 的大小是可以配置的,默认是 4MB。

LVM的优点:

  • LVM是可以允许对卷组进行方便操作的抽象层,包括重新设定文件系统的大小。
  • 允许在多个物理设备间重新组织文件系统。
  • 可以弹性的更改LVM的容量。

LVM的管理命令

主要命令

功能物理卷管理卷组管理逻辑卷管理
scan 扫描pvscanvgscanlvscan
create 建立pvcreatevgcreatelvcreate
display 显示pvdisplayvgdisplaylvdisplay
remove 删除pvremovevgremovelvremove
extend 扩展——vgextendlvextend
reduce 减少——vgreducelvreduce

命令用法

pvcreate 设备名1 设备名2 [设备名3]...             //创建物理卷  

vgcreate 卷组名 物理卷名1 物理卷名2 [物理卷3]...   //创建卷组

lvcreate -L 容量大小 -n 逻辑卷名 卷组名           //创建逻辑卷

mkfs.xfs 逻辑卷名(/dev/卷组名/逻辑名)           //将逻辑卷格式化

mount 逻辑卷名(/dev/卷组名/逻辑名)挂载点         //将逻辑卷挂载

vim /etc/fstab                               //将逻辑卷永久挂载

pvcreate 设备名4...                     //创建新的物理卷

vgextend 卷组名 物理卷名4                 //扩容卷组

lvextend -L +大小 /dev/卷组名/逻辑卷名   //扩容逻辑卷

xfs_growfs 挂载点                       //XFS文件系统扩容

resize2fs /dev/VG_NAME/LV_NAME         //EXT4文件系统扩容

#针对不同的文件系统,需使用对应的命令来扩容

LVM应用

image.png

逻辑卷配置示例

1.建立物理卷

先将磁盘的分区格式设置为Linux LVM(对应系统ID为8e)

disk /dev/sdb                                  #管理磁盘分区

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):t                       #切换id                      
分区号 (1,2,默认 2):2                        #选择分区号
Hex 代码(输入 L 列出所有代码):8e               #类型的id
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w                       #保存并退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

image.png

将/dev/sdb2和/dev/sdc建立物理卷

pvcreate /dev/sdb2  /dev/sdc
#创建物理卷,命令后面跟一整块磁盘,或者磁盘的分区

image.png 创建卷组vg01,并将2个物理卷分配给vg01

vgcreate vg01 /dev/sdb2 /dev/sdc
或者
vgcreate vg01 /dev/sd{b2,c}
#建立卷组,取名为vg01

image.png

从vg01中取10G容量创建逻辑卷mylvm

lvcreate -n mylvm -L 10G vg01

选项:
   -n 名字
   -L 指定大小
   -l 多少个PE(一个PE默认4M)

image.png

将逻辑卷mylvm格式化为XFS文件系统

mkfs.xfs /dev/vg01/mylvm

image.png

修改/etc/fstab 文件,将逻辑卷mylvm挂载到/data/mail目录下

mkdir /data/mail           #创建一个文件夹作为挂载点
blkid | grep mylvm         #查看逻辑卷mylvm的UUID
vim /etc/fstab             #修改配置文件
UUID="9a197b4f-f918-41f1-82f3-09aba58c3ff8 /data/mail  xfs defaults     0 0

image.png

image.png

mount -a        #重新挂载所有磁盘
df -Th          #查看磁盘信息,可以看到已成功挂载

image.png 逻辑卷扩容5G

逻辑卷的容量是从卷组中取的

  • 卷组容量足够扩容 直接扩容

  • 卷组容量不够 先扩容卷组 再扩容逻辑卷

      lvextend -L +5G /dev/vg01/mylvm    #为逻辑卷扩容5G
      lvdisplay  /dev/vg01/mylvm         #显示逻辑卷信息
      xfs_growfs /data/mail              #将文件系统扩容
      df -Th                             #查看磁盘信息,容量已变为15G
    

image.png

image.png image.png