CentOS LVM扩展已有磁盘

【前言】

       干运维一年以来,已经遇到好几次需要扩展目录空间的情景,每次都是同事帮忙解决,这次花一点时间了解下。在某搜索引擎上查阅大量资料以及咨询大佬们的帮助下,有了点自己的小小的理解,如有不对,还请各位指出~

【相关名词】

       在进行步骤之前,先来了解几个名词,在Linux存储系统中,有以下概念名词:

物理存储介质:

       系统的物理存储设备,也就是常说的磁盘/硬盘,在linux系统中查看标识如:/dev/sda、/dev/hda等。

物理卷(Physical Volume,PV):

       是具体的硬盘分区,在linux系统中查看标识如:/dev/sda1、/dev/sda2等,是lvm的基本存储单元,可以理解为加了lvm相关管理参数的物理存储介质。

物理块(PE):

       物理卷pv中可以分配的最小存储单元,PE的大小可以指定,默认为4MB

卷组(Volume Group,VG):

       顾名思义,物理卷的组合,由一个或多个物理卷组成,类似与windows中的物理硬盘。卷组(VG)就好比一个柜子,物理卷(PV)就是这个柜子的抽屉。

逻辑卷(Logical Volume,LV):

       可以类比为windows中的c盘、d盘这样子,具体在linux中的标识就是各个目录,比如:/、/home、/data。我们现在用的CentOS的文件系统就基本是建立在这个之上的。

逻辑块(LE):

       逻辑卷LV中可以分配的最小存储单元,在同一个卷组中LE和PE是相同的,并且一一对应

逻辑卷管理(Logical Volume Manager,LVM):

       Linux环境中介于底层硬盘和文件系统中间的一种管理机制。它的原理就是通过对物理硬盘进行封装为物理卷(pv),添加到一个资源池--卷组(vg),然后再划分各个逻辑卷(lv)提供给上层应用。如此一来,上层应用是通过逻辑卷对底层物理硬盘进行操作,这样做的好处在于,可以灵活的增加/缩减空间。

       为什么说能灵活的增加/缩减空间呢?如果上层应用是直接对接物理硬盘的,你一个盘满了,那么要怎么达到扩展空间的目的呢?最先想到的是不是换个大点的物理硬盘,然后把文件拷贝到新盘去?如果说文件不大还好说,如果文件是几个TB,那怎么办?好,就算几个TB,你可以等,那如果是几个PB呢?怎么解决?还是用拷贝的方式?很显然不是很现实,这个时候lvm的优势就展现出来了,我只需要将新增的物理硬盘添加进卷组(VG),然后再给需要扩展的盘添加空间就可以了,是不是省去了拷贝这么个步骤呢?

       在别人博客借个图,如下图描述了整个lvm的大致架构流程,更好理解点。

 

       那么你会好奇了,我要如何进行这个空间的扩展/缩减呢?接下来就是具体的扩展内容了。

 简洁步骤见文末,以下为详细讲解步骤

【lvm扩展已有磁盘】

       首先给虚拟机添加一块新的硬盘,这里我加了个10G的硬盘

1、查看新增硬盘是否成功,如下图可以看到新增了个/dev/sdb盘

fdisk -l

2、创建硬盘分区

fdisk /dev/sdb

3、改变分区格式

4、查看是否分区成功

fdisk -l

可以看到已经出现了/dev/sdb1,但是此时还并未真正成为一个pv,需要进行下一步。

5、创建pv

pvcreat /dev/sdc1

6、查看确认pv创建成功

pvdisplay

7、查看现有的vg

vgdisplay

这里我需要扩展根目录所在的vg,即图中vg名为centos

8、扩展vg

vgextend centos /dev/sdb1

9、查看vg是否扩展成功

vgdisplay

可以看到Free PE 已经变为10G了。

10、查看你想要扩展的目录的lv路径

lvdisplay

这里我准备扩展根目录,如图路径为/dev/centos/root

11、扩展lv

lvextend -l +100%free /dev/centos/root

通过vgdisplay查看vg的free pe已经变为0了,alloc pe也由原来的50G变为60G了,但是这时候还需要最后一步

12、刷新格式xfx格式文件系统大小

xfs_growfs /dev/centos/root

这里需要根据你的格式来用不同的命令,如果不是xfs系统就不能用这个命令,可以看到已经更新了,至此,扩展就完成了

简洁版本: 

1、分区
[root@VM171-test-ng_proxy ~]# fdisk /dev/sdb 
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xb5ab0716.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

2、创建pv
[root@VM171-test-ng_proxy ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.

3、扩展vg
[root@VM171-test-ng_proxy ~]# vgextend centos /dev/sdb1 
  Volume group "centos" successfully extended

4、扩展lv
[root@VM171-test-ng_proxy ~]# lvextend -l +100%free /dev/centos/root 
  Size of logical volume centos/root changed from 46.99 GiB (12030 extents) to 56.99 GiB (14590 extents).
  Logical volume centos/root successfully resized.

5、刷新xfs文件系统
[root@VM171-test-ng_proxy ~]# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3079680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=12318720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6015, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12318720 to 14940160

        在文末要再次感谢各位大佬耐心给我讲解相关的知识点~

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hobby云说

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

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

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

打赏作者

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

抵扣说明:

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

余额充值