逻辑卷扩容
今天开发部门问了这么一个问题,如下所示,说实话看到这个问题时有点蒙了,看着很熟悉,但是已经忘记怎么做了!一个红帽公司认证的工程师竟然连这么简单的问题都回答不上来!你知道有多尴尬吗!
下班回家之后,匆忙跑完步之后,特地搭建一个相似的环境,准备一雪前耻!
目前的场景是这样的,如下图所示:
如上图所示,/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卷组增加空间,把卷组的空间变大之后才能给逻辑卷扩容,那么怎样给卷组扩容呢?办法也只有一个,将新的硬盘、分区、磁盘阵列加入到卷组,我们就选择将某个分区加入到卷组里面这种方法。
- 将虚拟机关机之后再加一块100G的硬盘,重启。
- 在新硬盘上创建分区sdb1,一个分区独占整个sdb硬盘,也就是说sdb1的大小也是100G,然后更改分区类型为8e,使其支持LVM。
- 将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 # 等同于resiozee2fs
[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