背景:公司云平台机器每次申请都会选择系统盘及新增数据盘的大小,对于数据盘可以创建物理卷和逻辑卷的方式进行挂载。但是对于根分区,假如创建云主机的时候选择系统盘是100G,但是等创建完成进入系统后发现,它的大小还是默认的初始大小40G,对于这种情况做以下处理:
初始状态:
1.首先执行命令查看块设备信息,并确定之后命令输入的数字顺序
[root@ctuphis00205 ~]# lsblk ---可以看到vda1,也就是初始40G的根分区是在vda下的顺序第一位
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 64G 0 disk
└─vda1 253:1 0 39G 0 part /
vdb 253:16 0 1T 0 disk
└─vg01-lv01 252:0 0 1024G 0 lvm /data
vdc 253:32 0 1T 0 disk
└─vg02-lv02 252:1 0 1024G 0 lvm /data01
vdd 253:48 0 1T 0 disk
└─vg03-lv03 252:2 0 1024G 0 lvm /data02
2.安装扩容工具
[root@ctuphis00205 ~]# yum install cloud-utils-growpart -y
也可以直接执行命令yum install cloud-*确保growpart命令可用即可
3.执行以下命令,使用工具growpart将第一分区的根分区进行扩容
[root@ctuphis00205 ~]# growpart /dev/vda 1
CHANGED: partition=1 start=2048 old: size=81786880 end=81788928 new: size=134215647 end=134217695
4.执行以下命令,检查在线扩容是否成功
[root@ctuphis00205 ~]# parted -l /dev/vda
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 68.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 68.7GB 68.7GB primary ext4 boot
5.同步文件系统
注意:
# ext4文件系统使用resize2fs扩展
resize2fs -f /dev/vda2
# xfs文件系统使用xfs_grows扩展
xfs_growfs /dev/vda2
[root@ctuphis00205 ~]# resize2fs -f /dev/vda1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 5, new_desc_blocks = 8
The filesystem on /dev/vda1 is now 16776955 blocks long.
6.检查
[root@ctuphis00205 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 8.8M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/vda1 63G 4.5G 56G 8% /
tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/vg01-lv01 1008G 77M 957G 1% /data
/dev/mapper/vg02-lv02 1008G 77M 957G 1% /data01
/dev/mapper/vg03-lv03 1008G 77M 957G 1% /data02
根分区已经扩容成功!!!
另一个情况:有lvm的情况
现有信息:
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 centos lvm2 a-- 348.99g 0
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- 348.99g 0
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 240.99g
root centos -wi-ao---- 100.00g
swap centos -wi-ao---- 8.00g
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 17M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 100G 82G 19G 82% /
/dev/sda2 1014M 137M 878M 14% /boot
/dev/mapper/centos-home 241G 84G 158G 35% /home
tmpfs 799M 0 799M 0% /run/user/0
[root@localhost ~]# fdisk -l
Disk /dev/sda: 375.8 GB, 375809638400 bytes, 734003200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b3ed6
Device Boot Start End Blocks Id System
/dev/sda1 2048 6143 2048 83 Linux
/dev/sda2 * 6144 2103295 1048576 83 Linux
/dev/sda3 2103296 734003166 365949935+ 8e Linux LVM
Disk /dev/mapper/centos-root: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-swap: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-home: 258.8 GB, 258763390976 bytes, 505397248 sectors
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 700G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 699G 0 part
├─centos-root 253:0 0 100G 0 lvm /
├─centos-swap 253:1 0 8G 0 lvm [SWAP]
└─centos-home 253:2 0 241G 0 lvm /home
sr0 11:0 1 10.9G 0 rom
可看到根分区和/home都在/dev/sda3下
现在要扩容根分区
以下是操作步骤:
#虚拟机加完磁盘后,在线刷新磁盘信息
[root@localhost ~]# echo 1 > /sys/block/sda/device/rescan
#查看磁盘是否刷新
[root@localhost ~]# fdisk -l
Disk /dev/sda: 751.6 GB, 751619276800 bytes, 1468006400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
已刷新
#查看lsblk信息
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 700G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 349G 0 part
├─centos-root 253:0 0 100G 0 lvm /
├─centos-swap 253:1 0 8G 0 lvm [SWAP]
└─centos-home 253:2 0 241G 0 lvm /home
sr0 11:0 1 10.9G 0 rom
新增容量已到sda下
#将容量给到sda3
[root@localhost ~]# growpart /dev/sda 3
CHANGED: partition=3 start=2103296 old: size=731899871 end=734003167 new: size=1465903071 end=1468006367
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 700G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 699G 0 part
├─centos-root 253:0 0 100G 0 lvm /
├─centos-swap 253:1 0 8G 0 lvm [SWAP]
└─centos-home 253:2 0 241G 0 lvm /home
sr0 11:0 1 10.9G 0 rom
容量已到sda3下
#pv重置大小
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 centos lvm2 a-- 348.99g 0
[root@localhost ~]# pvresize /dev/sda3
Physical volume "/dev/sda3" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 centos lvm2 a-- 698.99g 350.00g
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- 698.99g 350.00g
可以看到新增的容量到了PV
#扩容lv
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 240.99g
root centos -wi-ao---- 100.00g
swap centos -wi-ao---- 8.00g
[root@localhost ~]# lvextend -l +100%FREE /dev/mapper/centos-root
Size of logical volume centos/root changed from 100.00 GiB (25600 extents) to 450.00 GiB (115200 extents).
Logical volume centos/root successfully resized.
[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=8, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 26214400 to 117964800
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 17M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 450G 82G 369G 19% /
/dev/sda2 1014M 137M 878M 14% /boot
/dev/mapper/centos-home 241G 88G 154G 37% /home
tmpfs 799M 0 799M 0% /run/user/0
扩容完成~~~!