KVM(Kernel-based Virtual Machine,基于内核的虚拟机)是面向 Linux 系统的开源虚拟化解决方案,KVM 使用 Intel VT 或 AMD-V 等虚拟化扩展提供虚拟化功能。当我们在 Linux 机器上安装 KVM 时,它都会通过加载(基于 Intel 的 kvm-intel.ko 或基于 AMD 的 kvm-amd.ko)内核模块将其转换为 Hypervisor。
KVM 允许我们安装和运行(基于 Windows 和 Linux的)多个虚拟机,并通过 virt-manager 图形用户界面或 virt-install&virsh cli 命令创建和管理基于 KVM 的虚拟机。
本文系统极客将向大家介绍如何在 Ubuntu 18.04 LTS 上安装和配置 KVM hypervisor 管理程序。
步骤1:验证Linux系统是否支持硬件虚拟化
您可以执行如下命令验证您的 Linux 系统是否支持硬件虚拟化:
egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出大于 0,则表示系统支持硬件虚拟化。否则请重启系统,然后转到 BIOS 设置中启用 VT 技术。
现在请使用以下命令安装 kvm-ok 实用程序,它用于确定您的服务器是否能够运行硬件加速的 KVM 虚拟机:
sudo apt install cpu-checker
运行 kvm-ok 命令并验证输出:
sudo kvm-ok
步骤2:安装KVM及其所需的软件包
请运行以下命令安装 KVM 及其依赖项:
sudo apt update sudo apt install qemu qemu-kvm libvirt-bin bridge-utils virt-manager
成功安装上述软件包后,您登录的本地用户将自动添加到 libvirtd 组中。
步骤3:启动并启用libvirtd服务
当我们在 Ubuntu 18.04 LTS 中安装 qemu 和 libvirtd 软件包时,将会自动启动并启用 libvirtd 服务。如果 libvirtd 服务没按预期启动或启用,请执行以下命令:
sudo service libvirtd start sudo update-rc.d libvirtd enable
现在使用下面的命令验证 libvirtd 服务的状态:
service libvirtd status
步骤4:为KVM虚拟机配置网桥
KVM 虚拟机需要通过网桥才能访问 Host 主机或访问网络,所以在安装好之后需要先配置网桥。而 Ubuntu 18.04 的网络由 netplan 实用程序进行管理,在安装 Ubuntu 18.04 系统时就会自动创建 /etc/netplan/50-cloud-init.yaml 文件来配置静态 IP 和网络,而系统会通过 netplan 来引用此文件。
下面我们需要通过 Nano 或 vi 来编辑 /etc/netplan/50-cloud-init.yaml 配置文件:
network: version: 2 ethernets: ens33: dhcp4: no dhcp6: no bridges: br0: interfaces: [ens33] dhcp4: no addresses: [192.168.1.170/24] gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.1]
我将 Linux 的静态 IP 地址添加到了网桥 br0,并将 ens33 网卡挂到了网桥 br0 下。配置文件中的网桥 IP、网关和 NS 地址请按您的实际情况进行配置。
配置文件更改完成后,请执行如下命令应用更改:
sudo netplan apply
如果要查看调试日志,请使用以下命令:
sudo netplan --debug apply
现在使用以下命令验证网桥状态:
sudo networkctl status -a
ifconfig
步骤5:创建KVM虚拟机
创建 KVM 虚拟机的方式一共有 2 种:
- virt-manager(GUI 实用程序)
- virt-install 命令(CLI 实用程序)
使用virt-manager创建虚拟机
要使用 virt-manager 工具创建虚拟机,可以在「终端」中执行如下命令打开:
sudo virt-manager
接下来就是简单的图形化操作,与其它虚拟机的使用方法类似,这里就不赘述了。
使用virt-install命通过CLI创建虚拟机
如果您配置的是 Ubuntu 18.04 Server,当然就需要类似使用以下 virt-install 命令从终端为 KVM 创建 VM 虚拟机。
sudo virt-install -n Sysgeek-Server --description "Test VM for Sysgeek" --os-type=Linux --os-variant=rhel7 --ram=1096 --vcpus=1 --disk path=/var/lib/libvirt/images/ sgserver.img,bus=virtio,size=10 --network bridge:br0 --graphics none --location /home/billyfu/rhel-server-7.3-x86_64-dvd.iso --extra-args console=ttyS0
请根据您的设置替换 VM 名称、描述,ISO 文件的位置和网桥信息。
希望本文可以帮助您快速在 Ubuntu 18.04 上安装和配置 KVM。最后提醒一下,KVM 是 Openstack 的默认管理程序。