Coding & Life

求知若饥,虚心若愚

0%

Linux逻辑卷(LVM)

逻辑卷(LVM)是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区部局,并提供一个抽象的盘卷,在盘卷上建立文件系统。可以利用LVM在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。当服务器添加新的硬盘后,管理员不必将原有的文件移动到新的硬盘上,而是通过LVM直接扩展文件系统来跨越物理硬盘

在Debian系统中使用lvs命令,如果找不到,说明未安装LVM系统,使用sudo apt-get install lvm2命令进行安装,CentOS一般默认安装LVM

创建分区

使用fdisk -l命令查看现有硬盘信息

发现有一个vdb硬盘未创建分区,为其创建3个分区,大小分别是10G、13G、27G,使用fdisk /dev/vdb命令

再次使用fdisk -l命令查看硬盘及分区信息,发现vdb硬盘下已有3个分区

创建物理卷

CentOS7以上系统,在创建卷组时会自动创建物理卷,可以省略此步骤

1
pvcreate /dev/vdb1 /dev/vdb2 /dev/vdb3

创建卷组

将3个分区中的1和2分区纳入到卷组中,卷组中共23G空间

1
vgcreate vg1 /dev/vdb1 /dev/vdb2

创建卷组时并不是只能指定分区,可以直接使用硬盘,如:vgcreate vg1 /dev/vdb,并且CentOS7以上的系统可以在创建卷组时自动创建物理卷,可以跳过创建物理卷的过程。例如

创建逻辑卷

1
lvcreate -L 10G -n lv1 vg1

逻辑卷大小10G,逻辑卷名是lv1,从vg1卷组中创建

如果要把卷组中所有的容量加入到逻辑卷中,使用如下命令:

1
lvcreate -l 100%FREE -n lv1 vg1

为逻辑卷创建文件系统

1
mkfs.xfs /dev/vg1/lv1

如果提示命令不存在,那么请安装xfs文件系统

1
sudo apt-get install xfsprogs

挂载逻辑卷

1
mount /dev/vg1/lv1 /mnt/test

开机自动挂载

/etc/fstab用于存放文件系统信息,当系统启动时,系统会自动读取文件内容将指定的文件系统挂载到指定的目录

1
/dev/vg1/lv1 /mnt/test xfs defaults 0 0

第一个字段:要挂载的设备路径

第二个字段:挂载点目录

第三个字段:设备文件系统类型

第四、五、六个字段,不知道什么意思,直接填写即可…

填写完成后测试内容是否正确:

  1. 将逻辑卷卸载

    1
    umount /mnt/test
  2. 依照配置文件/etc/fstab的数据将所有未挂载的磁盘都挂载上来

    1
    mount -a
  3. 查看是否重新挂载

    1
    df -Th

扩展逻辑卷

逻辑卷的空间来源于卷组,当卷组有足够的空间时,才可以扩展逻辑卷。卷组中一共有23G空间,lv1占用了10G,可以扩展

1
lvextend -L +5G /dev/vg1/lv1

同样,如果将卷组中剩余的所有空间都扩展到逻辑卷中,使用如下命令:

1
lvextend -l +100%FREE /dev/vg1/lv1

使用lvs查看,发现逻辑卷已有15G空间

此时我们查看文件系统大小,仍然是10G

这种情况需要扩展文件系统

1
xfs_growfs /mnt/test

扩展卷组

卷组的空间来源于物理分区或者物理硬盘,当卷组没有足够空间提供给逻辑卷时,须扩容卷组。我们之前把vdb1和vdb2两个分区加入到卷组,现在我们把vdb3扩展到卷组中

1
vgextend vg1 /dev/vdb3

删除逻辑卷

逻辑卷的删除不允许联机操作,需要先卸载,再执行删除

删除顺序:先删除逻辑卷,再删除卷组,最后删除物理卷

卸载

1
umount /mnt/test

删除逻辑卷

1
lvremove /dev/vg1/lv1

删除卷组

1
vgremove vg1

删除物理卷

删除分区