「KVM」- 虚拟化环境搭建

  CREATED BY JENKINSBOT

问题描述

最然现在 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

它主要用于虚拟机的管理工作,而KVM的作用是提供虚拟化。例如虚拟机的定义、网络管理等等这些都是通过libvirt进行管理的。如果不使用libvirt工具,那你就要直接从命令行里使用qemu有关的命令来管理虚拟机,不好。

第五步、重启操作系统

如果允许重启服务器,我们还是建议重启。因为,我们部署服务之后,并没有重启主机,我们认为没有必要。但是,在使用的过程中遇到一个问题,在重启之后该问题得以解决。

如何管理虚拟机?

# 03/08/2019 我们将 KVM 用作桌面虚拟化(及学习环境),所以对于 KVM 的管理工具,我们使用:
1)命令行:使用 virt-installvirsh 命令,来从命令行批量管理虚拟机;
2)图形化:使用 virt-manager 工具,来进行图形化管理(虚拟机创建、配置等等);

使用 virsh 命令

将当前用户(非 root 用户)加入 libvirt 组,可以允许当前用户通过 libvirt 管理虚拟机。

参考文献

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