1. LVM概述
LVM的全称为Logical Volume Manager,是Linux所提供的一种对磁盘分区进行灵活管理的机制。要理解LVM,首先需要从一个Linux用户经常遇到的问题开始,那就是“应该如何正确评估不同分区的大小来合适地分配硬盘空间?”。通常情况下,逻辑分区划分好后空间大小将无法改变,此时如果需要存储的文件过大,则单个逻辑分区无法存储,但该文件也无法跨越多个分区来存储,这是由上层文件系统限制造成的,以致于单个文件不能同时存储在不同的磁盘上。当出现某个分区的空间不足时,通常只能使用符号链接或者调整分区大小的工具来暂时解决问题,然而,这些临时性的措施都并非有效的解决方法,而LVM的机制则能够很好地解决这个问题,用户可以在不停机的情况下调整各分区的空间大小。
2.创建LV的步骤
创建物理卷(Physical Volumes)
创建卷组(Volume Group)
创建逻辑卷(Logical Volumes)
2.1 物理卷
2.1.1 查看物理卷
使用pvs命令查看物理卷
[root@localhost ~]# pvs
结果如下:
PV VG Fmt Attr PSize PFree
/dev/sda centos lvm2 a-- <7.00g 0
2.1.2 新增磁盘分区
新增磁盘
为了创建新的物理卷,我们先增加一块新的磁盘,并且挂载到文件系统。先用fdisk命令看看目前系统的所有磁盘:
[root@localhost ~]# fdisk -l
结果如下:
接下来我们增加一块新的磁盘,再使用fdisk命令,结果如下所示,我们能看到多了一个/dev/sdb,这正是我们新增的磁盘:
为新磁盘创建分区
使用fdisk /dev/sdb来对其创建分区:
这里选择p主分区:
最后,需要选择w保存设置,否则不会生效:
Command (m for help): w
Calling ioctl() to re-read partition table
Symcing disks
至此,分区就创建完毕了,再次使用fdisk -l命令可以看到现在已经存在/dev/sdb1分区
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20971519 10484736 83 Linux
格式化分区
接下来要对分区进行格式化处理,使用mkfs命令实现格式化。下面的命令将/dev/sdb1格式化为ext4格式
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
挂载新分区
此时通过df -h命令查看分区分布,我们可以发现分区还没有被挂载,
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 6.2G 1007M 5.3G 16% /
/devtmps 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.6M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/ddev/sda1 1014M 146M 869M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
接下来我们将新分区/dev/sdb1挂载到/data上:
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb1 /data
此时再次执行df -h命令查看分区分布,可以看到/dev/sdb1已经挂载到/data上了:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 6.2G 1007M 5.3G 16% /
/devtmps 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.6M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/ddev/sda1 1014M 146M 869M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/sdb1 9.8G 37M 9.2G 1% /data
另外,可以修改/etc/fstab文件,在最后一行加上下列的内容,使系统每次启动都自动挂载
/dev/sdb1 /data ext4 defaults 0 0
2.1.3 创建物理卷
使用pvcreate命令创建物理卷:
[root@localhost ~]# pvcreate /dev/sdb1
注意,如果如果/dev/sdb1已经挂载到文件系统上,需要先umount再执行pvcreate:
[root@localhost ~]# umount /dev/sdb1
创建后使用pvs命令查看物理卷
PV VG Fmt Attr PSize PFree
/dev/sda centos lvm2 a-- <7.00g 0
/dev/sdb centos lvm2 --- <10.00g <10.00g
从结果中可以看到刚才新创建的物理卷/dev/sbd
2.2 卷组
2.2.1 查看卷组
使用vgs查看卷组
[root@localhost ~]# vgs
结果如下:
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <7.00g 0
2.2.2 向卷组添加物理卷
向卷组中添加物理卷
vgextend
例如,向centos这个卷组中添加物理卷/dev/sdb1:
[root@localhost ~]# vgextend centos /dev/sdb1
结果如下:
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 16.99g <10.00g
2.3 逻辑卷
2.3.1 查看逻辑卷
使用lvs命令查看逻辑卷
[root@localhost ~]# lvs
结果如下:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <6.20g
2.3.2 创建逻辑卷
使用lvcreate命令来创建逻辑卷:
lvcreate -L -n
例如,在centos卷组上创建一个名为backup的逻辑卷:
[root@localhost ~]# lvcreate -L 150M -n backup centos
3. 利用LVM实现快照备份
4. 其它有用的命令
4.1 创建卷组
vgcreate
4.2 删除逻辑卷
lvremove /dev//