1. 问题描述
最然现在 Docker 非常方便,也成为我们运行及部署应用的主要方式,但是某些场景还是需要使用虚拟化方案。
该笔记将记录:在 Linux 中,如何部署及使用 KVM 虚拟化环境,以及部署相关的问题处理。
2. 解决方案
2.1. 第一步、检查硬件虚拟化
检查是否支持硬件虚拟化:
grep --color -E '(vmx|svm)' /proc/cpuinfo
输出中应该出现 vmx 或 svm 等内容,否则就是不支持硬件虚拟化。
2.2. 第二步、检查内核模块
检查内核是否加载 KVM 模块,:
# lsmod | grep kvm
kvm_amd 2176416 0
kvm 578558 1 kvm_amd
irqbypass 13503 1 kvm
类似如上输出则表示加载成功。
2.3. 第三步、安装依赖及服务
安装相关的软件包及依赖:
# 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
2.4. 第四步、启动 libvirtd 服务
启动 libvirt 服务并开机启动:
systemctl enable libvirtd.service
systemctl start libvirtd.service
它主要用于虚拟机的管理工作,而KVM的作用是提供虚拟化。例如虚拟机的定义、网络管理等等这些都是通过libvirt进行管理的。如果不使用libvirt工具,那你就要直接从命令行里使用qemu有关的命令来管理虚拟机,不好。
2.5. 第五步、重启操作系统
如果允许重启服务器,我们还是建议重启。因为,我们部署服务之后,并没有重启主机,我们认为没有必要。但是,在使用的过程中遇到一个问题,在重启之后该问题得以解决。
3. 如何管理虚拟机?
# 03/08/2019 我们将 KVM 用作桌面虚拟化(及学习环境),所以对于 KVM 的管理工具,我们使用:
1)命令行:使用 virt-install 和 virsh 命令,来从命令行批量管理虚拟机;
2)图形化:使用 virt-manager(https://k4nz.com/Virtualization_and_Emulator/4.QEMU,_KVM_and_libvirt/3.Problem_Solving_(how-to)/Management_Tools/Virt-Manager.html) 工具,来进行图形化管理(虚拟机创建、配置等等);
3.1. 使用 virsh 命令
将当前用户(非 root 用户)加入 libvirt 组,可以允许当前用户通过 libvirt 管理虚拟机。
4. 参考文献
KVM - Debian Wiki(https://www.google.com/search?num=30&newwindow=1&client=firefox-b-ab&ei=hLQgXIOmGbWr0PEPt82m8AM&q=setting+up+kvm+on+debian&oq=setting+up+kvm+on+debian&gs_l=psy-ab.3..0i22i30.187755.194441..194926...3.0..1.369.3462.2-11j2......0....1..gws-wiz.......0j0i22i10i30.fC56uqwdOt8)
Install KVM Hypervisor on CentOS 7.x and RHEL 7.x(https://www.linuxtechi.com/install-kvm-hypervisor-on-centos-7-and-rhel-7/)
How to install KVM server on Debian Linux 9 Headless Server(https://www.cyberciti.biz/faq/install-kvm-server-debian-linux-9-headless-server/)
本文暂时没有评论,来添加一个吧(●'◡'●)