KVM/QEMU libvirt 实践
注: 实践平台为Fedora/CentOS
Install KVM
安装 KVM
所需要的软件包:
$ sudo yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst
# Fedora 安装指令
$ sudo dnf install qemu qemu-kvm virt-viewer virt-manager libvirt
或者
$ yum groupinstall KVM
安装 virt-sysprep
$ sudo yum install libguestfs-tools
启动 libvirtd
服务:
$ sudo systemctl start libvirtd
$ sudo systemctl enable libvirtd
$ lsmod | grep kvm
kvm_intel 138567 0
kvm 441119 1 kvm_intel
$ ls -l /dev/kvm
crw-rw---- 1 root kvm 10, 232 Jun 25 15:56 /dev/kvm
准备虚拟机镜像
镜像下载地址:
Ubuntu: https://cloud-images.ubuntu.com/
CentOS: https://cloud.centos.org/centos/
Debian: https://cdimage.debian.org/cdimage/openstack/current/
Fedora: https://alt.fedoraproject.org/cloud/
BSD: https://bsd-cloud-image.org
这里下载的镜像版本为 CentOS-8-GenericCloud
.
$ wget http://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.1.1911-20200113.3.x86_64.qcow2
$ sudo qemu-img info CentOS-8-GenericCloud-8.1.1911-20200113.3.x86_64.qcow2
image: CentOS-8-GenericCloud-8.1.1911-20200113.3.x86_64.qcow2
file format: qcow2
virtual size: 10 GiB (10737418240 bytes)
disk size: 683 MiB
cluster_size: 65536
Format specific information:
compression type: zlib
compat: 0.10
refcount bits: 16
# 扩容到 20G
$ sudo qemu-img create -f qcow2 -b CentOS-8-GenericCloud-8.1.1911-20200113.3.x86_64.qcow2 RHEL8.qcow2 20G
$ export LIBVIRT_DEFAULT_URI="qemu:///system"
修改 root 密码为 ‘root’, 卸载 cloud-init & 安装其他组件
$ virt-sysprep --root-password password:root --uninstall cloud-init --selinux-relabel -a RHEL8.qcow2 --network --install "pciutils"
启动宿主机桥接网络
$ sudo virsh net-define /usr/share/libvirt/networks/default.xml
$ sudo virsh net-start default
$ sudo virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
修改虚拟网络配置 : virsh net-edit default
启动虚拟机
$ osinfo-query os | grep -i centos8
centos8 | CentOS 8 | 8 | http://centos.org/centos/8
$ sudo virt-install --import --name RHEL8 --ram=4096 --vcpus=4 \
--nographics --accelerate \
--network network:default,model=virtio --mac 02:ca:fe:fa:ce:aa \
--debug --wait 0 --console pty \
--disk RHEL8.qcow2,bus=virtio --os-variant centos8
$ sudo virsh list
连接到虚拟机 console
(按CTRL+]
或者 CTRL+SHIFT+5
退出):
sudo virsh console RHEL8
编辑虚拟机配置
sudo virsh edit RHEL8
注:
guest 默认配置文件路径: /etc/libvirt/qemu/{NAME}.xml
vish 常用命令
help
virsh help
virsh help domain
virsh help host
virsh help interface
virsh help network
# 查看宿主机 capabilities 硬件兼容信息
virsh capabilities
# 编辑宿主机虚拟网络配置
virsh net-edit default
# 关闭虚拟机
virsh shutdownc domain
# 强制停止虚拟机
virsh destory domain
# 销毁虚拟机,会删除虚拟机配置文件
vrish undefine domain
# 宿主机开机该虚拟机也开机
virsh autostart domain
# 解除虚拟机开机启动
virsh autostart --disable domain
# 挂起虚拟机
virsh suspend domain
# 恢复虚拟机
virsh resume domain
# 连接到虚拟机 console, 退出 CTRL+Shift+5 or CTRL+]
virsh console domain
# 查看虚拟机基本信息
virsh dominfo domain
# 查看/导出虚拟机配置
virsh dumpxml domain
# 查看虚拟机vcpu配置
virsh vcpuinfo domain
# 查看虚拟机vcpu与host CPU的绑定关系
virsh vcpupin domain
# 配置虚拟机vcpu与host CPU的绑定关系
virsh vcpupin domain vcpu host-cpu
# 配置虚拟机内存大小
virsh setmem domain size
# 查看虚拟机网卡配置
virsh domiflist domain
参考
KVM
KVM Virtualization in RHEL 7 Made Easy
VIRTUALIZATION DEPLOYMENT AND ADMINISTRATION GUIDE
Ubuntu KVM CreateGuests
QEMU-Images
Testing/System Images
Hands on vhost-user: A warm welcome to DPDK
OpenStack Virtual Machine Image Guide
KVM/QEMU hypervisor driver