Centos 根目录空间扩容

业务系统在使用过程中难免遇到空间扩容的时候,今天分享一下 Centos 根目录扩容的的过程。

我们是虚拟机环境,先再 vSphere 里面给虚拟机磁盘增加一下,正式环境操作前请一定要备份

虚拟机设置界面硬盘增加空间

磁盘增加之后,进入虚拟机,查看本机磁盘环境

[root@jump ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 7.8G     0  7.8G    0% /dev
tmpfs                    7.8G     0  7.8G    0% /dev/shm
tmpfs                    7.8G  8.9M  7.8G    1% /run
tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root  196G  144G   53G   74% /
/dev/sda2                2.0G  194M  1.8G   10% /boot
tmpfs                    1.6G     0  1.6G    0% /run/user/0
[root@jump ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0    2T  0 disk 
├─sda1            8:1    0    1M  0 part 
├─sda2            8:2    0    2G  0 part /boot
├─sda3            8:3    0  198G  0 part 
│ ├─centos-root 253:0    0  196G  0 lvm  /
│ └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
└─sda4            8:4    0  800G  0 part 
sr0              11:0    1  4.4G  0 rom  

可以看到根目录总容量为200G, 设备 sda 的总容量为2T。

添加磁盘分区

总共 2T 容量,根目录已有200G, 我们再添加 800G 容量。

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

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


命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
已选择分区 4
起始 扇区 (419430400-4194303999,默认为 419430400):
将使用默认值 419430400
Last 扇区, +扇区 or +size{K,M,G} (419430400-4194303999,默认为 4194303999):+800G
分区 4 已设置为 Linux 类型,大小设为 800 GiB

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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。

[root@localhost ~]# partprobe

然后查看分区是否创建:

[root@jump ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0    2T  0 disk 
├─sda1            8:1    0    1M  0 part 
├─sda2            8:2    0    2G  0 part /boot
├─sda3            8:3    0  198G  0 part 
│ ├─centos-root 253:0    0  196G  0 lvm  /
│ └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
└─sda4            8:4    0  800G  0 part 
sr0              11:0    1  4.4G  0 rom  

可以看到sda2 分区已创建。

开始扩容

创建物理卷:

[root@jump ~]# lvm
lvm> pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created.

查看物理卷和卷组:

lvm> pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               centos
  PV Size               198.04 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              50699
  Free PE               0
  Allocated PE          50699
  PV UUID               24y3f2-HQ0Z-BeqV-Em2C-jqGy-YxUT-vokSaz
   
  "/dev/sda4" is a new physical volume of "800.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda4
  VG Name               
  PV Size               800.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               OiA1Jj-Nwkd-GgTh-DN8y-aK0d-89Fg-EtgY7l

将物理卷加入到卷组:

lvm> vgextend centos /dev/sda4
  Volume group "centos" successfully extended
lvm> vgdisplay
  --- 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               <998.04 GiB
  PE Size               4.00 MiB
  Total PE              255498
  Alloc PE / Size       50699 / 198.04 GiB
  Free  PE / Size       204799 / <800.00 GiB
  VG UUID               tYB1X1-rFvd-qekt-I96G-qyUb-VvQA-GBFbme

可以看到卷组的Free size 增加了

将卷组剩余空间(刚添加的 800G )添加到逻辑卷 /dev/centos/root :

lvm> lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from 196.04 GiB (50187 extents) to <996.04 GiB (254986 extents).
  Logical volume centos/root successfully resized.

同步到文件系统

之前只是对逻辑卷扩容,还要同步到文件系统,实现对根目录的扩容。

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

然后再查看挂载情况:

[root@jump ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 7.8G     0  7.8G    0% /dev
tmpfs                    7.8G     0  7.8G    0% /dev/shm
tmpfs                    7.8G  8.9M  7.8G    1% /run
tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root  996G  144G  853G   15% /
/dev/sda2                2.0G  194M  1.8G   10% /boot
tmpfs                    1.6G     0  1.6G    0% /run/user/0

可以发现有800G的空间挂载在根目录上。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注