逻辑卷管理器(Logical Volume Manager)

在对磁盘进行分区大小规划时,有时往往不能确定这个分区要使用的总空间大小。而用fdisk对磁盘进行分区后,每个分区的大小就已经固定了,如果分区设置的过大,会白白浪费磁盘空间;分区设置的过小,就会导致空间不够用的情况。这个时候,就可以用到LVM(Logical Volume Manager,逻辑卷管理)。

一、LVM简介

LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将若干个磁盘或者磁盘分区连接为一个整块的卷组,形成一个存储池。管理员可以在卷组上任意创建逻辑卷,并进一步在逻辑卷上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

假设有三块磁盘/dev/sdb、/dev/sdc和/dev/sdd用来划分逻辑卷,LVM模型如图所示:
在这里插入图片描述

二、 LVM基本术语

通过LVM技术,屏蔽了磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷上建立相应的文件系统。在了解LVM之前,先熟悉LVM中几个常用的术语。

(1)物理存储设备(The physical media):指系统的存储设备文件,如:/dev/hda1、/dev/sda等等。

(2)物理卷(physical volume):简称PV,物理卷可以是整个硬盘、硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

(3)卷组(Volume Group):简称VG,可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。卷组的名称可以自定义。

(4)PE(physical extent)物理区域:物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小默认为4MB。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

(5) 逻辑卷(logical volume):简称LV,相当于物理分区。逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态的扩展或缩小空间。系统中的多个逻辑卷,可以属于同一个卷组,也可以属于不同的多个卷组。

(6)LE(logical extent)逻辑区域:逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域大小。LE的大小和PE的大小一样。

(7)VGDA(Volume Group Descriptor Area)卷组描述符区域:和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的卷组描述符区域中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符和一些PE描述符。

三、安装LVM

首先确定系统中是否安装了lvm工具:

[root@localhost ~]# rpm -qa | grep lvm

lvm2-2.02.130-5.el7.x86_64

mesa-private-llvm-3.6.2-2.el7.x86_64

lvm2-libs-2.02.130-5.el7.x86_64

查看结果可知系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包。

四、创建和管理逻辑卷

常用命令
在这里插入图片描述
4.1逻辑卷的创建过程:
1)创建物理分区

在使用LVM之前,需要先划分磁盘分区,也就是使用fdisk命令划分磁盘分区。不过在创建分区的时候,需要指定分区类型为linux LVM,对应的ID为8e(其实LVM也能识别linux默认的分区类型83)。

添加三块5G大小的磁盘,第一块磁盘的分区方法为:2G大小的主分区和3G大小的逻辑分区;第二块磁盘的分区方法为:两个2G大小的逻辑分区;第三块磁盘不分区。

[root@localhost ~]# fdisk -l /dev/sdb在这里插入图片描述
[root@localhost ~]# fdisk -l /dev/sdc
在这里插入图片描述
[root@localhost ~]# partprobe
(2)创建物理卷(pv)

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb5 /dev/sdc5 /dev/sdc6 /dev/sdd

[root@localhost ~]# pvdisplay

[root@localhost ~]# pvscan

[root@localhost ~]# pvs

(3)创建卷组

将物理卷/dev/sdb1,/dev/sdb5和/dev/sdc5加入卷组vg1;将物理卷/dev/sdc6,/dev/sdd加入卷组vg2,该卷组的PE尺寸为8MB

[root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdb5 /dev/sdc5

[root@localhost ~]# vgcreate -s 8M vg2 /dev/sdc6 /dev/sdd

[root@localhost ~]# vgdisplay

[root@localhost ~]# vgscan

[root@localhost ~]# vgs

(4)创建逻辑卷

第一个逻辑卷的名字为lv1,所属卷组为vg1,大小为6G;第二个逻辑卷的名字为lv2,所属卷组为vg2,大小为5G;第三个逻辑卷的名字为lv3,所属卷组为vg2,该逻辑卷由100个PE组成。

[root@localhost ~]# lvcreate -L 6G -n lv1 vg1

[root@localhost ~]# lvcreate -L 5G -n lv2 vg2

[root@localhost ~]# lvcreate -l 100 -n lv3 vg2

[root@localhost ~]# lvdisplay

[root@localhost ~]# lvscan

[root@localhost ~]# lvs

(5)格式化逻辑卷,创建文件系统,并挂载

将新建的逻辑卷lv1和lv2格式化为ext4的文件系统,将lv3格式化为xfs的文件系统,三个逻辑卷可分别自动挂载在/logical/lv1,/logical/lv2,/logical/lv3目录。

[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1

[root@localhost ~]# mkfs.ext4 /dev/vg2/lv2

[root@localhost ~]# mkfs.xfs /dev/vg2/lv3

[root@localhost ~]# mkdir -p /logical/{lv1,lv2,lv3}

[root@localhost ~]# blkid

[root@localhost ~]# vim /etc/fstab

UUID=c47eb7a0-013d-4dc2-8b6c-4441186583e7 /logical/lv1 ext4 defaults 0 0

UUID=1f7f9b71-c99f-41fe-b647-25f3a18e875f /logical/lv2 ext4 defaults 0 0

UUID=baa50c7f-de65-4baa-8bd9-a89f611fd9f3 /logical/lv3 xfs defaults 0 0

[root@localhost ~]# mount -a

[root@localhost ~]# df -h
4.2修改逻辑卷的大小:
扩大需要添加新的物理卷到逻辑卷所在卷组(xfs的文件系统只支持扩大逻辑卷,ext4的文件系统支持扩大和缩小逻辑卷)。

(1)缩小ext4文件系统类型的逻辑卷:假设缩小逻辑卷lv1为3G

先卸载逻辑卷

[root@localhost ~]# umount /logical/lv1/

如果无法卸载(显示设备正忙),则是有进程占用该挂载点目录,使用如下命令来终止占用进程:fuser -m -k 挂载点目录

[root@localhost ~]# e2fsck -f /dev/vg1/lv1

[root@localhost ~]# resize2fs /dev/vg1/lv1 3G

[root@localhost ~]# lvreduce -L 3G /dev/vg1/lv1 或者[root@localhost ~]# lvresize -L 3G /dev/vg1/lv1

[root@localhost ~]# mount -a

[root@localhost ~]# df -h

(2)扩大ext4文件系统类型的逻辑卷:假设扩大逻辑卷lv2为6G

首先得查看剩余卷组容量是否足够逻辑卷的扩大

[root@localhost ~]# vgs

可不卸载

[root@localhost ~]# lvextend -L 6G /dev/vg2/lv2

[root@localhost ~]# resize2fs /dev/vg2/lv2

(3)缩小和扩大ext4文件系统的逻辑卷

不论是扩大还是缩小均可以使用命令lvresize,同时lvresize的一个-r的选项可以实现执行lvresize的时候一并执行resize2fs。

假设将lv1缩小至2G

[root@localhost ~]# lvresize -L 2G -r /dev/vg1/lv1

Do you want to unmount “/logical/lv1”? [Y|n] y

(4)扩大xfs文件系统的逻辑卷

假设扩大lv3的大小为1600M

首先得查看剩余卷组容量是否足够逻辑卷的扩大

[root@localhost ~]# vgs

查看之后发现lv3的卷组vg2的容量不够,所以得先扩大卷组的容量

[root@localhost ~]# fdisk /dev/sdc

[root@localhost ~]# pvcreate /dev/sdc7

[root@localhost ~]# vgextend vg2 /dev/sdc7

[root@localhost ~]# vgs

[root@localhost ~]# lvextend -L 1600M /dev/vg2/lv3

[root@localhost ~]# xfs_growfs /dev/vg2/lv3

(5)假设某个磁盘或者分区被损坏

假设要将/dev/sdd从卷组中删除,先查看该磁盘所在的卷组有没有多余的空间

[root@localhost ~]# vgs

如果损坏磁盘所在的卷组没有多余空间,则准备好一个和该磁盘大小相同的分区或者是磁盘,这里假设有一个分区大小为5G的分区/dev/sda5

[root@localhost ~]# pvcreate /dev/sda5

[root@localhost ~]# vgextend vg2 /dev/sda5

[root@localhost ~]# pvmove /dev/sdd /dev/sda5 将/dev/sdd中的PE全部移动到/dev/sda5中

[root@localhost ~]# vgreduce vg2 /dev/sdd

4.3删除物理卷、卷组和逻辑卷
先删除逻辑卷,再删除卷组,最后再删除物理卷。在删除的同时需要把/etc/fstab里面的相关挂载信息删除或者注释,否则系统会无法正常启动

[root@localhost ~]# umount /logical/{lv1,lv2,lv3}

[root@localhost ~]# lvremove /dev/vg1/lv1 /dev/vg2/lv2 /dev/vg2/lv3

[root@localhost ~]# vgremove vg1 vg2

[root@localhost ~]# pvremove /dev/sda5
————————————————
版权声明:本文为CSDN博主「闪电一样的女子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42179528/article/details/93871802

发布了14 篇原创文章 · 获赞 0 · 访问量 137
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览