LVM逻辑卷管理器详细介绍

举报
阿柠 发表于 2022/09/27 20:13:19 2022/09/27
【摘要】 LVM逻辑卷管理器之前介绍了RAID,在硬盘分好区,或者部署好RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了。换而言之,当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘灵活性的限制。这时就需要一项非常普及的硬盘设备资源管理技术------LVM。LVM允许用户对硬盘资源进行动态调整。LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬...

LVM逻辑卷管理器

之前介绍了RAID,在硬盘分好区,或者部署好RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了。换而言之,当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘灵活性的限制。这时就需要一项非常普及的硬盘设备资源管理技术------LVM。LVM允许用户对硬盘资源进行动态调整。

LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。

ae47f028ab5baaba829cafce01de3fe6

部署lvm逻辑卷

首先,我们要明白,部署lvm需要逐个配置物理卷,卷组和逻辑卷。

常用的部署命令

功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展 vgextend lvextend
缩小 vgreduce lvreduce
  1. 让新添加的两块硬盘设备支持lvm技术。

    pvcreate  /dev/sdb /dev/sdc
    
  2. 把两块硬盘设备加入到storage卷组中,然后查看卷组的状态

    vgcreate storage /dev/sdb /dev/sdc
    
    vgdisplay
    
  3. 切割出一个约为150mb的逻辑卷设备

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

    lvcreate -n vo -l 37 storage
    
    lvdisplay
    
  4. 把生成好的逻辑卷进行格式化,然后挂载使用。

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

mkfs.ext4 /dev/storage/vo
mkdir /linuxprobe
mount /dev/storage/vo  /linuxprobe
  1. 查看挂载状态,并写入配置文件,使其永久生效
df -h
echo "/dev/storage/vo  /linuxprobe ext4 defaults 0 0" >> /etc/fstab

扩容逻辑卷

扩展前一定要记得卸载设备与挂载点的关联。

umount /linuxprobe

把上个实验中的逻辑卷vo扩展至290mb

lvextended -L 290M /dev/storage/vo

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

e2fsck -f /dev/storage/vo

resize2fs /dev/storage/vo

resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。

重新挂载硬盘,并查看挂载状态。

mount -a   #这个命令是挂载fatab文件上的内容

df -h

缩小逻辑卷

缩小逻辑卷的丢失数据的风险较大,我们一定要提前备份好数据。

在执行缩容操作之前记得先把文件系统卸载掉:

umount /linuxprobe

检查文件系统的完整性

e2fsck -f /dev/storage/vo

把逻辑卷vo的容量减少到120MB

resize2fs /dev/storage/vo 120M

lvreduce -L 120M  /dev/storage/vo

重新挂载文件系统并查看状态

mount -a

df -h

逻辑卷快照

LVM快照卷的特点:

  • 快照卷的容量必须等同于逻辑卷的容量;
  • 快照卷仅一次有效,一旦执行还原操作后则会被立即删除。

首先查看卷组信息

vgdisplay

看到卷组有空闲容量,接下来我们使用重定向往逻辑卷设备所挂载的目录中写入一个文件。

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

ls -l /linuxprobe

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

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

lvdisplay

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

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

lvdisplay

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

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

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

mount  -a

ls /linuxprobe/

删除逻辑卷

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

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

umount /linuxprobe

vim /etc/fstab

第二步:删除逻辑卷设备,输入y来确认操作。

lvremove /dev/storage/vo

第三步:删除卷组,此处只写卷组名即可,不需要设备的绝对路径

vgremove storage

第四步:删除物理设备

pvremove  /dev/sdb  /dev/sdc

实战训练

  1. 首先你用去看看电脑硬盘的使用情况
fdisk  -l  #查看当前磁盘的分区情况
  1. 对磁盘进行分区:
fdisk /dev/sdb
  1. 进去之后会有一些比较重要的命令
image-20220919143604959
参数 功能
-b 指定每个分区的大小
-l 列出指定的外围设备的分区表状况
-s 将指定的分区大小输出到标准输出上,单位为区块
-u 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
-v 显示版本信息
-m 查看全部可用参数
-n 添加新的分区
-d 删除某个分区信息
-t 改变某个分区的类型
-p 查看分区表信息
-w 保存并退出
-q 不保存直接退出

image-20220919145249147

然后,我们在添加分区的时候,有个主分区,,扩展分区,逻辑分区,我们浅浅了解一手:

主分区数量至少1个,最多4个(如果存在扩展分区,则最多3个)。主分区可以直接使用,主分区本身不能继续分区,一个主分区就是一个逻辑磁盘。

扩展分区0个或1个,会占用一个主分区号,不能直接使用,必须在其上建立逻辑分区后才能用。 其实就是把1个主分区拿过来进行分区扩展了。

逻辑分区可以若干个,通过扩展分区建立,可以直接使用,扩展分区的容量是所有逻辑分区容量之和(如果扩展分区被完全使用的话)。

合理的磁盘分区会方便我们的文件挂载使用的。

在我们使用w退出之后,记得使用这个命令:

partprobe    重新加载磁盘分区信息,并更改到系统内核

重头戏来了:

我们下面就把整个sdb100G扩展到centos卷组中去,并创建如下的需求:

10G /oracle
10G /grid
10G /orasystem
10G /arch
剩余空间全部分给 /oradata

image-20220919150058759

  1. 让新添加的硬盘设备支持LVM技术。
pvcreate  /dev/sdb

image-20220919150817924

2.接下来呢。我们要把这个硬盘设备加入到centos这个卷组,如果在此之前没有centos这个卷组,那么就用vgcreate 命令,如果有就是下面的命令:

vgextend centos /dev/sdb
image-20220919151825153
  1. 创建逻辑卷,这一步就是要面向需求了:我们要根据上面的需求依次创建对应的逻辑卷。

image-20220919153450064

  1. 接下来我们就需要将这些生成好的逻辑卷格式化,然后进行挂载

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

image-20220919153721866

上面展示的是格式化为xfs类型的操作。

下面我们就是要去创建一个目录,一会好去挂载:

image-20220919160024431

最后的最后,我们要把这些挂载内容写入/etc/fstab中去:

在配置文件中,我们可以使用uuid去配置。

blkid

image-20220919160713688

vi /etc/fatab
UUID=0e157636-1b3f-413b-a68d-5db7d0b03de0  /oracle                xfs     defaults        0 0
UUID=da09987c-281d-402d-972c-ac56d5844d29  /grid                  xfs     defaults        0 0
UUID=51720d40-66ba-44b9-a667-378a06fd87d7  /orasystem             xfs     defaults        0 0
UUID=df06626c-5495-4828-b6b2-63f4cdec257c  /arch                  xfs     defaults        0 0
UUID=328c9d42-a8a3-43c3-8d99-bda2d28f856e  /oradata               xfs     defaults        0 0
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。