vlambda博客
学习文章列表

磁盘空间不够用?centos7如何给分区扩容

一、前言

今天发现,服务器的/home 目录的硬盘空间被挤满了,原因是mysql的大量数据占据了大多的内存,因此,需要对内存进行重新分区,命令如下:

[superadmin@localhost ~]# lsblk 
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   600G  0 disk 
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0   199G  0 part 
  ├─centos-root 253:0    0    50G  0 lvm  /
  ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 145.1G  0 lvm  /home
sr0              11:0    1   4.5G  0 rom  
[superadmin@localhost home]# du -h --max-depth=1 |grep 'G' |sort
118G    ./mysql8
145G    .
25G     ./nacos

在磁盘中,我们看到sda分配了600G的内存,但只分了两个sda1 和sda2,还剩余400G的内存未分配,造成了极大的浪费,因此需要先新建分区。

二、新建分区

新建后,需要刷新分区后才能看到新的分区sda3,如果还是不行就重启试试。

给新的分区300G 内存,剩余100G备用。

[superadmin@localhost home]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

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


命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
分区号 (3,4,默认 3):3
起始 扇区 (419430400-1258291199,默认为 419430400):
将使用默认值 419430400
Last 扇区, +扇区 or +size{K,M,G} (419430400-1258291199,默认为 1258291199):1048575999
分区 3 已设置为 Linux 类型,大小设为 300 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(8or kpartx(8)
正在同步磁盘。
[superadmin@localhost home]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   600G  0 disk 
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0   199G  0 part 
  ├─centos-root 253:0    0    50G  0 lvm  /
  ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 145.1G  0 lvm  /home
sr0              11:0    1   4.5G  0 rom  
[superadmin@localhost home]# partprobe /dev/sda
[superadmin@localhost home]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   600G  0 disk 
├─sda1            8:1    0     1G  0 part /boot
├─sda2            8:2    0   199G  0 part 
│ ├─centos-root 253:0    0    50G  0 lvm  /
│ ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]
│ └─centos-home 253:2    0 145.1G  0 lvm  /home
└─sda3            8:3    0   300G  0 part 
sr0              11:0    1   4.5G  0 rom  

三、分配内存

1、将新分区的sda3 分区创建为物理卷

[superadmin@localhost home]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

2、将创建好的物理卷扩展到/home所在卷组

[superadmin@localhost home]# vgdisplay -v
  --- Volume group ---
  VG Name               centos
  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               <199.00 GiB
  PE Size               4.00 MiB
  Total PE              50943
  Alloc PE / Size       50942 / 198.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               ditVGC-NFOL-cOTM-fW4Z-Btv4-yKLW-T1riU6

  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                DHEcu3-r7yQ-dcKB-ZvBV-1aZl-gbPT-CFGmf0
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-06-15 23:32:37 +0800
  LV Status              available
  # open                 2
  LV Size                <3.88 GiB
  Current LE             992
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos/home # 这个是我们目的扩容的目录
  LV Name                home
  VG Name                centos        # 这个是分区所在卷组名字
  LV UUID                kv17CJ-xC2V-olZV-5tL0-W1QM-ud5Y-c8PBwO
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-06-15 23:32:37 +0800
  LV Status              available
  # open                 1
  LV Size                <145.12 GiB
  Current LE             37150
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/centos/root  # 这个是根分区所挂载的逻辑卷路径
  LV Name                root
  VG Name                centos        # 这个是根分区所在卷组名字
  LV UUID                bA2a4N-7Alz-xNyU-FcWX-t8eX-Q4E8-ELqf8o
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-06-15 23:32:37 +0800
  LV Status              available
  # open                 1
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Physical volumes ---
  PV Name               /dev/sda2     
  PV UUID               hpbzq1-xMEL-PeVv-veFD-hrB2-13be-hjzcZr
  PV Status             allocatable
  Total PE / Free PE    50943 / 1

扩展卷组容量:

[superadmin@localhost home]# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

3、扩展/home 分区所挂载的逻辑卷路径并使扩容生效

# 将剩余可用容量全部扩展到 /dev/centos/home 
[superadmin@localhost home]# lvextend -l +100%FREE /dev/centos/home 
  Size of logical volume centos/home changed from <145.12 GiB (37150 extentsto <445.12 GiB (113950 extents).
  Logical volume centos/home successfully resized.
[superadmin@localhost home]# xfs_growfs /dev/centos/home
meta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=9510400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=38041600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=18575, version=2
         =                       sectsz=512   sunit=0 blkslazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 38041600 to 116684800

4、查看扩展后的/home 分区容量

[superadmin@localhost home]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   600G  0 disk 
├─sda1            8:1    0     1G  0 part /boot
├─sda2            8:2    0   199G  0 part 
│ ├─centos-root 253:0    0    50G  0 lvm  /
│ ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]
│ └─centos-home 253:2    0 445.1G  0 lvm  /home
└─sda3            8:3    0   300G  0 part 
  └─centos-home 253:2    0 445.1G  0 lvm  /home
sr0              11:0    1   4.5G  0 rom  

最后,大功告成!