Centos7.x根分区扩容

背景说明

我们在部署好的系统中,随着数据的不断增加, 发现根分区频繁出现满载问题,这种情况下,我们需要对根分区进行扩容。

方案说明

• 使用空闲磁盘扩容到根分区
• 使用空闲的分区扩容到根分区
• 使用卷组剩余的空间

限制条件

• 系统根分区必须为逻辑卷分区

扩容方案

方案1:空闲磁盘扩容到根分区

[root@yuhaohao ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xfc6b642b 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB
# 这里是将磁盘转换为lvm分区
命令(输入 m 获取帮助):T
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e  
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p

磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xfc6b642b

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4194303     2096128   8e  Linux LVM

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

# 创建物理卷
[root@yuhaohao ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.

# 扩展新增的物理卷到根分区的卷组中,说明:centos为根分区的卷组名称
[root@yuhaohao ~]# vgextend centos /dev/sdb1

# 将逻辑卷的空间扩展到根分区的空间中,注意:/dev/mapper/centos-root为根分区的文件系统名称,具体可以df -Th查看
[root@yuhaohao ~]# lvextend -l +100%FREE /dev/mapper/centos-root

# 刷新根分区,使扩容的空间生效
[root@yuhaohao ~]# xfs_growfs /dev/mapper/centos-root

方案2:使用空闲的分区扩容到根分区

# 这种场景适用于根分区存在未格式化的分区空间
# 查看当前系统目录分区信息
[root@yuhaohao ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 3.9G     0  3.9G   0% /dev
tmpfs                    3.9G  4.0K  3.9G   1% /dev/shm
tmpfs                    3.9G   17M  3.9G   1% /run
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root  18G   7.5G  10.5G  42% /
/dev/vda1                497M  172M  326M   35% /boot
tmpfs                    798M     0  798M   0% /run/user/0
[root@yuhaohao ~]# lsblk
NAME                                                                                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                                                                                          11:0    1 1024M  0 rom
vda                                                                                         252:0    0  200G  0 disk
├─vda1                                                                                      252:1    0  500M  0 part /boot
└─vda2                                                                                      252:2    0 19.5G  0 part
  ├─centos-root                                                                             253:0    0 17.5G  0 lvm  /
  └─centos-swap                                                                             253:1    0    2G  0 lvm  [SWAP]

# 这里我们可以看出根文件系统目录大小为18G,系统盘大小为200G。我们需要将系统盘剩余分区全部扩展到根分区使用。
[root@yuhaohao ~]# fdisk /dev/vda
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.
Command (m for help): n
# 1.下一步选择p 
# 2.下一步默认
# 3.下一步默认
# 4.下一步默认
# 5.下一步输入t(这里是修改分区类型)
# 6.下一步输入3
# 7.下一步分输入8e(分区格式)
# 8.下一步输入w保存当前修改

# 加载分区信息,这里我们上面使用fdisk工具只是将分区信息写到磁盘,如果需要mkfs磁盘分区则需要重启系统,而使用partprobe则可以使kernel重新读取分区信息,从而避免重启系统。
[root@yuhaohao ~]# partprobe

# 在创建好的分区中创建物理卷
[root@yuhaohao ~]# pvcreate /dev/vda3

# 查看创建好的物理卷
[root@yuhaohao ~]# pvdisplay

# 将创建好的物理卷加到根分区的卷组中
[root@yuhaohao ~]# vgextend centos /dev/vda3

# 将逻辑卷的空间扩展到根分区的空间中,注意:/dev/mapper/centos-root为根分区的文件系统名称,具体可以df -Th查看
[root@yuhaohao ~]# lvextend -l +100%FREE /dev/mapper/centos-root

# xfs_growfs命令在线调整xfs格式文件系统大小
[root@yuhaohao ~]# xfs_growfs /dev/centos/root

# 查看扩容结果
[root@yuhaohao ~]# lsblk
NAME                                                                                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0                                                                                           11:0    1  1024M  0 rom
vda                                                                                          252:0    0   200G  0 disk
├─vda2                                                                                       252:2    0  19.5G  0 part
│ ├─centos-swap                                                                              253:1    0     2G  0 lvm
│ └─centos-root                                                                              253:0    0 197.5G  0 lvm  /
├─vda3                                                                                       252:3    0   180G  0 part
│ └─centos-root                                                                              253:0    0 197.5G  0 lvm  /
└─vda1                                                                                       252:1    0   500M  0 part /boot

方案3:使用卷组剩余的空间

# 在实际的情况中,可能存在卷组中还存在未使用的空间,这里可以直接使用卷组的空间,扩容到对应的分区中
[root@yuhaohao~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               713.13 GiB
  PE Size               4.00 MiB
  Total PE              259362
  Alloc PE / Size       189440 / 440.00 GiB
  Free  PE / Size       69922 / 273.13 GiB
  VG UUID               9hZe8Z-bRSM-RSlQ-djFU-jrmg-aCrf-yzh3rx

# 上面可以看出,centos卷组还存在273G的未使用空间,这里可以将此部分空间扩容到根分区中。
# 这里待扩容的逻辑卷可以通过df -h看
[root@yuhaohao ~]# lvresize -L +200G /dev/mapper/centos-root
# xfs_growfs命令在线调整xfs格式文件系统大小
[root@yuhaohao ~]# xfs_growfs /dev/centos/root
posted @ 2020-11-16 12:07  yuhaohao  阅读(355)  评论(0编辑  收藏  举报