0
点赞
收藏
分享

微信扫一扫

盘点linux磁盘知识点(2)--LVM

逻辑卷概念

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

盘点linux磁盘知识点(2)--LVM_硬盘分区

小明家里想吃馒头但是面粉不够了,于是妈妈从隔壁老王家、老李家、老张家分别借来一些面粉,准备蒸馒头吃。首先需要把这些面粉(物理卷[PV,Physical Volume])揉成一个大面团(卷组[VG,Volume Group]),然后再把这个大团面分割成一个个小馒头(逻辑卷[LV,Logical Volume]),而且每个小馒头的重量必须是每勺面粉(基本单元[PE,Physical Extent])的倍数。

卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也 可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立 后可以动态地扩展或缩小空间。这就是 LVM 的核心理念。


部署逻辑卷

一般而言,在生产环境中无法精确地评估每个硬盘分区在日后的使用情况,因此会导致原先分配的硬盘分区不够用。比如,伴随着业务量的增加,用于存放交易记录的数据库目录的体积也随之增加;因为分析并记录用户的行为从而导致日志目录的体积不断变大,这些都会导致原有的硬盘分区在使用上捉襟见肘。而且,还存在对较大的硬盘分区进行精简缩容的情况。

我们可以通过部署 LVM 来解决上述问题。部署 LVM 时,需要逐个配置物理卷、卷组和逻辑卷。常用的部署命令如图所示。

盘点linux磁盘知识点(2)--LVM_硬盘分区_02

​在虚拟机中添加两块新硬盘设备的目的,是为了更好地演示 LVM 理念中用户无需关 心底层物理硬盘设备的特性。我们先对这两块新硬盘进行创建物理卷的操作,可以将该操 作简单理解成让硬盘设备支持 LVM 技术,或者理解成是把硬盘设备加入到 LVM 技术可 用的硬件资源池中,然后对这两块硬盘进行卷组合并,卷组的名称可以由用户来自定义。 根据需求把合并后的卷组切割出一个约为 150MB 的逻辑卷设备,最后把这个逻 辑卷设备格式化成 EXT4 文件系统后挂载使用​。

步骤

(1)让新添加的两块硬盘设备支持 LVM 技术。

​pvcreate /dev/sdb /dev/sdc 

Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created

(2)把两块硬盘设备加入到 storage 卷组中,然后查看卷组的状态。

 vgcreate storage /dev/sdb /dev/sdc
vgdisplay

​(3)切割出一个约为 150MB 的逻辑卷设备。

​这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容 量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。另外 一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。

例 如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷。

lvcreate -n vo -l 37 storage

(4)把生成好的逻辑卷进行格式化,然后挂载使用。

​Linux 系统会把 LVM 中的逻辑卷设备存放在/dev 设备目录中(实际上是做了一个符号链 接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组 名称/逻辑卷名称)。

mkfs.ext4 /dev/storage/vo

(5)查看挂载状态,并写入到配置文件,使其永久生效。

 echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> / 
etc/fstab

扩容逻辑卷

​​在前面的实验中,卷组是由两块硬盘设备共同组成的。用户在使用存储设备时感 知不到设备底层的架构和布局,更不用关心底层是由多少块硬盘组成的,只要卷组中 有足够的资源,就可以一直为逻辑卷扩容。扩展前请一定要记得卸载设备和挂载点的 关联​。

步骤

(1)卸载挂载。

umount /linuxprobe

(2)把上一个实验中的逻辑卷 vo 扩展至 290MB。

lvextend -L 290M /dev/storage/vo

(3)检查硬盘完整性,并重置硬盘容量。

e2fsck -f /dev/storage/vo

(4)重新挂载硬盘设备并查看挂载状态。

mount -a 
df -h

缩小逻辑卷

​​相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产 环境中执行相应操作时,一定要提前备份好数据。另外 Linux 系统规定,在对 LVM 逻辑卷进 行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。

步骤

(1)在执 行缩容操作前记得先把文件系统卸载掉。

umount /linuxprobe

(2)检查文件系统的完整性。

 e2fsck -f /dev/storage/vo

(3)把逻辑卷 vo 的容量减小到 120MB。

resize2fs /dev/storage/vo 120M
lvreduce -L 120M /dev/storage/vo

(4)重新挂载文件系统并查看系统状态。

mount -a 
df -h

删除逻辑卷

​​当生产环境中想要重新部署 LVM 或者不再需要使用 LVM 时,则需要执行 LVM 的删除 操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备, 这个顺序不可颠倒。

步骤

(1)取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

umount /linuxprobe 
vim /etc/fstab

(2)删除逻辑卷设备,需要输入 y 来确认操作

lvremove /dev/storage/vo

(3)删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。

 vgremove storage

(4)删除物理卷设备。

pvremove /dev/sdb /dev/sdc

(5)在上述操作执行完毕之后,再执行 lvdisplay、vgdisplay、pvdisplay 命令来查看 LVM 的信 息时就不会再看到信息了


逻辑卷快照

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

(1)快照卷的容量必须等同于逻辑卷的容量;

(2)快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。


首先查看卷组的信息

vgdisplay

接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件

echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt

​使用-s 参数生成一个快照卷,使用-L 参数指定切割的大小。另外,还需要在命 令后面写上是针对哪个逻辑卷执行的快照操作。

lvcreate -L 120M -s -n SNAP /dev/storage/vo

​在逻辑卷所挂载的目录中创建一个 100MB 的垃圾文件,然后再查看快照卷的状 态。可以发现存储空间占的用量上升了​

dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M

​为了校验 SNAP 快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记 得先卸载掉逻辑卷设备与目录的挂载。

umount /linuxprobe 
lvconvert --merge /dev/storage/SNAP

​快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来 的 100MB 的垃圾文件也被清除了。

mount -a 
ls /linuxprobe/


举报

相关推荐

0 条评论