Centos KVM
一、Install kvm Virtual Machine Manager
yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer
Start the libvirtd service:
# systemctl enable libvirtd
# systemctl start libvirtd


二、Configure bridged networking

三、建立一個 240G 的 qcow2 格式 image
qemu-img create -f qcow2 Win10.qcow2 240G
動態調整大小的硬碟檔

List all VMs
# virsh list --all
四、使用圖形介面建立 VM










五、convert VirtualBox vdi to KVM qcow2
qemu-img convert -f vdi -O qcow2 avm.vdi avm.qcow2
六、virt-host-validate
[root@t310f3 ~]# virt-host-validate
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/kvm exists : PASS
QEMU: Checking if device /dev/kvm is accessible : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
QEMU: Checking for cgroup 'memory' controller support : PASS
QEMU: Checking for cgroup 'memory' controller mount-point : PASS
QEMU: Checking for cgroup 'cpu' controller support : PASS
QEMU: Checking for cgroup 'cpu' controller mount-point : PASS
QEMU: Checking for cgroup 'cpuacct' controller support : PASS
QEMU: Checking for cgroup 'cpuacct' controller mount-point : PASS
QEMU: Checking for cgroup 'cpuset' controller support : PASS
QEMU: Checking for cgroup 'cpuset' controller mount-point : PASS
QEMU: Checking for cgroup 'devices' controller support : PASS
QEMU: Checking for cgroup 'devices' controller mount-point : PASS
QEMU: Checking for cgroup 'blkio' controller support : PASS
QEMU: Checking for cgroup 'blkio' controller mount-point : PASS
QEMU: Checking for device assignment IOMMU support : PASS
QEMU: Checking if IOMMU is enabled by kernel : WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments)
LXC: Checking for Linux >= 2.6.26 : PASS
LXC: Checking for namespace ipc : PASS
LXC: Checking for namespace mnt : PASS
LXC: Checking for namespace pid : PASS
LXC: Checking for namespace uts : PASS
LXC: Checking for namespace net : PASS
LXC: Checking for namespace user : PASS
LXC: Checking for cgroup 'memory' controller support : PASS
LXC: Checking for cgroup 'memory' controller mount-point : PASS
LXC: Checking for cgroup 'cpu' controller support : PASS
LXC: Checking for cgroup 'cpu' controller mount-point : PASS
LXC: Checking for cgroup 'cpuacct' controller support : PASS
LXC: Checking for cgroup 'cpuacct' controller mount-point : PASS
LXC: Checking for cgroup 'cpuset' controller support : PASS
LXC: Checking for cgroup 'cpuset' controller mount-point : PASS
LXC: Checking for cgroup 'devices' controller support : PASS
LXC: Checking for cgroup 'devices' controller mount-point : PASS
LXC: Checking for cgroup 'blkio' controller support : PASS
LXC: Checking for cgroup 'blkio' controller mount-point : PASS
LXC: Checking if device /sys/fs/fuse/connections exists : PASS
[root@t310f3 ~]# grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) intel_iommu=on"
[root@t310f3 ~]#
七、kvm backup and restore
virsh list --all
virsh list --all
Id 名稱 狀態
----------------------
- Centos7 關機
- Centos8 機
- Win10 關機
virsh shutdown Centos8
將 VM 的資料備份成 XML 檔案
virsh dumpxml Centos7 > /home/backup/kvm/Centos7.xml
virsh dumpxml Centos7
<domain type='kvm'>
<name>Centos7</name>
<uuid>6f7b0cbf-32cd-44ac-b1b2-187f12cefb24</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://centos.org/centos/7.0"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>4</vcpu>
<os>
<type arch='x86_64' machine='pc-q35-rhel8.2.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-model' check='partial'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
...
...
略
virsh domblklist Centos7
Target Source
------------------------------------------------
vda /home/storage/Centos7OS.qcow2
vdb /home/storage/Centos7OS_1TDisk.qcow2
八、KVM restore
virsh undefine Centos7
cp /home/kvm/Centos7.qcow2 /var/lib/libvirt/images
virsh define -file /home/kvm/Centos7.xml
virsh start Centos7
九、qemu-img convert
qemu-img convert -f qcow2 -O qcow2 Rocky8.5_SSP(來源) Rocky8.5_SSP2(目的)


檔案大小從 201G 轉成 6

preallocation=metadata
qemu-img create -f qcow2 -o preallocation=metadata /home/kvm/5G_metadata.qcow2 5G
建一個檔案大小為5G 的映象檔 5G_metadata.qcow2

檔案 metadata.qcow2 也是一個5G 容量大小的映象檔
