【Linux】LVM逻辑卷详解

目录

一、LVM的基本概念

1. 为什么要使用逻辑卷

2. LVM的机制

3. 使用LVM的基本命令

二、LVM建立、扩容的过程演示

1. LVM的建立与使用

2. LVM逻辑卷的扩容 

3. 扩容根分区


一、LVM的基本概念

磁盘分区的缺点:

  • 没有备份功能 ------> 诞生raid来解决
  • 无法扩容 ------> 诞生逻辑卷来解决
  • 性能取决于硬盘本身

1. 为什么要使用逻辑卷

逻辑卷解决了分区无法扩容的问题

2. LVM的机制

(1) 先确定可以使用的磁盘或分区
(2) 将硬盘拆分成一个个小的块PE(块大小默认为4M,可以修改)
(3) 然后将这些块组成一个集合(卷组) 
(4) 从这个集合中取所需大小的块数

PV(物理卷):将所选的磁盘或分区进行分块(PE)

VG(卷组):将所选的磁盘或分区分块组合成一个卷组

LV(逻辑卷):从指定的卷组中获取大小并且取名

注意:如果需要对分区创建逻辑卷,则需要修改分区的类型为8e

3. 使用LVM的基本命令

创建物理卷 pvcreate 设备名[...]

查看物理卷 pvdisplay

创建卷组 vgcreate 卷组名 物理卷名[...]

查看卷组 vgdisplay

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

查看逻辑卷 lvdisplay

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

二、LVM建立、扩容的过程演示

1. LVM的建立与使用

                                                        (Centos7系统演示)

(1) 先建立物理卷

添加硬盘,

刷新硬盘接口后,使用fdisk对硬盘进行分区,

修改分区类型为8e(用于逻辑卷的类型)

建立物理卷

pvdisplay命令查看

(2) 创建卷组

建立vgcreate vg01 /dev/sdb1,vgdisplay查看卷组

(3) 创建逻辑卷

lvcreate -n mysql -L +5G vg01

建立完后,查看逻辑卷位置

路径为/dev/mapper/vg01-mysql或/dev/vg01/mysql

(4) 格式化

mkfs.xfs /dev/vg01/mysql

(5) 挂载

mount /dev/vg01/mysql /mnt

注意:做完逻辑卷后即相当于完成了分区,若想要使用逻辑卷还需要格式化和挂载。

2. LVM逻辑卷的扩容 

                                                        (Centos7系统演示)

(1) 卷组中的空间足够扩容

lvextend -L +4G /dev/vg01/mysql

(2) 卷组中的空间不足扩容

a. 先扩容卷组

添加新的硬盘或添加新的分区

使用lsblk查看新建分区,若没出现,使用partprobe刷新后再

vgextend vg01 /dev/sdb2

vgdisplay vg01 查看扩容后大小

b. 再扩容逻辑卷

lvextend -L +10G /dev/vg01/mysql

df查看后发现没有扩容,

是因为前面格式化了而新加的空间没有格式化

c. 需要同步文件系统

xfs系统的同步文件系统命令:

xfs_growfs /dev/vg01/mysql

ext4系统的同步文件系统命令

resize2fs /dev/vg01/mysql


Tips: 还可以直接使用lvextend命令的-r选项来直接同步文件系统且无需知道文件系统类型

3. 扩容根分区

                                                        (Centos7系统演示)


 

(1) vgdisplay #查看到centos分组

(2) lvdisplay #查看到centos卷组有root逻辑卷即根和swap逻辑卷

(3) vgextend centos /dev/sdc #为centos卷组扩容

(4) lvextend -L +20G /dev/centos/root -r #为根分区扩容且刷新文件系统

扩容成功

相关推荐

  1. 逻辑LVM

    2024-04-10 16:22:01       46 阅读
  2. linux逻辑

    2024-04-10 16:22:01       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 16:22:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 16:22:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 16:22:01       82 阅读
  4. Python语言-面向对象

    2024-04-10 16:22:01       91 阅读

热门阅读

  1. npm常用命令详解

    2024-04-10 16:22:01       29 阅读
  2. ChatGPT助力学术写作:无缝撰写论文技巧

    2024-04-10 16:22:01       38 阅读
  3. Circuits--Sequential--Registers_2

    2024-04-10 16:22:01       34 阅读
  4. Linux中的防火墙————Firewalld

    2024-04-10 16:22:01       30 阅读
  5. NLopt

    2024-04-10 16:22:01       34 阅读
  6. 使用opencv + ffmpeg 开发视频播放器Demo

    2024-04-10 16:22:01       44 阅读
  7. k8s-pod设置执行优先级

    2024-04-10 16:22:01       39 阅读
  8. 在Pod设置limit 的情况下,如何让JDK容器适配

    2024-04-10 16:22:01       45 阅读
  9. “AI程序员上岗:垂类大模型应用蓬勃发展“

    2024-04-10 16:22:01       38 阅读
  10. hdc常用命令大全

    2024-04-10 16:22:01       37 阅读