逻辑卷管理(LVM)

本文详细介绍了LinuxLVM(逻辑卷管理器)的工作原理,包括物理卷、卷组和逻辑卷的创建、扩展、缩小以及逻辑卷快照的功能。通过实例展示了如何部署、扩容、缩小逻辑卷,并演示了逻辑卷快照的使用和删除过程。


逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。
逻辑卷LVM

物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。

先创建PE,然后把PE整合为VG,之后再把VG变为LV,LV就可以被拿去挂载使用了

  • 物理卷pv:物理磁盘、分区或者磁盘阵列

  • 卷组vg:建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。

  • 逻辑卷lv:逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。

  • PE:物理卷区域,物理卷组成的最小单位

  • LE:逻辑区域,是逻辑卷组成的最小单位,大小通常是PE的整数倍

常用的LVM部署命令

功能/命令物理卷管理卷组管理逻辑卷管理
扫描pvscanvgscanlvscan
建立pvcreatevgcreatelvcreate
显示pvdisplayvgdisplaylvdisplay
删除pvremovevgremovelvremove
扩展vgextendlvextend
缩小vgreducelvreduce

一、部署逻辑卷

  • 让新添加的两块硬盘设备支持LVM技术(可以对磁盘先进行分区再创建物理卷,也可以直接创建物理卷)
[root@localhost ~]# pvcreate /dev/sdb 
Physical volume "/dev/sdb" successfully created. 
[root@localhost ~]# pvcreate /dev/sdc 
Physical volume "/dev/sdc" successfully created.
  • 把两块硬盘设备加入到storage卷组中,然后查看卷组的状态
[root@localhost ~]# vgcreate storage /dev/sdb /dev/sdc 
Volume group "storage" successfully created 
[root@localhost ~]# vgdisplay
  • 切割出一个约为150MB的逻辑卷设备。

这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。

第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M生成一个大小为150MB的逻辑卷。

另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小37×4MB=148MB的逻辑卷。

[root@localhost ~]# lvcreate -n vo -l 37 storage 
Logical volume "vo" created. 
[root@localhost ~]# lvdisplay
  • 把生成好的逻辑卷进行格式化,然后挂载使用。
[root@localhost ~]# mkfs.ext4 /dev/storage/vo
[root@localhost ~]# mkdir /vo 
[root@localhost ~]# mount /dev/storage/vo /vo 
[root@localhost ~]# df -h
[root@localhost ~]# echo "/dev/storage/vo /vo ext4 defaults 0 0" >> /etc/fstab

二、扩容逻辑卷

Linux e2fsck命令用于检查使用 Linux ext2 档案系统的 partition 是否正常工作

  • 把上一个实验中的逻辑卷vo扩展至290MB
[root@localhost ~]# umount /vo 
[root@localhost ~]# lvextend -L 290M /dev/storage/vo
  • 检查硬盘完整性,并重置硬盘容量
[root@localhost ~]# e2fsck -f /dev/storage/vo
[root@localhost ~]# resize2fs /dev/storage/vo
[root@localhost ~]# lvdisplay
  • 重新挂载硬盘设备并查看挂载状态
[root@localhost ~]# mount /dev/storage/vo /vo
[root@localhost ~]# mount -a 
[root@localhost ~]# df -h

三、缩小逻辑卷

  • 检查文件系统的完整性
[root@localhost ~]# umount /vo 
[root@localhost ~]# e2fsck -f /dev/storage/vo
  • 把逻辑卷vo的容量减小到120MB
[root@localhost ~]# resize2fs /dev/storage/vo 120M
[root@localhost ~]# lvreduce -L 120M /dev/storage/vo
  • 重新挂载文件系统并查看系统状态
[root@localhost ~]# mount -a 
[root@localhost ~]# df -h

#三、逻辑卷快照
LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。LVM的快照卷功能有两个特点:

  • 快照卷的容量必须等同于逻辑卷的容量;
  • 快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。
[root@localhost ~]# vgdisplay
  • 接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件
[root@localhost ~]# echo "hello world" > /vo/readme.txt 
[root@localhost ~]# ls -l /vo
  • 第1步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小。
    另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。
[root@localhost ~]# lvcreate -L 120M -s -n SNAP /dev/storage/vo 
Logical volume "SNAP" created. 
[root@localhost ~]# lvdisplay
  • 第2步:在逻辑卷所挂载的目录中创建一个100MB的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了
[root@localhost ~]# dd if=/dev/zero of=/vo/files count=1 bs=100M 
1+0 records in 
1+0 records out 
104857600 bytes (105 MB) copied, 3.29409 s, 31.8 MB/s 
[root@localhost ~]# lvdisplay
  • 第3步:为了校验SNAP快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。
[root@localhost ~]# umount /vo 
[root@localhost ~]# lvconvert --merge /dev/storage/SNAP 
Merging of volume storage/SNAP started. 
storage/vo: Merged: 31.39% 
storage/vo: Merged: 100.00%
  • 第4步:快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的100MB的垃圾文件也被清除了
[root@localhost ~]# mount -a 
[root@localhost ~]# ls /vo/ 
lost+found readme.txt

四、 删除逻辑卷

和创建逻辑卷的顺序相反

  • 取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。
[root@localhost ~]# umount /vo/ 
[root@localhost ~]# vi /etc/fstab		#删除系统文件的最后一行
  • 删除逻辑卷设备,需要输入y来确认操作
[root@localhost ~]# lvremove /dev/storage/vo
  • 删除卷组,此处只写卷组名称即可,不需要设备的绝对路径
[root@localhost ~]# vgremove storage
  • 删除物理卷设备
[root@localhost ~]# pvremove /dev/sdb /dev/sdc

(使用fdisk命令删除分区)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值