如何在 Ubuntu 18.04 服务器上安装和配置 KVM
创始人
2024-03-01 23:05:58
0

KVM(基于内核的虚拟机)是一款为类 Linux 系统提供的开源的全虚拟化解决方案,KVM 使用虚拟化扩展(如 Intel VTAMD-V)提供虚拟化功能。无论何时我们在任何 Linux 机器上安装 KVM,都会通过加载诸如 kvm-intel.ko(基于 Intel 的机器)和 kvm-amd.ko(基于 amd 的机器)的内核模块,使其成为 管理程序 hyervisor (LCTT 译注:一种监控和管理虚拟机运行的核心软件层)。

KVM 允许我们安装和运行多个虚拟机(Windows 和 Linux)。我们可以通过 virt-manager 的图形用户界面或使用 virt-installvirsh 命令在命令行界面来创建和管理基于 KVM 的虚拟机。

在本文中,我们将讨论如何在 Ubuntu 18.04 LTS 服务器上安装和配置 KVM 管理程序。我假设你已经在你的服务器上安装了 Ubuntu 18.04 LTS 。接下来登录到您的服务器执行以下步骤。

第一步:确认您的硬件是否支持虚拟化

执行 egrep 命令以验证您的服务器的硬件是否支持虚拟化,

linuxtechi@kvm-ubuntu18-04:~$ egrep -c '(vmx|svm)' /proc/cpuinfo
1

如果输出结果大于 0,就意味着您的硬件支持虚拟化。重启,进入 BIOS 设置中启用 VT 技术。

现在使用下面的命令安装 kvm-ok 实用程序,该程序用于确定您的服务器是否能够运行硬件加速的 KVM 虚拟机。

linuxtechi@kvm-ubuntu18-04:~$ sudo apt install cpu-checker

运行 kvm-ok 命令确认输出结果,

linuxtechi@kvm-ubuntu18-04:~$ sudo kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

第二步:安装 KVM 及其依赖包

运行下面的 apt 命令安装 KVM 及其依赖项:

linuxtechi@kvm-ubuntu18-04:~$ sudo apt update
linuxtechi@kvm-ubuntu18-04:~$ sudo apt install qemu qemu-kvm libvirt-bin  bridge-utils  virt-manager

只要上图相应的软件包安装成功,那么你的本地用户(对于我来说是 linuxtechi)将被自动添加到 libvirtd 群组。

第三步:启动并启用 libvirtd 服务

我们在 Ubuntu 18.04 服务器上安装 qemu 和 libvirtd 软件包之后,它就会自动启动并启用 libvirtd 服务,如果 libvirtd 服务没有开启,则运行以下命令开启,

linuxtechi@kvm-ubuntu18-04:~$ sudo service libvirtd start
linuxtechi@kvm-ubuntu18-04:~$ sudo update-rc.d libvirtd enable

现在使用下面的命令确认 libvirtd 服务的状态,

linuxtechi@kvm-ubuntu18-04:~$ service libvirtd status

输出结果如下所示:

第四步:为 KVM 虚拟机配置桥接网络

只有通过桥接网络,KVM 虚拟机才能访问外部的 KVM 管理程序或主机。在Ubuntu 18.04中,网络由 netplan 实用程序管理,每当我们新安装一个 Ubuntu 18.04 系统时,会自动创建一个名称为 /etc/netplan/50-cloud-init.yaml 文件,其配置了静态 IP 和桥接网络,netplan 实用工具将引用这个文件。

截至目前,我已经在此文件配置了静态 IP,文件的具体内容如下:

network:
  ethernets:
    ens33:
      addresses: [192.168.0.51/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [192.168.0.1]
      dhcp4: no
      optional: true
  version: 2

我们在这个文件中添加桥接网络的配置信息,

linuxtechi@kvm-ubuntu18-04:~$ sudo 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.0.51/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [192.168.0.1]

正如你所看到的,我们已经从接口(ens33)中删除了 IP 地址,并将该 IP 添加到 br0 中,并且还将接口(ens33)添加到 br0。使用下面的 netplan 命令使更改生效,

linuxtechi@kvm-ubuntu18-04:~$ sudo netplan apply

如果您想查看 debug 日志请使用以下命令,

linuxtechi@kvm-ubuntu18-04:~$ sudo netplan --debug  apply

现在使用以下方法确认网络桥接状态:

linuxtechi@kvm-ubuntu18-04:~$ sudo networkctl status -a

linuxtechi@kvm-ubuntu18-04:~$ ifconfig

第五步:创建虚拟机(使用 virt-manager 或 virt-install 命令)

有两种方式创建虚拟机:

  • virt-manager(图形化工具)
  • virt-install(命令行工具)

使用 virt-manager 创建虚拟机

通过执行下面的命令启动 virt-manager

linuxtechi@kvm-ubuntu18-04:~$ sudo virt-manager

创建一个新的虚拟机:

点击“下一步”然后选择 ISO 镜像文件,我使用的是 RHEL 7.3 iso 镜像。

点击“下一步”。

在接下来的几个窗口中,系统会提示要求您为 VM 分配内存,处理器数量和磁盘空间。

并指定虚拟机名字和桥接网络名:

点击“结束”。

RHEL7-3-Installation-Virt-Manager

接下来只需要按照屏幕指示安装系统。

使用virt-install命令从命令行界面创建虚拟机

使用下面的 virt-install 命令从终端创建一个虚拟机,它将在命令行界面中开始安装,并根据您对虚拟机的名字,说明,ISO 文件位置和桥接配置的设置创建虚拟机。

linuxtechi@kvm-ubuntu18-04:~$ sudo virt-install  -n DB-Server  --description "Test VM for Database"  --os-type=Linux  --os-variant=rhel7  --ram=1096  --vcpus=1  --disk path=/var/lib/libvirt/images/dbserver.img,bus=virtio,size=10  --network bridge:br0 --graphics none  --location /home/linuxtechi/rhel-server-7.3-x86_64-dvd.iso --extra-args console=ttyS0

本文到此为止,我希望这篇文章能帮助你能够在 Ubuntu 18.04 服务器上成功安装 KVM。 除此之外,KVM 也是 Openstack 默认的管理程序。

阅读更多:“如何使用 virsh 命令创建,还原和删除 KVM 虚拟机快照”。


via: https://www.linuxtechi.com/install-configure-kvm-ubuntu-18-04-server/

作者:Pradeep Kumar 选题:lujun9972 译者:wyxplus 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

DPDK系列之九虚拟化vh...
一、virtio-net的发展 virtio-net的驱动最初从后...
2025-06-01 06:50:58
Blazor,虚拟化复选框...
要实现一个包含虚拟化复选框列表的Blazor组件,需要以下步骤:创...
2024-12-22 11:30:57
Blazor组件虚拟化-保...
在Blazor应用中使用虚拟化来提高性能,但在动态加载和卸载组件以...
2024-12-22 10:01:41
Blazor虚拟化并带有行...
首先,我们需要使用 Blazor 的虚拟滚动组件来实现虚拟化。可以...
2024-12-22 03:01:14
Blazor虚拟化占位符不...
问题:在Blazor应用程序中,使用虚拟化列表(Virtualiz...
2024-12-22 03:01:04
Blazor虚拟化组件和拖...
我们可以使用 Blazor 的 Virtualize 组件,来优化...
2024-12-22 03:00:21

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...