虚拟机扩容CPU、内存、磁盘
#virsh edit vm1
vm5
a44be4c9-72fa-46db-a24a-ad52a969a2d3
16777216
16777216
4
修改
memory unit
和currentMemory unit
来达到修改内存的目的
修改
vcpu placement
修改cpu个数;
创建虚拟磁盘
#qemu-img create -f qcow2 /data1/vms/vm1-1.qcow2 100G
修改配置
virsh edit vm1
增加如下片段,(可以在原来的配置中复制类似的配置,然后修改source file、target dev和slot;
#lsblk
查看新增的硬盘,使用parted格式化并挂载
#parted /dev/vdb
mklabel gpt
mkpart
data1
xfs
1
-1
q保存
#mkfs.xfs /dev/vdb1
#mkdir /data1
#mount -t xfs /dev/vdb1 /data1
扩容磁盘,扩容原来的虚拟磁盘,并给/目录
#virsh shutdown vm1
扩容增加100G
#qemu-img resize /data1/vms/vm1.qcow2 +100G
Image resized.
进入虚拟机进行扩容
#virsh start vm1
#df -h
[root@node1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 8.5M 7.9G 1% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 13G 2.5G 11G 20% /
/dev/vdb1 100G 746M 100G 1% /data1
/dev/vdc1 100G 746M 100G 1% /data2
/dev/vda1 976M 111M 799M 13% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
可以看到/dev/vda已经是增加了100G,但是分区没有增加
#fdisk /dev/vda
[root@master ~]# fdisk -l
Disk /dev/vda:115 GiB,123480309760 字节,241172480 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x221e0d51设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/vda1 * 2048 2099199 2097152 1G 83 Linux
/dev/vda2 2099200 31457279 29358080 14G 8e Linux LVMDisk /dev/vdb:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:D6A4E022-57EC-42DD-AFB8-C4865DF3FACF设备 起点 末尾 扇区 大小 类型
/dev/vdb1 2048 209713151 209711104 100G Linux 文件系统Disk /dev/vdc:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:D91F7C3B-06C5-49A5-83A4-3120BE05AB35设备 起点 末尾 扇区 大小 类型
/dev/vdc1 2048 209713151 209711104 100G Linux 文件系统Disk /dev/mapper/cl-root:12.5 GiB,13417578496 字节,26206208 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/mapper/cl-swap:1.5 GiB,1610612736 字节,3145728 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@master ~]# fdisk /dev/vda欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):m
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表命令(输入 m 获取帮助):n
分区类型
p 主分区 (2个主分区,0个扩展分区,2空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (3,4, 默认 3): 3
第一个扇区 (31457280-241172479, 默认 31457280):
上个扇区,+sectors 或 +size{K,M,G,T,P} (31457280-241172479, 默认 241172479):创建了一个新分区 3,类型为“Linux”,大小为 100 GiB。
命令(输入 m 获取帮助):p
Disk /dev/vda:115 GiB,123480309760 字节,241172480 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x221e0d51设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/vda1 * 2048 2099199 2097152 1G 83 Linux
/dev/vda2 2099200 31457279 29358080 14G 8e Linux LVM
/dev/vda3 31457280 241172479 209715200 100G 83 Linux命令(输入 m 获取帮助):t
分区号 (1-3, 默认 3): 3
Hex 代码(输入 L 列出所有代码):8e已将分区“Linux”的类型更改为“Linux LVM”。
命令(输入 m 获取帮助):p
Disk /dev/vda:115 GiB,123480309760 字节,241172480 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x221e0d51设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/vda1 * 2048 2099199 2097152 1G 83 Linux
/dev/vda2 2099200 31457279 29358080 14G 8e Linux LVM
/dev/vda3 31457280 241172479 209715200 100G 8e Linux LVM命令(输入 m 获取帮助):w
分区表已调整。
正在同步磁盘。[root@master ~]# pvcreate /dev/vda3
Physical volume “/dev/vda3” successfully created.
[root@master ~]# vg
vgcfgbackup vgck vgdisplay vgimport vgmknodes vgrename vgsplit
vgcfgrestore vgconvert vgexport vgimportclone vgreduce vgs
vgchange vgcreate vgextend vgmerge vgremove vgscan
[root@master ~]# vgdisplay
— Volume group —
VG Name cl
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <14.00 GiB
PE Size 4.00 MiB
Total PE 3583
Alloc PE / Size 3583 / <14.00 GiB
Free PE / Size 0 / 0
VG UUID dQL1ug-nmUI-J8Ef-ex4i-qZHo-8Lty-iKhUET[root@master ~]# vgextend cl /dev/vda3
Volume group “cl” successfully extended
[root@master ~]# lvresize -l +100%free /dev/mapper/cl-root
Size of logical volume cl/root changed from <12.50 GiB (3199 extents) to 112.49 GiB (28798 extents).
Logical volume cl/root successfully resized.
[root@master ~]# xfs_growfs /dev/mapper/cl-root
meta-data=/dev/mapper/cl-root isize=512 agcount=4, agsize=818944 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=3275776, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log 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 3275776 to 29489152
[root@master ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 8.5M 7.9G 1% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 113G 5.3G 108G 5% /
/dev/vdc1 100G 746M 100G 1% /data2
/dev/vdb1 100G 746M 100G 1% /data1
/dev/vda1 976M 111M 799M 13% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
遇到的问题:
在扩大容量时,报错:
#qemu-img resize /data1/vms/vm1.qcows +100G
qemu-img: Error resizing image: Invalid argument
使用check命令:
#qemu-img check /data1/vms/vm1.qcows
…
4 errors were found on the image.
Data may be corrupted, or further writes to the image may corrupt it.
使用以下命令尝试修复
#qemu-img check -r all /data1/vms/vm1.qcow2
Rebuilding refcount structure
Repairing cluster 1 refcount=1 reference=0
The following inconsistencies were found and repaired:
0 leaked clusters
12 corruptions
Double checking the fixed image now…
No errors were found on the image.
41677/245760 = 16.96% allocated, 1.60% fragmented, 0.00% compressed clusters
Image end offset: 2732523520
之后就可以运行扩容命令了。