8、虚拟磁盘格式转换和调整虚拟磁盘大小
摘自:https://blog.51cto.com/mfc001/6410829
虚拟磁盘格式转换
qwmu-img可以将不同格式的虚拟磁盘文件进行格式转化
如:将vmvare虚拟机的vmdk转化为raw和qcow2格式
第一步:找一个没有快照的虚拟机,查看磁盘文件位置,找到vmdk结尾文件,拷贝到/var/lib/libvirt/images
第二步:查看属性
[root@ubunt images]#qemu-img info Rocky8.6.vmdk
image: Rocky8.6.vmdk
file format: vmdk
virtual size: 200 GiB (214748364800 bytes)
disk size: 2.07 GiB
cluster_size: 65536
Format specific information:
cid: 1677418213
parent cid: 4294967295
create type: monolithicSparse
extents:
[0]:
virtual size: 214748364800
filename: Rocky8.6.vmdk
cluster size: 65536
format:
第三步:默认转化raw格式
[root@ubunt images]#qemu-img convert Rocky8.6.vmdk Rocky8.6.qcow2
查看:
[root@ubunt images]# qemu-img info Rocky8.6.qcow2
image: Rocky8.6.qcow2
file format: raw
virtual size: 200 GiB (214748364800 bytes)
disk size: 1.94 GiB
实际占空间情况
[root@ubunt images]# du -sh Rocky8.6.qcow2
2.0G Rocky8.6.qcow2
第四步:生成虚拟机
[root@ubunt images]# virt-install --import --name=Rocky8-6 --vcpus=1 --ram=2048 --disk bus=scsi,path=/var/lib/libvirt/images/Rocky8.6.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --os-type=Linux --os-variant=centos8 --noautoconsole --boot hd
第五步:查看虚拟机
[root@ubunt images]# virsh list
Id Name State
---------------------------
1 Rocky8-6 running
转化成qcow2格式
[root@ubunt images]#qemu-img convert -f vmdk -O qcow2 Rocky8.6.vmdk Rocky8.6.qcow2
调整虚拟磁盘大小
操作之前,一定要做好数据备份
增加文件大小后,需要在客户机中使用fdisk,parted等分区工具进行相应的操作才能真正让客户 机使用到增加后的镜像空间.
缩小镜像之前,要在客户机中保证里面的文件系统有空余空间,否则会数据丢失.另外xfs文件系统不支持缩减
qcow2不支持缩小镜像的操作
查看调整钱前小
[root@ubunt images]# qemu-img info k8s-node-01.qcow2
image: k8s-node-01.qcow2
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 3.34 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
refcount bits: 16
corrupt: false
扩展虚拟磁盘
[root@ubunt images]# qemu-img resize /var/lib/libvirt/images/k8s-node-01.qcow2 +10G
Image resized.
扩展后磁盘大小
[root@ubunt images]# qemu-img info /var/lib/libvirt/images/k8s-node-01.qcow2
image: /var/lib/libvirt/images/k8s-node-01.qcow2
file format: qcow2
virtual size: 30 GiB (32212254720 bytes)
disk size: 3.34 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
refcount bits: 16
corrupt: false
测试虚拟机是否正常
[root@ubunt images]# virsh start k8s-node-01
Domain k8s-node-01 started
[root@ubunt images]# virt-manager 打开管理页面观察大小
[root@k8s-node-01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 30G 0 disk #磁盘已经扩展到30G,但真正用的vda2却没有变大
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 19G 0 part #但新增的10G还没有加进来啊
├─rl-root 253:0 0 17G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
[root@k8s-node-01 ~]# fdisk -l 可看到增加的10G还没有分
扩展逻辑卷前先把剩下的磁盘空间进行分区
[root@k8s-node-01 ~]# fdisk /dev/vda
p查看剩余空间大小和分区情况
n进行分区
p主分区
3分区编号
确认两次进行剩余空间全部分区到3分区
p查看分区
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 2099199 2097152 1G 83 Linux
/dev/vda2 2099200 41943039 39843840 19G 8e Linux LVM
/dev/vda3 41943040 62914559 20971520 10G 83 Linux
对3分区进行打标签
Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes):L查看列表
Hex code (type L to list all codes):8e (打标签为逻辑卷)
p查看无误后w存盘退出
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 2099199 2097152 1G 83 Linux
/dev/vda2 2099200 41943039 39843840 19G 8e Linux LVM
/dev/vda3 41943040 62914559 20971520 10G 83 Linux LVM
Command (m for help): w
The partition table has been altered.
Syncing disks.
查看分区情况
[root@k8s-node-01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 30G 0 disk
├─vda1 252:1 0 1G 0 part /boot
├─vda2 252:2 0 19G 0 part
│ ├─rl-root 253:0 0 17G 0 lvm /
│ └─rl-swap 253:1 0 2G 0 lvm [SWAP]
└─vda3 252:3 0 10G 0 part
第一步:创建物理卷
[root@k8s-node-01 ~]# pvcreate /dev/vda3
Physical volume "/dev/vda3" successfully created.
第二步:扩展卷组
先查看现有卷组
[root@k8s-node-01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- <19.00g 0
扩展卷组
[root@k8s-node-01 ~]# vgextend rl /dev/vda3
Volume group "rl" successfully extended
再次查看卷组
[root@k8s-node-01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 2 2 0 wz--n- 28.99g <10.00g
第三步:扩展逻辑卷
[root@k8s-node-01 ~]# lvextend -r -l +100%free /dev/rl/root
[root@k8s-node-01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 967M 0 967M 0% /dev
tmpfs 987M 0 987M 0% /dev/shm
tmpfs 987M 8.5M 978M 1% /run
tmpfs 987M 0 987M 0% /sys/fs/cgroup
/dev/mapper/rl-root 27G 3.1G 24G 12% /
/dev/vda1 1014M 161M 854M 16% /boot
tmpfs 198M 0 198M 0% /run/user/0
[root@k8s-node-01 ~]# df -Th (文件系统)
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 967M 0 967M 0% /dev
tmpfs tmpfs 987M 0 987M 0% /dev/shm
tmpfs tmpfs 987M 8.5M 978M 1% /run
tmpfs tmpfs 987M 0 987M 0% /sys/fs/cgroup
/dev/mapper/rl-root xfs 27G 3.1G 24G 12% /
/dev/vda1 xfs 1014M 161M 854M 16% /boot
tmpfs tmpfs 198M 0 198M 0% /run/user/0
缩减虚拟磁盘大小(有风险,缩短之前先备份)
qemu-img resize --shrink /var/lib/libvirt/images/k8s-node-01.qcow2 -2G