kvm虚拟机扩展根分区
1. 概述
本篇博客主要记录如何扩展kvm虚拟机的根文件系统。
2. 信息确认
2.1 确认当前的虚拟机的根文件系统
[root@node98 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
├─vda1 253:1 0 500M 0 part /boot
└─vda2 253:2 0 19.5G 0 part /
[root@node98 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda2 20G 1.6G 18G 9% /
/dev/vda1 497M 135M 363M 28% /boot
tmpfs 379M 0 379M 0% /run/user/0
kvm虚拟机node98上面:
- 仅有块虚拟磁盘设备/dev/vda
- /dev/vda1挂载到/boot分区,/dev/vda2挂载到/分区
2.2 确认当前操作系统版本和文件系统
[root@node98 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@node98 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Aug 1 11:07:42 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=2a0bc218-ba0d-4acb-8d41-2520c7a93390 / xfs defaults 0 0
UUID=77547232-30c9-473c-ad4b-f04cae17316f /boot xfs defaults 0 0
node98使用了centos7默认的xfs文件系统
xfs和ext4文件系统使用的扩展文件系统命令不同
3. 物理机操作
一,首先关闭虚拟机node98
在物理机执行操作:virsh destroy node98
二,查看node98的磁盘镜像文件位置
在物理机执行操作:virsh domblklist node98
,查看到镜像文件为:/var/lib/libvirt/images/node98.qcow2
三,扩展磁盘文件大小
在物理机执行操作:qemu-img resize /var/lib/libvirt/images/node98.qcow2 +30G
,node98的磁盘大小从之前的20G增加到了50G
四,开启虚拟机查看信息
在物理机执行操作:virsh start node98
。开机之后,node98执行df -h
,结果如下:
[root@node98 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda2 20G 1.6G 18G 9% /
/dev/vda1 497M 135M 363M 28% /boot
tmpfs 379M 0 379M 0% /run/user/0
执行lsblk
,结果如下:
[root@node98 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 50G 0 disk
├─vda1 253:1 0 500M 0 part /boot
└─vda2 253:2 0 19.5G 0 part /
执行fdisk -l /dev/vda
,结果如下:
[root@node98 ~]# fdisk -l /dev/vda
磁盘 /dev/vda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ca1d8
设备 Boot Start End Blocks Id System
/dev/vda1 * 2048 1026047 512000 83 Linux
/dev/vda2 1026048 41943039 20458496 83 Linux
总结:从df -h
和lsblk
文件系统层面来看,node98的分区和文件系统并没有改变。但是fdisk
查看磁盘的分区情况,发现/dev/vda2
的End的大小已经变化了。
4. 虚拟机操作
4.1 对磁盘重新分区
此时需要在虚拟机里面,重新分区。操作如下:
[root@node98 ~]# fdisk -c /dev/vda
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
磁盘 /dev/vda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ca1d8
设备 Boot Start End Blocks Id System
/dev/vda1 * 2048 1026047 512000 83 Linux
/dev/vda2 1026048 41943039 20458496 83 Linux
命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):2
分区 2 已删除
命令(输入 m 获取帮助):p
磁盘 /dev/vda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ca1d8
设备 Boot Start End Blocks Id System
/dev/vda1 * 2048 1026047 512000 83 Linux
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (1026048-104857599,默认为 1026048):
将使用默认值 1026048
Last 扇区, +扇区 or +size{K,M,G} (1026048-104857599,默认为 104857599):
将使用默认值 104857599
分区 2 已设置为 Linux 类型,大小设为 49.5 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/vda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ca1d8
设备 Boot Start End Blocks Id System
/dev/vda1 * 2048 1026047 512000 83 Linux
/dev/vda2 1026048 104857599 51915776 83 Linux
命令(输入 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)
正在同步磁盘。
上面的操作总结为:
- 查看当前分区情况
- 执行d删除分区2、也就是/dev/vda2
- 再查看当前分区情况,确认分区2已经删除
- 执行分区命令:n
- 选择分区类型:p
- 然后就是一直回车,默认选择即可
上面执行结束后,物理机执行:virsh destory node98
关机
4.2 拉伸文件系统
物理机执行:virsh start node98
开机,然后执行:xfs_growfs /dev/vda2
,结果如下:
[root@node98 ~]# xfs_growfs /dev/vda2
meta-data=/dev/vda2 isize=512 agcount=4, agsize=1278656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=5114624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
然后执行:df -h
查看,分区已经拉升
[root@node98 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda2 50G 1.6G 48G 4% /
/dev/vda1 497M 135M 363M 28% /boot
tmpfs 379M 0 379M 0% /run/user/0
[root@node98 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 50G 0 disk
├─vda1 253:1 0 500M 0 part /boot
└─vda2 253:2 0 49.5G 0 part /