一、概述
虚拟机根目录扩容
前提条件:
根盘要做了lvm
给根盘或者数据盘扩容后,都可以通过下面步骤,将扩容的空间加入lvm
二、步骤
1、查看本机磁盘环境
[root@web03 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 9.4M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 39G 1.4G 38G 4% /
/dev/vda2 1014M 142M 873M 14% /boot
/dev/vda1 200M 12M 189M 6% /boot/efi
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/sda 50G 53M 47G 1% /data
[root@web03 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk /data
sr0 11:0 1 1024M 0 rom
vda 252:0 0 60G 0 disk
├─vda1 252:1 0 200M 0 part /boot/efi
├─vda2 252:2 0 1G 0 part /boot
└─vda3 252:3 0 38.8G 0 part
└─centos-root 253:0 0 38.8G 0 lvm /
可以看到根目录总容量为38.8G, 设备vda 的总容量为60G。
2、添加磁盘分区
将剩余的20G左右全扩到系统盘
[root@web03 ~]# fdisk /dev/vda
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):m
命令操作
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
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):p
磁盘 /dev/vda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: ABCD7538-8BE0-44B5-B1FF-F06853563C1B
# Start End Size Type Name
1 2048 411647 200M EFI System EFI System Partition
2 411648 2508799 1G Microsoft basic
3 2508800 83884031 38.8G Linux LVM
命令(输入 m 获取帮助):n
分区号 (4-128,默认 4):
第一个扇区 (34-125829086,默认 83884032):
Last sector, +sectors or +size{K,M,G,T,P} (83884032-125829086,默认 125829086):
已创建分区 4
命令(输入 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@web03 ~]# partprobe
3、然后查看分区是否创建
[root@web03 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk /data
sr0 11:0 1 1024M 0 rom
vda 252:0 0 60G 0 disk
├─vda1 252:1 0 200M 0 part /boot/efi
├─vda2 252:2 0 1G 0 part /boot
├─vda3 252:3 0 38.8G 0 part
│ └─centos-root 253:0 0 38.8G 0 lvm /
└─vda4 252:4 0 20G 0 part
可以看到vda4 分区已创建。
4、开始扩容
创建物理卷
[root@web03 ~]# lvm
lvm> pvcreate /dev/vda4
Physical volume "/dev/vda4" successfully created.
查看物理卷和卷组
lvm> pvdisplay
--- Physical volume ---
PV Name /dev/vda3
VG Name centos
PV Size 38.80 GiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 9933
Free PE 0
Allocated PE 9933
PV UUID 6sU3ty-zHJx-rmAg-yG4y-0gOS-97ZK-w86B48
"/dev/vda4" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/vda4
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 6kXGSY-R4wd-aim0-2SoU-huAw-u3k6-jiz4xH
将物理卷加入到卷组
lvm> vgextend centos /dev/vda4
Volume group "centos" successfully extended
可以看到卷组的Free size 增加了
lvm> vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size
PE Size 4.00 MiB
Total PE 15052
Alloc PE / Size 9933 / 38.80 GiB
Free PE / Size 5119 /
VG UUID bZuM9L-FK54-WLkl-WGe5-bQmz-aaXO-i3k9P0
lvm> pvdisplay
--- Physical volume ---
PV Name /dev/vda3
VG Name centos
PV Size 38.80 GiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 9933
Free PE 0
Allocated PE 9933
PV UUID 6sU3ty-zHJx-rmAg-yG4y-0gOS-97ZK-w86B48
--- Physical volume ---
PV Name /dev/vda4
VG Name centos
PV Size 20.00 GiB / not usable 4.98 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 5119
Free PE 5119
Allocated PE 0
PV UUID 6kXGSY-R4wd-aim0-2SoU-huAw-u3k6-jiz4xH
将卷组剩余空间(刚添加的85G)添加到逻辑卷/dev/centos/root :
[root@web03 ~]# lvm
lvm> lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos/root changed from 38.80 GiB (9933 extents) to
Logical volume centos/root successfully resized.
5、同步到文件系统
之前只是对逻辑卷扩容,还要同步到文件系统,实现对根目录的扩容。
[root@web03 ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2542848 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=10171392, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=4966, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 10171392 to 15413248
然后再查看挂载情况
[root@web03 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 9.4M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 59G 1.4G 58G 3% /
/dev/vda2 1014M 142M 873M 14% /boot
/dev/vda1 200M 12M 189M 6% /boot/efi
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/sda 50G 53M 47G 1% /data
三、FAQ
问题1、磁盘分区空间加不上去
a、问题
显示无效的参数,再次输入p发现:
b、处理
可以入下命令进行修复
[root@web03 ~]# parted /dev/vda
GNU Parted 3.1
使用 /dev/vda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
错误: 备份 GPT 表不像应该的那样出现在磁盘的末尾。这可能意味这其它操作系统相信磁盘小一些。通过将备份移动到末尾 (并删除旧备份) 来修正?
修正/Fix/忽略/Ignore? Fix
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 211MB 210MB fat16 EFI System Partition 启动
2 211MB 1285MB 1074MB xfs
3 1285MB 42.9GB 41.7GB lvm
(parted) p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 211MB 210MB fat16 EFI System Partition 启动
2 211MB 1285MB 1074MB xfs
3 1285MB 42.9GB 41.7GB lvm
(parted) q
问题2:将物理卷加入到卷组失败
原因:存储使用100%,无法挂载,须预留部分空间出来。 解决办法: 删掉其中无用文件、log日志继续操作即可。
CentOS7扩容根分区(LVM+非LVM)