一、概念
LVM(Logical Volume Manager) 辑卷管理
PE(Physical Extend) 物理拓展
PV(Physical Volume) 物理卷
VG(Volume Group) 卷组
LV(Logical Volume) 逻辑卷
1,1 什么是LVM
LVM(Logical Volume Manager),即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
1.2 什么是PE
LVM 默认使用 4MB 的 PE 区块,而 LVM 的 LV 在 32 位系统上最多仅能含有 65534 个 PE(lvm1 的格式),因此默认的 LVM 的 LV 会有 4M*65534/(1024M/G)=256G。这个 PE 很有趣喔!他是整个 LVM 最小的储存区块,也就是说,其实我们的文件数据都是借由写入 PE来处理的。简单的说,这个 PE 就有点像文件系统里面的 block 大小啦。 这样说应该就比较好理解了吧?所以调整 PE 会影响到 LVM 的最大容量喔!不过,在 CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,以及系统转为 64 位,因此这个限制已经不存在了。
1.3 什么是PV
物理卷即物理磁盘分区就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。若是想要使用LVM来管理这个分区,可使用fdisk将其ID改成LVM能够识别的值,即8e。
1.4 什么是VG、
PV的集合,所谓的 LVM 大磁盘就是将许多 PV 整合成 VG ,所以 VG 就是 LVM 组合起来的大磁盘! 那么这个大磁盘最大可以到多少容量呢?这与下面要说明的PE 以及 LVM 的格式版本有关,在默认的情况下, 使用 32位的 Linux 系统时,基本上 LV最大仅能支持到 65534 个 PE 而已,若使用默认的 PE 为 4MB 的情况下, 最大容量则仅能达到约 256GB 而已~ 不过,这个问题在 64位的 Linux 系统上面已经不存在了!LV 几乎没有啥容量限制了!
1.5 什么是LV
逻辑卷,是从卷组VG中划分出来的存放数据的磁盘空间。最终的 VG 还会被切成 LV,其中LV 是不可以随意指定大小,既然 PE 是整个 LVM 的最小储存单位,那么 LV的大小就与在此 LV 内的 PE 总数有关。 为了方便使用者利用 LVM 来管理其系统,因此 LV的设备文件名通常指定为“ /dev/vgname/lvname ”的样式!
二、实战演练
1、新环境、新磁盘挂载
前沿:
(1)新的的 /dev/sdb 磁盘
(2)新的项目使用目录 /ceshi
(3)将新的磁盘挂载在新的目录,不使用系统盘
1.1、操作
(1)对新加磁盘进行初始化,全部为默认
命令:fdisk /dev/sdb
(2)将新创建的分区格式化为xfs格式
命令:mkfs.xfs /dev/sdb1
(3)挂载
命令:mount /dev/sdb1 /ceshi
2、对新的分区扩容
前沿:
(1)正在使用的磁盘空间不足,针对根分区进行扩容
2.1 查看卷组信息,当前的卷组分组信息为centos
命令: vgdisplay -v
2.2 给新添加的磁盘创建新的分区,并创建新的物理卷
命令:pvcreate /dev/sdb1
2.3 查看新创建的逻辑卷
命令:pvdisplay (查看物理卷信息)
2.4 将新创建的逻辑卷加入到刚查询的cetos卷组中
命令: vgextend centos /dev/sdb1
vgdisplay (查看卷组信息)
2.5 查看当前根分区挂载信息和逻辑卷信息
命令:lsblk
lvdisplay
2.6 给根分区使用的逻辑卷扩容,并执行xfs_growfs增加系统空间
命令:lvextend -L +10G /dev/centos/root
xfs_growfs /dev/centos/root
注明:因为安装CentOS用的xfs分区,所以使用命令xfs_growfs扩展文件系统大小。
2.7 查询结果,根分区已经增加
命令:df -Th
3、创建LVM
3.1 创建新的分区,修改分区类型为LVM
命令:fdisk /dev/sdb
3.2 初始化为物理卷
命令: pvcreate /dev/sdb1
3.3 创建新的卷组,并加入新的物理卷
命令:vgcreate ceshi01 /dev/sdb1
3.4 基于新的卷组创建新的逻辑卷
命令:lvcreate -n ceshi02 -L 6G ceshi01
lvcreate -n 新的逻辑卷名 -L 指定大小 新的卷组名
[root@localhost ~]# lvcreate -n ceshi02 -L 6G ceshi01
Logical volume "ceshi02" created.
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID dpPK5X-cgtR-Iy9N-9o8g-MTeW-UZT4-7tUVN0
LV Write Access read/write
LV Creation host, time localhost, 2022-02-16 19:48:51 +0800
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID iv6V17-clV9-rr3Z-9AXA-GDrc-mdNW-WuvFAD
LV Write Access read/write
LV Creation host, time localhost, 2022-02-16 19:48:51 +0800
LV Status available
# open 1
LV Size 26.99 GiB
Current LE 6910
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/ceshi01/ceshi02
LV Name ceshi02
VG Name ceshi01
LV UUID fAGOGp-Tmvw-4vHO-cOqR-UEDN-Pux7-fyp6zs
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2022-08-04 18:06:48 +0800
LV Status available
# open 0
LV Size 6.00 GiB
Current LE 1536
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
3.5 格式化新创建的逻辑卷,并挂载到新创建的目录,查看结果
[root@localhost ~]# mkfs.xfs /dev/ceshi01/ceshi02
meta-data=/dev/ceshi01/ceshi02 isize=512 agcount=4, agsize=393216 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1572864, 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 ~]# mkdir /abc
[root@localhost ~]# mount /dev/ceshi01/ceshi02 /abc/
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─centos-root 253:0 0 27G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
└─ceshi01-ceshi02 253:2 0 6G 0 lvm /abc
sr0 11:0 1 1024M 0 rom
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 27G 1.8G 26G 7% /
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 911M 0 911M 0% /dev/shm
tmpfs tmpfs 911M 9.6M 902M 2% /run
tmpfs tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 143M 872M 15% /boot
tmpfs tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/ceshi01-ceshi02 xfs 6.0G 33M 6.0G 1% /abc
3.6 永久保存挂载信息
注:不写入fstab文件,重启之后挂载就会失效!