虚拟磁盘格式转换
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