通过VG方式给CentOS 7的root分区扩容

@老徐  September 29, 2017

我有个VPS,因为不能自己安装系统,每次都得提交工单让他们帮助安装,而他们使用的也是模板安装,系统盘只给20G,/dev/mapper/centos-root分区只有8.5G,系统刚安装完一切都还好,大概只占用了不到2G,可是日积月累,这个分区就会吃满。那有没有办法在后期给/dev/mapper/centos-root分区扩展呢?最好是无痛的,答案当然是:有。
这个是有前提条件的,那就是你还得有一块数据盘,当然,我的VPS是有格外有一块150G的数据盘了,我不想把整块硬盘全加到/dev/mapper/centos-root分区,所以,先把这个数据盘分区,比如我要拿出30G加到root分区,那么我就需要把数据盘分成30G和120G这两个区,之后把30G的分区加到root上。下面是简单的步骤了:
1.先看下各盘的占用情况:

[root@localhost ~]# df -h

显示:

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.5G  1.8G  6.8G  21% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   17M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                497M  151M  346M  31% /boot
tmpfs                    379M     0  379M   0% /run/user/0

查看磁盘情况:

fdisk -l

之后给空闲的数据盘分区,分成30G和120G两个区:

fdisk /dev/sdb
n
p
enter
enter
+30G
w

和第二个区:

fdisk /dev/sdb
n
p
enter
enter
enter
w

分完区之后,对两个区分别格式化:

mkfs.ext4 /dev/sdb1

mkfs.ext4 /dev/sdb2

创建PV:

[root@localhost ~]# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.

查看下vg组:

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- <9.51g 40.00m

使用vgextend命令,扩展vg:

[root@localhost ~]# vgextend centos /dev/sdb1
  Volume group "centos" successfully extended

再查看下vg组:

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   2   2   0 wz--n- 39.50g <30.04g

看下lv:

[root@localhost ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <8.47g
  swap centos -wi-ao----  1.00g

使用lvextend来扩展lv

[root@localhost ~]# lvextend -L +30G /dev/mapper/centos-root
  Size of logical volume centos/root changed from <8.47 GiB (2168 extents) to <38.47 GiB (9848 extents).
  Logical volume centos/root successfully resized.

查看下lv:

[root@localhost ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <38.47g
  swap centos -wi-ao----   1.00g

使用df -h看下分区情况:

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.5G  1.8G  6.8G  21% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   17M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                497M  151M  346M  31% /boot
tmpfs                    379M     0  379M   0% /run/user/0

发现大小还是没变,我们使用xfs_growfs来重新读取一次:

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

我们再来看下加没加上:

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   39G  1.8G   37G   5% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   17M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                497M  151M  346M  31% /boot
tmpfs                    379M     0  379M   0% /run/user/0

现在/dev/mapper/centos-root变成了39G,多出来了30G,说明已经加上了。
到这里操作就已经结束了。


添加新评论