ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

centos7 LVM逻辑卷的配置和管理

2020-12-12 20:01:41  阅读:332  来源: 互联网

标签:逻辑 PV centos VG dev centos7 PE LVM root


1、什么是LVM
传统的分区都是一次性分区,即分区后其大小就是固定的,不能后期因为空间不足进行大小调整,如果要改变,唯一的操作办法就是重新分区,这对于需要高可用的服务器环境是非常糟糕的,所以此时引入了LVM逻辑卷管理模式,LVM就是一个建立在物理存储驱动器上的逻辑驱动机制,它的作用主要是使存储设备的空间调整处于一种弹性的工作状态,不在是固定的,可以根据环境的需求,动态的调整空间的使用量,不但可以扩容,也可以缩减,而且调整存储空间的时候不需要重启系统,它还有一个最大的优点就是可以跨硬盘调整分区大小,完全不影响系统的运行。
2、LVM逻辑卷的体系结构
centos7  LVM逻辑卷的配置和管理
3、LVM体系思路
首先将一个或者多个物理存储空间,初始化配置,将它们都配置成为LVM系统识别的物理卷,即将它们的磁盘标签设置成为Linux LVM类型,这里的物理存储空间可以是基本磁盘分区,也可以是整个物理磁盘,或者创建的RAID卷
当初始化完成后,都变成物理卷PV,接下来要他们组成一个队伍,即分成一个组,因为他们此前都是单兵作战,不能同一队形,这样对于操作系统而言,还是认为这是各自独立的存储磁盘,所以我们要让操作系统知道这些都是一个存储空间,至少在形式上让它这样以为,这就为我们后面调整存储空间解放自由,不在受限,任意而为。
在上述之后,我们就可以在这个组之上,任意划分逻辑卷LV,并且建立文件系统,存储我们的数据。
4、完整的配置实践
这里我们以centos7系统的根目录为例
操作平台:VMware workstation
操作环境:centos7计算机一台,添加一块硬盘空间为20G
这里需要注意一点:操作之前,如果你是用磁盘分区的形式来做,记得将分区类型设置为Linux LVM
5、命令操作
创建之前我们先看一下,我们当前根目录的空间使用情况,可用空间为12G
在这里插入图片描述
创建物理卷

[root@lab-235 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.

查看物理卷信息可以用到以下几个命令
pvscan:扫描物理卷

[root@lab-235 ~]# pvscan 
  PV /dev/sda2   VG centos          lvm2 [19.80 GiB / 0    free]
  PV /dev/sdb                       lvm2 [20.00 GiB]
  Total: 2 [39.80 GiB] / in use: 1 [19.80 GiB] / in no VG: 1 [20.00 GiB]

我们可以看到现在有两个物理卷,一个是我们系统的根分区,还有一个是我们刚刚创建的/dev/sdb
pvs:显示物理卷的基本信息

[root@lab-235 ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree 
  /dev/sda2  centos lvm2 a--  19.80g     0 
  /dev/sdb          lvm2 ---  20.00g 20.00g

pvdisplay:显示物理卷的详细信息

[root@lab-235 ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               19.80 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5069
  Free PE               0
  Allocated PE          5069
  PV UUID               t9BxDY-n5nR-rkvF-V5zc-J3kU-3GML-27X82p

  "/dev/sdb" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Sv5VLs-ITKr-q0wj-z187-cbrW-cOUU-8gfySV

接下来我们要将新创建的物理卷添加到我们根分区所在的逻辑组,此处我们可以通过以下几个命令首先获取根分区所在组的名称(VG name):
1、可以用上述pvscan、pvs、pvdisplay,我们都可以看到VG的名字是centos
2、也可以使用vgscan、vgs、vgdisplay,逻辑组专用命令查看
扩展根分区的逻辑组centos,此处因为我们是扩展根分区,如果要创建可以使用vgcreate命令

[root@lab-235 ~]# vgextend centos /dev/sdb
  Volume group "centos" successfully extended

查看扩展后VG的情况

[root@lab-235 ~]# vgdisplay centos 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <39.80 GiB
  PE Size               4.00 MiB
  Total PE              10188
  Alloc PE / Size       5069 / 19.80 GiB
  Free  PE / Size       5119 / <20.00 GiB
  VG UUID               RI64Bu-s1Gr-V1Jh-JcWr-EpSS-Z8zr-uwaKmp

此时我们看到VG Size明显的变大了,从原来的19.8G,变成了39.8G
接下来我们将19G空间分配到根分区上去

[root@lab-235 ~]# lvresize  -L +19G /dev/centos/root 
  Size of logical volume centos/root changed from 16.07 GiB (4115 extents) to 35.07 GiB (8979 extents).
  Logical volume centos/root successfully resized.

此时逻辑卷已经增加,但是文件系统的容量是没有增加的,此时我们还需要调整文件系统容量,这里需要注意当前被扩展分区的系统类型,如果是xfs,就使用xfs_growfs,如果是ext系列的,就使用resize2f
查看文件系统类型我们可以使用blkid

[root@lab-235 ~]# blkid
/dev/sda1: UUID="a4afdc45-11ae-4ea5-afd4-394e94d3b2da" TYPE="xfs" 
/dev/sda2: UUID="t9BxDY-n5nR-rkvF-V5zc-J3kU-3GML-27X82p" TYPE="LVM2_member" 
/dev/sdb: UUID="Sv5VLs-ITKr-q0wj-z187-cbrW-cOUU-8gfySV" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="c33942b5-fd49-47e1-8d55-ea7dda4afc34" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="42ef240a-ebdf-4ef8-94ad-04a7a03b8915" TYPE="swap" 

调整文件系统容量

[root@lab-235 ~]# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1053440 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4213760, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4213760 to 9194496

此时查看文件系统容量,发生如下改变,从原来的12G变成31G
在这里插入图片描述
至此完成扩容

总结:

1、如果是新创建的LVM,操作如下

pvcreate  /dev/sdb  /dev/sdc
vgcreate  -s 24M  vgname  /dev/sdb  /dev/sdc

说明:在创建卷组时需要注意一点,因为卷组相当于的存放很多物理卷的池子,我们可以在这个池子中添加物理卷,也可以移除,但是在卷组中,它会把这些物理卷的空间全部重新分配为大小相同的容量区域,称之为PE,所以在实际工作需要中根据自身需求可以指定这个PE的大小,默认是4MB,可以通过-s选项指定大小

lvcreate -L +20G  -n  lvname vgname

也可以使用小L指定PE数创建逻辑卷,此时路基卷大小N*单个PE大小,N表示PE个数
接下来就是文件系统的创建,和上面扩容后操作一样,根据需求选在文件系统格式
2、LVM减容操作时,如果从有数据的逻辑卷上操作,一定要先备份数据(当我们在做磁盘管理时,无论做何种操作,尤其是有危害到数据的动作,一定要先备份),因为减容前,我们要先卸载目录,然后操作,完成后,因为存储空间元数据发生改变,此时在挂载时,会提示找不到文件系统的超级块,会要求重新建立文件系统,相当于格式化操作。具体操作如下
备份数据

cp  -R  /test    /back

卸载目录

mount   /test

如果无法卸载,查看当前目录有哪些用户使用,可以使用kill命令直接杀死进程号,也可以使用fuser命令的选项-k,直接杀死指定文件的所有进程

fuser  /test

fuser命令可以通过安装psmisc软件包获取
压缩空间

resize2fs  /dev/vgname/lvname1  10G 

减容

lvreduce  -L  10G  /dev/vgname/lvname1   

表示将lvname1空间减少至10G

lvreduce -L -10G  /dev/vgname/lvname1   

表示将lvname1空间减少10G
3、查看LV逻辑卷配置信息,可使用如下命令
lvscan:扫描逻辑卷
lvs:显示基本信息
lvdisplay:显示详细信息
4、快照卷的创建,用到如下选项
-s:表示创建快照
-p r|w:指定快照读或者写权限
用法:lvcreate -L 10G -n snap-name -s -p r /dev/vgname/lvname1
针对逻辑卷lvname1创建一个10G大小的快照卷
快照卷的作用:如果遇到逻辑卷数据被删除,可从快照卷中恢复

标签:逻辑,PV,centos,VG,dev,centos7,PE,LVM,root
来源: https://blog.51cto.com/6461704/2563263

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有