问题描述
最然现在 Docker 非常方便,也成为我们运行及部署应用的主要方式,但是某些场景还是需要使用虚拟化方案。
该笔记将记录:在 Linux 中,如何部署及使用 KVM 虚拟化环境,以及部署相关的问题处理。
解决方案
第一步、检查硬件虚拟化
检查是否支持硬件虚拟化:
grep --color -E '(vmx|svm)' /proc/cpuinfo
输出中应该出现 vmx 或 svm 等内容,否则就是不支持硬件虚拟化。
第二步、检查内核模块
检查内核是否加载 KVM 模块,:
# lsmod | grep kvm kvm_amd 2176416 0 kvm 578558 1 kvm_amd irqbypass 13503 1 kvm
类似如上输出则表示加载成功。
第三步、安装依赖及服务
安装相关的软件包及依赖:
# Debian 10 / Ubuntu 20.04 LTS apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils \ libguestfs-tools genisoimage virtinst libosinfo-bin # CentOS yum install -y qemu-kvm qemu-img libvirt libvirt-python libvirt-client virt-install bridge-utils
第四步、启动 libvirtd 服务
启动 libvirt 服务并开机启动:
systemctl enable libvirtd.service systemctl start libvirtd.service systemctl stop libvirtd.service
它主要用于虚拟机的管理工作,而KVM的作用是提供虚拟化。例如虚拟机的定义、网络管理等等这些都是通过libvirt进行管理的。如果不使用libvirt工具,那你就要直接从命令行里使用qemu有关的命令来管理虚拟机,不好。
第五步、重启操作系统
如果允许重启服务器,我们还是建议重启。因为,我们部署服务之后,并没有重启主机,我们认为没有必要。但是,在使用的过程中遇到一个问题,在重启之后该问题得以解决。
参考文献
KVM – Debian Wiki
Install KVM Hypervisor on CentOS 7.x and RHEL 7.x
How to install KVM server on Debian Linux 9 Headless Server
Starting and Stopping libvirtd | Virtualization Guide | openSUSE Leap 42.1