【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
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 创建卷组
使用vgcreate命令创建卷组:
vgcreate <卷组名> <加入该卷组的空闲分区名>
例如,创建一个名为data_group的卷组:
vgcreate data_group /dev/sdb1
这时再次使用vgs命令,可以看到已经创建了一个名为data_group的卷组:
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <7.00g 0
data_group 1 0 0 wz--n- <10.00g <10.00g
2.2.3 向卷组添加物理卷
向卷组中添加物理卷
vgextend <卷组名> <物理卷名>
例如,假设存在物理卷/dev/sdc1,则下面的命令可以向data_group这个卷组中添加物理卷/dev/sdc1:
[root@localhost ~]# vgextend data_group /dev/sdc1
结果如下:
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- <7.00g 0
data_group 2 0 0 wz--n- <19.99g <19.70g
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
swap centos -wi-ao---- <820.00m
2.3.2 创建逻辑卷
使用lvcreate命令来创建逻辑卷:
lvcreate -L <逻辑卷空间大小> -n <逻辑卷名称> <所属卷组>
例如,在centos卷组上创建一个名为data的逻辑卷:
[root@localhost ~]# lvcreate -L 150M -n data data_group
接着格式化逻辑卷:
[root@localhost ~]# mkfs -t ext4 /dev/data_group/data
操作的方式参考2.1.2,依次选择m、n、p随后的选项都选择默认回车即可。 最后挂载到指定目录:
[root@localhost ~]# mkdir /usr/local/data
[root@localhost ~]# mount /dev/data_group/data /usr/local/data
3. 利用LVM实现快照备份
3.1 创建快照逻辑卷
同样使用lvcreate命令来创建用于快照备份的逻辑卷
lvcreate -L <逻辑卷空间大小> -s -n <快照逻辑卷的名称> /dev/<卷组名>/<目标逻辑卷的名称>
例如,下面为data_group卷组中的data逻辑卷创建了一个大小为150MB的,名为backup的快照备份逻辑卷:
[root@localhost ~]# lvcreate -L 150M -s -n backup /dev/data_group/data
由于是快照逻辑卷,所以我们不需要对其进行格式化,直接挂载即可:
[root@localhost ~]# mkdir /usr/local/backup
[root@localhost ~]# mount /dev/data_group/backup /usr/local/backup
通过lvs命令查看逻辑卷的情况,可以发现分别增加了data和backup两个逻辑卷:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <6.20g
swap centos -wi-ao---- <820.00m
backup data_group swi-aos--- 152.00m data 1%
data data_group owi-aos--- 152.00m
另外,注意到backup逻辑卷的Origin属性指向了data,说明它作为了data的快照逻辑卷,Data%属性为1%,表示快照所占的空间大小。
3.2 修改data逻辑卷
现在向data逻辑卷挂载的目录中添加一个几MB的文件夹python2.7,让其占用一定的空间大小:
[root@localhost ~]# ls
lost+found python2.7
此时再使用lvs命令查看逻辑卷的情况,会发现backup逻辑卷的Data%从1%变为了5.39%:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <6.20g
swap centos -wi-ao---- <820.00m
backup data_group swi-aos--- 152.00m data 5.39%
data data_group owi-aos--- 152.00m
3.3 利用backup逻辑卷恢复数据
4. 其它有用的命令
4.1 重命名卷组
vgrename <卷组名> <新卷组名>
4.2 删除卷组
vgremove <卷组名>
4.3 删除逻辑卷
lvremove /dev/<卷组名>/<逻辑卷名>
4.4 删除物理卷
pvremove <物理卷名>
来源:oschina
链接:https://my.oschina.net/JiamingMai/blog/3153683