LVM(逻辑卷管理器)

目录

一、常用的LVM部署命令

二、部署逻辑卷

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

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

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

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

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

三、扩容逻辑卷

1.把上一个实验中的逻辑卷vo扩展至290MB。

2.检查硬盘的完整性,确认目录结构、内容和文件内容没有丢失。一般情况下没有报错,均为正常情况。

3.重置设备在系统中的容量。刚刚是对LV(逻辑卷)设备进行了扩容操作,但系统内核还没有同步到这部分新修改的信息,需要手动进行同步。

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

四、缩小逻辑卷

1.检查文件系统的完整性。

2.通知系统内核将逻辑卷vo的容量减小到120MB。

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

五、 逻辑卷快照

六、删除逻辑卷

一、常用的LVM部署命令

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

二、部署逻辑卷

准备三块硬盘,各20G。 

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

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

[root@RHEL8 ~]# pvcreate /dev/sdb /dev/sdc

# pvcreate命令的功能是用于创建物理卷设备。LVM逻辑卷管理器技术由物理卷、卷组和逻辑卷组成,其中pvcreate命令的工作属于第一个环节——创建物理卷设备。

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

        vgcreate命令的功能是用于创建卷组设备。LVM逻辑卷管理器技术由物理卷、卷组和逻辑卷组成,其中vgcreate命令的工作属于第二个环节——创建卷组设备。

        卷组,顾名思义是将多个物理卷组成一个整体,屏蔽了底层物理设备细节,让用户在后续的逻辑卷创建工作后无需再考虑具体的硬件设备信息。

# 使用两块硬盘,创建出一块指定名称(storage 可自定义)的卷组设备
[root@RHEL8 ~]# vgcreate storage /dev/sdb /dev/sdc

[root@RHEL8 ~]# vgdisplay 

# vgdisplay命令用于显示LVM卷组的信息

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

        lvcreate命令的功能是用于创建逻辑卷设备。LVM逻辑卷管理器技术由物理卷、卷组和逻辑卷组成,其中lvcreate命令的工作属于最后一个环节——创建逻辑卷设备。

        设定逻辑卷容量可以使用-L参数直接写具体值,亦可以写-l参数指定PE个数,每个PE大小默认为4M,因此-L 400M和-l 100的效力是等价的。例如,使用-l 37可以生成一个大小为37×4MB=148MB的逻辑卷。

# 在已有的卷组中(storage)创建一个逻辑卷(vo),大小为37个PE:
[root@RHEL8 ~]# lvcreate -n vo -l 37 storage

[root@RHEL8 ~]# lvdisplay

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

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

        mkfs命令来自于英文词组“make file system”的缩写,其功能是用于对设备进行格式化文件系统操作。在挂载使用硬盘空间前的最后一步,运维人员需要对整块硬盘或指定分区进行格式化文件系统操作,Linux系统支持的文件系统包含ext2、ext3、ext4、xfs、fat、msdos、vfat、minix等多种格式。

[root@RHEL8 ~]# mkfs.ext4 /dev/storage/vo
[root@RHEL8 ~]# mkdir -p /text
[root@RHEL8 ~]# mount /dev/storage/vo /text/

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

[root@RHEL8 ~]# df -Th

[root@RHEL8 ~]# echo "/dev/storage/vo     /text     ext4     defaults     0 0" >> /etc/fstab 

[root@RHEL8 ~]# cat /etc/fstab

三、扩容逻辑卷

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

[root@RHEL8 ~]# umount /text

1.把上一个实验中的逻辑卷vo扩展至290MB。

[root@RHEL8 ~]# lvextend -L 290M /dev/storage/vo

2.检查硬盘的完整性,确认目录结构、内容和文件内容没有丢失。一般情况下没有报错,均为正常情况。

        e2fsck命令用于检查使用 Linux ext2 档案系统的 partition 是否正常工作。 e2fsck命令可以检查ext2、ext3、ext4文件系统,如果系统已经挂载了,那么不建议去检查,因为这样是不安全的。

[root@RHEL8 ~]# e2fsck -f /dev/storage/vo

-f	强制检查

3.重置设备在系统中的容量。刚刚是对LV(逻辑卷)设备进行了扩容操作,但系统内核还没有同步到这部分新修改的信息,需要手动进行同步。

        esize2fs命令来自于英文词组“resize to filesystem”的缩写,其功能是用于同步文件系统容量到内核。如对ext3、ext4、XFS等设备卷容量进行了调整,则需要使用resize2fs命令同步信息到系统内核。

[root@RHEL8 ~]# resize2fs /dev/storage/vo

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

[root@RHEL8 ~]# mount -a
[root@RHEL8 ~]# df -Th

-a 挂载/etc/fstab文件中所有已定义的设备文件

四、缩小逻辑卷

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

[root@RHEL8 ~]# umount /text

1.检查文件系统的完整性。

[root@RHEL8 ~]# e2fsck -f /dev/storage/vo 
e2fsck 1.44.3 (10-July-2018)
第 1 步:检查inode、块和大小
第 2 步:检查目录结构
第 3 步:检查目录连接性
第 4 步:检查引用计数
第 5 步:检查组概要信息
/dev/storage/vo:11/74000 文件(0.0% 为非连续的), 15507/299008 块

2.通知系统内核将逻辑卷vo的容量减小到120MB。

[root@RHEL8 ~]# resize2fs /dev/storage/vo 120M
resize2fs 1.44.3 (10-July-2018)
将 /dev/storage/vo 上的文件系统调整为 122880 个块(每块 1k)。
/dev/storage/vo 上的文件系统现在为 122880 个块(每块 1k)。

3.将 LV(逻辑卷)的容量修改为120MB。

[root@RHEL8 ~]# lvreduce -L 120M /dev/storage/vo 
  WARNING: Reducing active logical volume to 120.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce storage/vo? [y/n]: y
  Size of logical volume storage/vo changed from 292.00 MiB (73 extents) to 120.00 MiB (30 extents).
  Logical volume storage/vo successfully resized.

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

[root@RHEL8 ~]# mount -a
[root@RHEL8 ~]# df -Th

-a 挂载/etc/fstab文件中所有已定义的设备文件

五、 逻辑卷快照

        LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间品能。例如,对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。LVM的快照卷功能有两个特点:
        a.快照卷的容量必须等同于逻辑卷的容量;
        b.快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。
在正式操作前,先看看VG(卷组)中的容量是否够用:

        通过卷组的输出信息可以清晰看到,卷组中已经使用了120MB的容量,空闲容量还有39.88GB。接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件。

[root@RHEL8 ~]# echo "Hello world" > /text/readme.txt
[root@RHEL8 ~]# ls -l /text/

        第1步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小,需要与要做快照的设备容量保持一致。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作,稍后数据也会还原到这个相应的设备上。

[root@RHEL8 ~]# lvcreate -L 120M -s -n SNAP /dev/storage/vo

[root@RHEL8 ~]# lvdisplay

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

        dd命令来自于英文词组“disk dump”的缩写,其功能是用于拷贝及转换文件。使用dd命令可以按照指定大小的数据块来拷贝文件,并在拷贝的过程中对内容进行转换。

语法格式:dd 参数 对象

常用参数:

  • if=文件名:输入文件名,默认为标准输入。即指定源文件。
  • of=文件名:输出文件名,默认为标准输出。即指定目的文件。
  • ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
  • cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
  • skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
  • seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
  • count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
生成一个指定大小(100M)的新文件:
[root@RHEL8 ~]# dd if=/dev/zero of=/text/files count=1 bs=100M
记录了1+0 的读入
记录了1+0 的写出
104857600 bytes (105 MB, 100 MiB) copied, 7.17258 s, 14.6 MB/s

[root@RHEL8 ~]# lvdisplay

[root@RHEL8 ~]# ls -l /text/
总用量 102416
-rw-r--r--. 1 root root 104857600 6月  14 16:46 files
drwx------. 2 root root     12288 6月  14 09:29 lost+found
-rw-r--r--. 1 root root        12 6月  14 16:37 readme.txt

         第3步:为了校验快照卷的效果,需要对逻组卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。
        lvconvert 命令用于管理逻辑卷的快照,语法格式为“lvconvert [参数] 快照卷名称”。使用Ivconvert 命令能自动回复逻辑卷的快服,在早期的RHEL/CentOS 5版本中要写全格式:“--mergesnapshot”,而从RHEL 6到RHEL 8.已经允许用户只输入-merge参数进行操作了,系统会自动分辨设备的类型。

[root@RHEL8 ~]# umount /text 

[root@RHEL8 ~]# lvconvert --merge /dev/storage/SNAP 
  Merging of volume storage/SNAP started.
  storage/vo: Merged: 38.92%
  storage/vo: Merged: 100.00%

[root@RHEL8 ~]# lvdisplay
# 快照卷 SNAP 没有了

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

[root@RHEL8 ~]# mount -a
[root@RHEL8 ~]# ls -l /text/
总用量 14
drwx------. 2 root root 12288 6月  14 09:29 lost+found
-rw-r--r--. 1 root root    12 6月  14 16:37 readme.txt
[root@RHEL8 ~]# cat /text/readme.txt 
Hello world

六、删除逻辑卷

        当生产环境中想要重新部署LVM或者不再需要使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。
        第1步:取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

[root@RHEL8 ~]# umount /text 
[root@RHEL8 ~]# vim /etc/fstab
删除这行
/dev/storage/vo         /text                    ext4   defaults        0 0

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

[root@RHEL8 ~]# lvremove /dev/storage/vo 
Do you really want to remove active logical volume storage/vo? [y/n]: y
  Logical volume "vo" successfully removed

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

[root@RHEL8 ~]# vgremove storage 
  Volume group "storage" successfully removed

 第4步:删除物理卷设备。

[root@RHEL8 ~]# pvremove /dev/sdb /dev/sdc
  Labels on physical volume "/dev/sdb" successfully wiped.
  Labels on physical volume "/dev/sdc" successfully wiped.

        在上述操作执行完毕之后,再执行lvdisplay、vgdisplay、pvdisplay命令来查看LVM的信
息时就不会再看到相关信息了(前提是上述步骤的操作是正确的)。干净利落!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stars.Sky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值