您当前的位置:首页 > 计算机 > 系统应用 > Linux

优麒麟中安装虚拟机(ARM64)

时间:11-21来源:作者:点击数:

环境

操作系统:Ubuntu Kylin 优麒麟 20.04 LTS

架构版本:ARM64(鲲鹏、飞腾)

前言

因涉及到各个版本,所以在此着重提一下。
video负责虚拟机的视频输出(也用VGA标识)。

qemu、kvm、libvirt 这几个名词,免费混淆,简单介绍一下:

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

  1. 当硬件支持虚拟化时,可在 nova 配置中指定 virt_type = kvm,意义为 cpu、内存虚拟化通过 kvm 提供,其它由 qemu 提供。若硬件不支持虚拟化,则此属性配置为 qemu。qemu 可以通过软件完全模拟所需的硬件。
  2. 目前 kvm 项目已经整合进 qemu 项目中,联合使用时为 qemu 提供 cpu、内存虚拟化功能。
  3. libvirt 是一个中间件,实现虚拟机的技术有几种,通过 libvirt 统一了使用方式。openstack 默认通过调用 libvirt 控制虚拟机。

由于 libvirt 进行了一些封装操作,因此 qemu 支持的类型并不能代表 libvirt 支持的类型,只能有一定的参考意义。
首先介绍 qemu 支持的类型,再介绍 libvirt 支持的类型,最后介绍 openstack 可使用的类型(openstack 默认调用 libvirt)

注意:由于新版 LibVirtD 存储池的需要,操作系统安装时请将分区格式化为 BTRFS。

第一步:虚拟化加速

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

sudo apt install cpu-checker

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

sudo kvm-ok

输出结果:

  • INFO: /dev/kvm exists
  • KVM acceleration can be used

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

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

sudo apt install qemu qemu-kvm bridge-utils virt-manager libguestfs-tools

重启计算机。

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

一般情况下,安装完成后 libvirtd 会自动启动。使用下面的命令确认服务的状态。

sudo systemctl status libvirtd

输出结果如下所示:

● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-04-30 09:32:27 CST; 5min ago
TriggeredBy: ● libvirtd.socket
……

使用 Ctrl + C 返回命令行。

如果 libvirtd 服务没有开启,则运行以下命令开启。

sudo systemctl enable libvirtd --now

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

只有通过桥接网络,KVM 虚拟机才能访问外部的 KVM 管理程序或主机。

在“设置”中选择“网络”、“网络设置”。

在弹出的对话框中点击左下角的“+”,在下拉框中选择“桥接”,点击“创建”。

在新的对话框中填写连接名称(Connection name)“br0”,在标签“桥接”中,界面名称(Interface name)填写“br0”。

点击“增加”,在设备(Device)下拉框中选择要桥接的物理网卡,比如“eno1”,保存。

返回后,切换到标签“IPv4设置”修改IP地址和掩码等。

保存所有设置后,重启计算机。

第五步:创建虚拟机

在菜单中点击“虚拟系统管理器”,或者通过执行下面的命令启动:

sudo virt-manager

创建一个新的虚拟机:

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

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

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

点击“结束”。

默认情况下,ARM64平台的虚拟机并未添加显卡、键盘和鼠标。

因此如果想安装图形化的Linux先添加“图形”。

在“详情”界面,点击左下角的“添加硬件”,选择“图形”,类型:Spice服务器、监听类型:Address,地址:仅本地主机。点击“完成”。

添加键盘。再次点击“添加硬件”,选择“输入”,类型:通用 USB Keyboard。点击“完成”。

添加鼠标。再次点击“添加硬件”,选择“输入”,类型:通用 USB Mouse。点击“完成”。

接下来只需要参照AMD64平台的步骤安装系统就可以了。

模拟 AMD64

AMD64 又被称为 x86_64 或 x64,QEMU 支持该指令集的模拟。可以安装 Windows 7、Windows 10、Windows Server 等操作系统。

安装 QEMU 对 AMD64 的支持软件包。

sudo apt install qemu-system-x86

新建虚拟机时,架构选择“i686”或“x86_64”。

后边的安装步骤不再赘述了。目前,安装 Windows 10 可能会遇到假死,需要对虚拟机手工优化,修改一些配置参数。默认情况下,推荐使用 Windows xp 和 Windows 7。

基础介绍

通过虚拟机的xml文件可以看到video配置项。

找到xml文件(第一种方式):

如果虚拟机处于启动的状态可通过此方式查看。

  1. 查询虚拟机在kvm中的名称:
openstack server show <虚拟机id>

其中 OS-EXT-SRV-ATTR:instance_name 属性值就是虚拟机在kvm中的名称。

  1. 到虚拟机所在物理节点的 /run/libvirt/qemu/ 目录下,根据刚刚查到的kvm虚拟机名称可以找到对应的xml文件。

找到xml文件(第二种方式):

虚拟机未运行也可查看。

  1. 查询虚拟机在kvm中的名称:
openstack server show <虚拟机id>

其中 OS-EXT-SRV-ATTR:instance_name 属性值就是虚拟机在kvm中的名称。

  1. 到虚拟机所在物理节点,使用kvm命令查看xml:
virsh dumpxml <kvm虚拟机名称>

video类型

截至2020年6月11日,ARM64平台支持的video类型如下。

qemu支持的video类型

qemu最新版已经支持qxl,std,virtio,none 。

std
qemu2.2之后默认使用的video类型。
无需虚拟机安装额外的驱动,可支持到 2560 x 1600 分辨率。

qxl
2D场景下,一般与spice搭配使用。
注意虚拟机使用此种类型时,虚拟机需要装额外的驱动程序,否则使用体验很糟糕。
默认配置可支持到 2560x1440 分辨率。通过提高内存使用量可以提供更高的分辨率。

virtio
适用于3D场景。

none
一般不用,等于没有视频设备。无法使用vnc等访问虚拟机。

libvirt支持的video类型

vga, cirrus, vmvga, xen, vbox, qxl(since 0.8.6), virtio(since 1.3.0), gop(since 3.2.0), or none(since 4.6.0)
libvirt兼容多个虚拟机具体实现工具,因此在video设备上对某些类型进行了重命名。这里着重讨论使用qemu驱动。

vga
参考qemu中的 std。

qxl

参考qemu中的 qxl

virtio
参考qemu中的 virtio

none

参考qemu中的 none

openstack可使用的video类型

vga, qxl

vga

参考qemu中的 std。

qxl
参考qemu中的 qxl。

扩展介绍

如何调整虚拟机使用的视频设备

虚拟机得video类型在镜像中定义。
命令参考:

openstack image set  --property hw_video_model='vga'

还支持更多得选项,比如video内存配置。注意某些类型需要虚拟机安装驱动配合使用。详情参考最后得 openstack镜像配置参考

虚拟机支持多个视频设备吗

支持,通关xml中的head区分

本文到此为止, 除此之外,KVM 也是 Openstack 默认的管理程序。

参考文献

《虚拟机视频设备介绍》 https://www.jianshu.com/p/c61f20bd221c
 
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门