LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。LVM 适合于管理大存储设备,并允许用户动态调整文件系统的大小。此外,LVM 的快照功能可以帮助我们快速备份数据。LVM 为我们提供了逻辑概念上的磁盘,使得文件系统不再关心底层物理磁盘的概念。
- 物理卷(Physical Volume,PV):就是真正的物理硬盘或分区
- 卷组(Volume Group,VG):将多个物理卷合起来就组成了卷组。组成同一个卷组的物理卷可以是同一块硬盘的不同分区,也可以是不同硬盘上的不同分区。我们可以把卷组想象为一块逻辑硬盘。
- 逻辑卷(Logical Volume,LV):卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据。我们可以把逻辑卷想象为分区。
- 物理扩展(Physical Extend,PE):PE 是用来保存数据的最小单元,我们的数据实际上都是写入 PE 当中的。PE 的大小是可以配置的,默认是 4MB。
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
Scan 扫描 | pvscan | vgcan | lvscan |
Create 建立 | pvcreate | vgcreate | Ivcreate |
Display 显示 | pvdisplay | vgdisplay | Ivdisplay |
Remove 删除 | pvremove | vgremove | lvremove |
Extend 扩展 | vgextend | Ivextend | |
Reduce 减少 | vgreduce | Ivreduce |
实现逻辑,逻辑上的管理方式
分区,大小,raid大小要一样,分区大小可以不一,可以分区可以是硬盘
lm 分区(t麦8e)一整决磁盘
1.先确定可以使用的 磁盘 或分区
2先将硬盘拆分成一个个小的块(块大小默认为 4M)4
3.然后将这些块 组成一个 集合
4.从这个集合中取 块(取空间)
分区缺点
1.没有备份功能
2.无法扩容
3.性能取决于硬盘本身
逻辑卷解决了,分区无法扩容的问题
1024/4=256
256*15=3840 块
主要命令
pvcreate 设备名1 [设备名2 … …]
vgcreate 卷组名 物理卷名1 物理卷名2
Ivcreate -L 容量大小 -n 逻辑卷名 卷组名
Ivextend -L +大小 /dev/卷组名/逻辑卷名
逻辑卷
1.先建立物理卷
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc" successfully created.
2.建立vg01卷组
[root@localhost ~]# vgcreate vg01 /dev/sdb1 /dev/sdc
Volume group "vg01" successfully created
3.建立逻辑卷
[root@localhost ~]# lvcreate -n myspl -L +15G vg01
Logical volume "myspl" created.
建好的逻辑卷有两种叫法
[root@localhost ~]# ll /dev/mapper/vg01-myspl
lrwxrwxrwx. 1 root root 7 4月 10 17:00 /dev/mapper/vg01-myspl -> ../dm-3
[root@localhost ~]# ll /dev/vg01/myspl
lrwxrwxrwx. 1 root root 7 4月 10 17:00 /dev/vg01/myspl -> ../dm-3
格式化逻辑卷
#格式化逻辑卷
[root@localhost ~]# mkfs.xfs /dev/mapper/vg01-myspl
meta-data=/dev/mapper/vg01-myspl isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#挂载
[root@localhost ~]# mount /dev/mapper/vg01-myspl /mnt
扩容
1.卷组中的空间足够扩容
2.卷组中的空间不足够扩容
先扩容卷组 将 sdd 硬盘 扩容 到 vg01卷组
vgextend
Ivextend 扩容逻辑卷 加10G
Ivextend -L +10G /dev/vg01/mysql
同步文件系统
xfs 系统用 xfs_growfs
xfs_growfs /dev/vg01/mysql
命令 逻辑卷名字
ext4 系统
resize2fs 逻辑卷的名字
我们可以使用 -r 选项立马刷新文件系统
Ivextend -L+3G /dev/vg01/web -r
扩容根分区
vgextend centos /dev/sdb (设备名)
Ivextend -L +20G /dev/centos/root -r
磁盘的配额
磁盘配额要想正常使用,有以下几个前提条件:
1. 内核必须支持磁盘配额。
2. 系统中必须安装了 Quota 工具。我们的 Linux 中默认安装了 Quoted 工具
3. 要支持磁盘配额的分区必须开启磁盘配额功能。这项功能可以手动开启,不再是默认开启的