rhel7的逻辑卷管理(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到卷组中。卷组的名称可以自定义。

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

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

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

7VGDAVolume 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工具包。

四、创建和管理逻辑卷

常用命令

任务

PV

VG

LV

创建

pvcreate

vgcreate

lvcreate

删除

pvremove

vgremove

lvremove

扫描列表

pvscan

vgscan

lvscan

显示属性

pvdisplay

vgdisplay

lvdisplay

显示相关信息

pvs

vgs

lvs

扩展

vgextend

Lvextend

缩减

vgreduce

Lvreduce

 

 

 

对lv进行容量大小的调整:lvresize

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值