逻辑卷扩容

Posted yizhangheka

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逻辑卷扩容相关的知识,希望对你有一定的参考价值。

今天开发部门问了这么一个问题,如下所示,说实话看到这个问题时有点蒙了,看着很熟悉,但是已经忘记怎么做了!一个红帽公司认证的工程师竟然连这么简单的问题都回答不上来!你知道有多尴尬吗!

技术图片

 

技术图片

技术图片

 

技术图片

 

下班回家之后,匆忙跑完步之后,特地搭建一个相似的环境,准备一雪前耻!

技术图片

目前的场景是这样的,如下图所示:

技术图片

如上图所示,/dev/mapper/centos_tdtd-root是逻辑卷,它的容量是50G,已经用了10%,挂载到根上了,我觉得太小了,想扩容到150G左右!如何做呢?

步骤及思路:

思路其实非常简单,简单到一句话就可以说完:“先看看逻辑卷所在的卷组有没有空间,如有,将之扩容到逻辑卷即可,如果没有,加之再扩容。”

如果逻辑卷所在的卷组有空间
  直接扩容逻辑卷空间即可
否则
  先给卷组扩容空间,然后再给逻辑卷扩容空间

第一步:确定/dev/mapper/centos_tdtd-root逻辑卷所在的卷组,查看卷组还没有空间的空间能够用来扩容逻辑卷。

[root@tdtd ~]# vgdisplay    #查看当前系统的卷组,发现只有一个卷组,名字叫centos_tdtd
--- Volume group ---
VG Name centos_tdtd
System ID 
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <499.00 GiB 
PE Size 4.00 MiB
Total PE 127743
Alloc PE / Size 127742 / 498.99 GiB
Free PE / Size 1 / 4.00 MiB      #重点关注这里,发现空闲的空间已经很小了,已经不够扩容逻辑卷了。
VG UUID GytyU4-O0Bs-z4Jh-Pz92-tb8C-KJNP-1oHKSs

第二步:通过第一步我们知道了/dev/mapper/centos_tdtd-root这个逻辑卷在centos_tdtd卷组里面,而centos_tdtd卷组没有空闲的空间了,所以无法给/dev/mapper/centos_tdtd-root扩容空间了,怎么办呢?办法只有一个,给centos_tdtd卷组增加空间,把卷组的空间变大之后才能给逻辑卷扩容,那么怎样给卷组扩容呢?办法也只有一个,将新的硬盘、分区、磁盘阵列加入到卷组,我们就选择将某个分区加入到卷组里面这种方法。

  1. 将虚拟机关机之后再加一块100G的硬盘,重启。
  2. 在新硬盘上创建分区sdb1,一个分区独占整个sdb硬盘,也就是说sdb1的大小也是100G,然后更改分区类型为8e,使其支持LVM。
  3. 将sdb1格式化为物理卷
root@tdtd ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.

将新分区加入到卷组centos_tdtd里面

[root@tdtd ~]# vgextend centos_tdtd /dev/sdb1
  Volume group "centos_tdtd" successfully extended

我们再查看centos_tdtd卷组空闲空间的大小,如下图所示:

技术图片

通过上图我们发现,centos_tdtd卷组里空闲空间由之前的4M,变成了现在的100G,好了,我们下面可以对逻辑卷/dev/mapper/centos_tdtd-root进行扩容了。

第三步:扩容/dev/mapper/centos_tdtd-root

在还没开始扩容之前,再瞅/dev/mapper/centos_tdtd-root逻辑卷最后一眼,如下图所示:

[root@tdtd ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos_tdtd/root
LV Name root
VG Name centos_tdtd
LV UUID c4js0d-EvTV-JYf2-cQ7y-N5Ww-zFPf-v3jXvJ
LV Write Access read/write
LV Creation host, time bogon, 2019-07-31 19:19:10 +0800
LV Status available
# open 1
LV Size 50.00 GiB   #没扩容之前是50G,与df-h查看的时候一样。
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
[root@tdtd ~]# df -h
文件系统                      容量  已用  可用 已用% 挂载点
/dev/mapper/centos_tdtd-root   50G  4.6G   46G   10% /
devtmpfs                      1.9G     0  1.9G    0% /dev
tmpfs                         1.9G     0  1.9G    0% /dev/shm
tmpfs                         1.9G   13M  1.9G    1% /run
tmpfs                         1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1                    1014M  179M  836M   18% /boot
/dev/mapper/centos_tdtd-home  445G   37M  445G    1% /home
tmpfs                         378M  4.0K  378M    1% /run/user/42
tmpfs                         378M   28K  378M    1% /run/user/1000
/dev/sr0                      4.3G  4.3G     0  100% /run/media/zh/CentOS 7 x86_64
tmpfs                         378M     0  378M    0% /run/user/0
技术图片

[root@tdtd ~]# lvextend -L +99G /dev/mapper/centos_tdtd-root #给逻辑卷/dev/mapper/centos_tdtd-root 加上99G Size of logical volume centos_tdtd/root changed from 50.00 GiB (12800 extents) to 149.00 GiB (38144 extents). Logical volume centos_tdtd/root successfully resized.

 可能有的同学有疑问,为什么不直接加100G,还要留1G,因为怕它骄傲,故意留的!!好了,再看逻辑卷/dev/mapper/centos_tdtd-root的大小,如下所示:

[root@tdtd ~]# df -h
文件系统                      容量  已用  可用 已用% 挂载点
/dev/mapper/centos_tdtd-root   50G  4.6G   46G   10% /     #尼玛!怎么还是50G!这是怎么回事,不要慌!看下面的操作。
devtmpfs                      1.9G     0  1.9G    0% /dev
tmpfs                         1.9G     0  1.9G    0% /dev/shm
tmpfs                         1.9G   13M  1.9G    1% /run
tmpfs                         1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1                    1014M  179M  836M   18% /boot
/dev/mapper/centos_tdtd-home  445G   37M  445G    1% /home
tmpfs                         378M  4.0K  378M    1% /run/user/42
tmpfs                         378M   28K  378M    1% /run/user/1000
/dev/sr0                      4.3G  4.3G     0  100% /run/media/zh/CentOS 7 x86_64
tmpfs                         378M     0  378M    0% /run/user/0

 技术图片

当给逻辑卷扩容之后并不是立马生效的,还要有一步,让扩容的空间生效,如下所示:

[root@tdtd ~]# xfs_growfs /dev/mapper/centos_tdtd-root
meta-data=/dev/mapper/centos_tdtd-root isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 39059456
[root@tdtd ~]# df -h
文件系统                      容量  已用  可用 已用% 挂载点
/dev/mapper/centos_tdtd-root  149G  4.6G  145G    4% /
devtmpfs                      1.9G     0  1.9G    0% /dev
tmpfs                         1.9G     0  1.9G    0% /dev/shm
tmpfs                         1.9G   13M  1.9G    1% /run
tmpfs                         1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1                    1014M  179M  836M   18% /boot
/dev/mapper/centos_tdtd-home  445G   37M  445G    1% /home
tmpfs                         378M  4.0K  378M    1% /run/user/42
tmpfs                         378M   28K  378M    1% /run/user/1000
/dev/sr0                      4.3G  4.3G     0  100% /run/media/zh/CentOS 7 x86_64
tmpfs                         378M     0  378M    0% /run/user/0

 技术图片

 

以上是关于逻辑卷扩容的主要内容,如果未能解决你的问题,请参考以下文章

Linux下非逻辑卷扩容之新增盘扩容

Linux下非逻辑卷扩容之新增盘扩容

Linux下非逻辑卷扩容之创建逻辑卷pvcreate是否会损坏原数据测试

Linux 逻辑卷扩容

Linux下非逻辑卷扩容之创建逻辑卷pvcreate是否会损坏原数据测试

Linux下非逻辑卷扩容之创建逻辑卷pvcreate是否会损坏原数据测试