4.4. 管理虚拟机

每个虚拟机 (VM) 都是一个独立系统,每个都具有一组独立虚拟硬件。其主要功能包括:

  • 虚拟机类似于常规计算机,其工作方式也类似于常规计算机。它具有自己的虚拟硬件。软件应用程序可以在虚拟机中运行,而无需进行任何修改或调整。

  • 虚拟机配置可以轻松更改,例如,通过添加新的虚拟磁盘或内存。

  • 尽管虚拟机共享物理硬件资源,但它们彼此(文件系统、进程,sysctl 变量)完全隔离,也与计算节点完全隔离。

  • 虚拟机可以运行任何受支持的来宾操作系统。

下表列出了当前虚拟机配置限制:

表 4.4.1 虚拟机硬件

资源

限制

RAM

1 TB

CPU

48 个逻辑 CPU

存储器

15 个卷,每个 512 TB

网络

15 个 NIC

在多核心(多线程)处理器中,逻辑 CPU 是核心(线程)。

4.4.1. 支持的来宾操作系统

以下来宾操作系统已经过测试,在虚拟机中受支持:

表 4.4.1.1 Windows 来宾操作系统

操作系统

Edition

体系结构

Windows Server 2019

Essentials、Standard、Datacenter

x64

Windows Server 2016

Essentials、Standard、Datacenter

x64

Windows Server 2012 R2

Essentials、Standard、Datacenter

x64

Windows Server 2012

Standard、Datacenter

x64

Windows Server 2008 R2

Standard、Datacenter

x64

Windows Server 2008

Standard、Datacenter

x64

Windows 10

Home、Professional、Enterprise、Enterprise 2016 LTSB

x64

Windows 8.1

Home、Professional、Enterprise

x64

Windows 7

Home、Professional、Enterprise

x64

表 4.4.1.2 Linux 来宾操作系统

操作系统

体系结构

CentOS 8.x

x64

CentOS 7.x

x64

CentOS 6.x

x64

RHEL 8.x

x64

RHEL 7.x

x64

Debian 9.x

x64

Ubuntu 20.04.x

x64

Ubuntu 18.04.x

x64

Ubuntu 16.04.x

x64

4.4.2. 创建虚拟机

在继续创建 VM 之前,请检查是否具有以下各项:

  • 来宾操作系统资源(请参阅 管理映像):

    • 要在 VM 中安装的来宾操作系统的分发 ISO 映像,或

    • 格式为 QCOW2 的启动卷的模板,或

    • 启动卷

      注解

      要获取启动卷,请按照 管理计算卷 中所述创建卷、将该卷附加至 VM、在该卷中安装操作系统,然后删除 VM。

  • 卷的存储策略(请参阅 管理存储策略

  • Flavor(请参阅 管理 Flavor

  • 一个或多个虚拟网络(请参阅 管理计算网络

  • SSH 密钥(请参阅 管理 SSH 密钥

    注解

    仅当从模板或启动卷创建 VM 时,才可以指定 SSH 密钥。

注解

默认情况下,使用主机 CPU 型号创建虚拟机。具有不同 CPU 的计算节点可能会导致发生实时迁移问题。为了避免出现上述问题,可以按照 Setting Virtual Machines CPU Model 中所述为所有新的 VM 手动设置 CPU 型号。

要创建 VM,请执行以下操作:

  1. COMPUTE > Virtual machines > VIRTUAL MACHINES tab 上,单击创建虚拟机。将打开一个窗口,需要在其中指定 VM 参数。

    ../_images/stor_image70_ac.png
  2. 为新 VM 指定一个名称。

  3. 如果有启动卷或想要创建一个启动卷,则在部署来源中选择。否则,选择映像

  4. 根据您的选择,单击映像部分中的铅笔图标,然后执行以下操作之一:

    • 映像窗口中,选择 ISO 映像或模板,然后单击完成

    ../_images/stor_image71_ac.png
    • 窗口中,请执行以下操作之一:

      • 如果已准备好安装有来宾操作系统的卷,则单击附加、查找并选择该卷,然后单击完成

    ../_images/stor_image72_ac.png ../_images/stor_image73_ac.png
  5. (可选)在窗口中,单击添加附加,以创建或附加任何所需的其他卷。要将某个卷选择为可启动卷,请通过单击该卷旁边的向上箭头按钮将它置于列表中的第一项。

  6. 在选择一个映像或卷后,将显示位置下拉列表。位置由管理员创建,来对共享独特功能(例如特殊许可)的节点或 VM 进行分组。选择与 VM 特征相对应的位置。有关详细信息,请参阅 管理位置

  7. Flavor 窗口中,选择一个 Flavor,然后单击完成

    ../_images/stor_image74_ac.png
  8. 在“网络”窗口中,单击添加、选择一个虚拟网络接口,然后单击添加。它将显示在网络接口列表中。

    ../_images/stor_image75_ac.png

    可以编辑新添加的网络接口的其他参数,例如 IP 和 MAC 地址以及欺骗保护。为此,请单击接口的省略号图标、接着单击编辑,然后在编辑网络接口窗口中设置参数。

    ../_images/stor_image75_1_ac.png

    您以后将无法编辑这些参数。相反,您将能够删除旧的网络接口并将其替换为新的网络接口。

    ../_images/stor_image75_2_ac.png

    单击完成

  9. (可选)如果要从模板或启动卷(不是 ISO 映像)部署 VM,可以指定以下内容:

    • 要注入至 VM 中的 SSH 密钥。为此,请在选择 SSH 密钥窗口中选择一个 SSH 密钥,然后单击完成

      ../_images/stor_image76_ac.png

      注解

      为了能够通过 SSH 连接到 VM,请确保 VM 模板或启动卷中已安装 cloud-init 和 OpenSSH(请参阅 准备模板)。

    • 用于在启动后自定义 VM 的用户数据。可以采用以下两种格式之一指定用户数据:cloud-config 或 shell 脚本。为此,请在自定义脚本字段中编写脚本,或在本地服务器上浏览并找到要从中加载脚本的文件。

      ../_images/stor_image77_ac.png

      注解

      为了使来宾操作系统可自定义,请确保 VM 模板或启动卷中已安装 cloud-init(请参阅 准备模板)。

      要在 Windows VM 中注入脚本,请参阅 Cloudbase-Init 文档。例如,可以使用以下脚本为帐户设置新密码:

      #ps1
      net user <username> <new_password>
      
  10. 返回创建虚拟机窗口,单击部署以创建并启动 VM。

  11. 如果要从 ISO 映像(不是启动卷模板或已预安装来宾操作系统的卷)部署 VM,请选择 VM、单击中控台,然后使用内置 VNC 中控台安装来宾操作系统。

  12. (可选)如果要使用已注入的 SSH 密钥从准备就绪的模板部署 VM,可以使用用户名和 VM IP 地址通过 SSH 连接至它:

    • 对于 Linux 模板,输入云映像操作系统的默认用户名(例如,对于 CentOS 云映像,默认登录名是 centos)。

    • 对于 Windows 模板,输入在 Cloudbase-Init 安装期间指定的用户名。

    例如:

    # ssh myuser@10.10.10.10
    

4.4.3. 虚拟机操作概述

在创建虚拟机后,可以使用针对该虚拟机当前状态可用的操作对其进行管理。要查看可用操作的完整列表,请单击 VM 旁边或其面板顶部的省略号按钮。操作包括:

  • 运行 - 启动 VM。

  • 中控台 - 通过内置 VNC 中控台连接至正在运行的 VM。在中控台浏览器窗口中,可以将组合键发送至 VM、对中控台窗口拍摄屏幕快照,以及下载中控台日志。

  • 重新启动 - 软重启正在运行的 VM。

  • 关机 - 正常关闭正在运行的 VM。

  • 硬重启 - 切断并恢复电源,然后启动 VM。

  • 关闭电源 - 强制切断 VM 的电源。

  • 搁置 - 将停止的 VM 从其托管的节点上解除绑定,并释放其保留的资源(例如 CPU 和 RAM)。搁置的 VM 仍可启动,并保留其配置,包括 IP 地址。

    通过单击关机关闭电源并在确认窗口中选中搁置虚拟机复选框,即可搁置处于其他状态下的虚拟机。

  • 取消搁置 - 在具有足够资源来托管它的节点上生成已搁置的 VM。

  • 暂停 - 将当前 VM 状态保存至文件。

    例如,如果需要重新启动主机但又不想退出 VM 中当前正在运行的应用程序,或者需要重新启动其来宾操作系统,这可能会很有用。

  • 恢复 - 将 VM 从挂起状态中恢复。

  • 下载中控台日志 - 下载中控台日志。确保在 VM 内启用了日志记录,否则日志将为空(有关详细信息,请参阅 在虚拟机内启用日志记录)。

    检查中控台日志对发生故障的虚拟机进行故障排除可能会很有用。

  • 重置状态 - 将处于故障或过渡状态的 VM 重置为其上一个稳定状态:活动、关机或已搁置。

  • 删除 - 从计算簇中删除 VM。

  • 迁移 - 将 VM 移动至计算簇中的其他节点(有关详细信息,请参阅 迁移虚拟机)。

4.4.4. 在虚拟机内启用日志记录

仅当在 VM 内启用了 TTY1 和 TTYS0 日志记录级别时,VM 的中控台日志才会包含日志消息。例如,可以在 Linux VM 中按以下方式启用它们:

  1. 将行 GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0" 添加至文件 /etc/default/grub

  2. 根据启动加载程序,运行

    # grub-mkconfig -o /boot/grub/grub.cfg
    

    # grub2-mkconfig -o /boot/grub2/grub.cfg
    
  3. 重新启动 VM。

在 Windows VM 中,可以为此目的启用紧急管理服务 (EMS) 中控台重定向。请执行以下操作:

  1. 使用管理员权限启动 Windows PowerShell

  2. 在 PowerShell 中控台中,为 EMS 中控台重定向设置 COM 端口和波特率。由于 Windows VM 仅具有传输率为 9600 bps 的 COM1 端口,因此请运行:

    bcdedit /emssettings EMSPORT:1
    
  3. 为当前启动项目启用 EMS:

    bcdedit /ems on
    

还可以启用驱动程序状态日志记录,以查看已加载驱动程序的列表。这对发生故障的驱动程序或长时间启动过程进行故障排除可能会很有用。可以按照以下步骤进行操作:

  1. 使用管理员权限启动系统配置

  2. 系统配置窗口中,打开启动选项卡、选中操作系统启动信息复选框,然后选中使所有启动设置永久化复选框。

  3. 确认更改并重新启动系统。

4.4.5. 迁移虚拟机

VM 迁移有助于促进簇升级和计算节点之间的工作负载均衡。Acronis Cyber Infrastructure 允许您执行两种类型的迁移:

  • 冷迁移 - 适用于已停止和已暂停的虚拟机

  • 热迁移 - 适用于正在运行的虚拟机(允许您避免 VM 停机)

对于这两种迁移类型,虚拟机都使用共享存储在计算节点之间迁移,因此不会发生块设备迁移。

热迁移包括以下步骤:

  1. 所有 VM 内存都将复制到目标节点,同时虚拟机继续在源节点上运行。如果 VM 内存页发生更改,则会再次复制它。

  2. 当仅剩几个内存页要复制时,将在源节点上停止 VM、传输其余页,然后在目标节点上重新启动 VM。

可以将写密集型工作负载写入内存的速度快于内存更改的大型虚拟机传输至目标节点,从而防止迁移收敛。对于此类 VM,使用自动收敛机制。如果在实时迁移期间检测到缺乏收敛,则会降低 VM 的 vCPU 执行速度,这也会减慢写入 VM 内存的速度。最初,虚拟机的 vCPU 会降低 20%,然后在每次迭代期间再降低 10%。该过程将继续进行,直到写入 VM 内存的速度减慢到足以完成迁移或 VM vCPU 的速度降低了 99% 为止。

注解

默认情况下,使用主机 CPU 型号创建虚拟机。具有不同 CPU 的计算节点可能会导致发生实时迁移问题。为了避免出现上述问题,可以按照 Setting Virtual Machines CPU Model 中所述为所有新的 VM 手动设置 CPU 型号。

要迁移 VM,请执行以下操作:

  1. 计算 > 虚拟机 > 虚拟机选项卡上,单击要迁移的 VM、单击省略号按钮,然后选择迁移

    ../_images/stor_image104_ac.png
  2. 在新窗口中,执行目标节点:

    • 自动。根据可用的 CPU 和 RAM 资源自动在群集节点中选择最佳目标。

    • 从下拉列表中手动选择目标节点。

    ../_images/stor_image105_ac.png
  3. 默认情况下,正在运行的 VM 将实时迁移。可以通过选中冷迁移复选框,将迁移模式更改为脱机。迁移后,VM 将在目标节点上停止并重新启动。

  4. 单击迁移以在目标节点上保留资源并开始迁移。

管理面板将显示迁移进度。

4.4.6. 重新配置和监控虚拟机

要监控虚拟机的 CPU、存储和网络使用情况,请选择 VM,然后打开监控选项卡。

图表的默认时间间隔是 12 小时。要放大特定时间间隔,请用鼠标选择相应内部。要重置缩放,请双击任何图表。

以下性能图表可用:

CPU/RAM

VM 的 CPU 和 RAM 使用情况。

网络

传入和传出网络流量。

存储读取/写入

VM 读取和写入的数据量。

读取/写入延迟

读取和写入延迟。将鼠标光标悬停在图表上的某个点上,还可以查看该时刻的平均延迟和最大延迟以及 95 和 99 百分位数值。

要重新配置 VM,请选择它,然后在概述选项卡上单击需要更改的参数旁边的铅笔图标。无法执行以下操作:

  • 更改、拆离或删除启动卷

  • 管理非启动卷(附加和拆离除外)

  • 修改以前添加的网络接口

  • 在搁置的 VM 中附加和拆离网络接口

  • 更改正在运行和已搁置的 VM 的 Flavor

4.4.7. 配置虚拟机高可用性

如果虚拟机所在的节点由于内核故障、断电等原因而发生故障,或者无法通过网络进行访问,则高可用性可确保虚拟机继续运行。正常关机不视为故障事件。

重要

计算簇只能承受一个节点发生故障。

如果发生故障,系统将尝试自动撤离受影响的 VM,即按照以下顺序自动调度将它们脱机迁移至其他运行状况良好的计算节点:

  • 先将处于“活动”状态的 VM 撤离并自动启动。

  • 接下来将处于“关机”状态的 VM 撤离,并使其保持停止状态。

  • 所有其他 VM 都将被忽略,并留在发生故障的节点上。

如果某些原因阻止了撤离(例如,目标计算节点缺少资源来托管受影响的 VM),则这些 VM 将保留在发生故障的节点上并接收到“错误”状态。在解决问题(提供足够资源、将新节点加入簇中等)之后,可以手动撤离它们。要执行此操作,请单击此类 VM 旁边的省略号按钮或打开其面板,然后单击撤离

../_images/stor_image155_ac.png

当发生故障的节点再次可用时,系统会阻止在该节点上预定新的 VM,可以手动将该节点返回至操作。要执行此操作,请单击受防护节点旁边的省略号按钮或打开其面板,然后单击返回至操作

../_images/stor_image154_ac.png

默认情况下,在创建计算簇后会自动为虚拟机启用高可用性。如果需要,可以手动将其禁用,如下所示:

  1. 单击要禁用 HA 的 VM。

  2. 在 VM 面板上,单击高可用性参数旁边的铅笔图标。

  3. 高可用性窗口中,禁用该 VM 的 HA,然后单击保存

../_images/stor_image156_ac.png

如果发生故障转移,则不会将已禁用 HA 的虚拟机撤离至运行正常的节点中。

4.4.8. 管理来宾工具

本部分将介绍如何安装和卸载来宾工具。对于 Running Commands in Virtual Machines without Network Connectivity 以及为正在运行的 VM 的磁盘创建一致快照需要此功能(请参阅 管理卷快照)。

4.4.8.1. 安装来宾工具

在虚拟机中安装来宾工具包括由具有不同角色的用户执行的步骤:系统管理员和 VM 用户。

作为系统管理员,您需要执行以下操作:

  1. 将位于任何计算节点上的 /usr/share/vz-guest-tools/ 目录中的来宾工具 ISO 文件上传到网络共享或 FTP 服务器:

    • 对于 Windows 来宾,上传 vz-guest-tools-win.iso

    • 对于 Linux 来宾,上传 vz-guest-tools-lin.iso

  2. 将对已上传 ISO 文件的访问权限提供给 VM 用户。

作为 VM 用户,登录到虚拟机并执行以下操作:

  • 在 Windows VM 中:

    1. 下载系统管理员提供的 Windows 来宾工具 ISO 映像。

    2. 在 VM 中加载该映像。

      • 在 Windows 8、Windows Server 2012 或更高版本中,可以本地加载 ISO 映像。要执行此操作,请右键单击来宾工具 ISO 映像,然后选择加载

      • 在 Windows 7 和 Windows Server 2008 中,需要第三方应用程序才能加载 ISO 映像。

    3. 在资源管理器中,转到已加载的光盘驱动器,然后通过运行 setup.exe 来安装来宾工具。

    4. 在安装完成后,重新启动 VM。

  • 在 Linux VM 中:

    1. 下载系统管理员提供的 Linux 来宾工具 ISO 映像。

    2. 使用来宾工具映像为光盘驱动器创建一个加载点,然后运行安装程序:

      # mkdir /mnt/cdrom
      # mount <path_to_guest_tools_iso> /mnt/cdrom
      # bash /mnt/cdrom/install
      

注解

来宾工具依赖与该工具一起安装的 QEMU 来宾代理程序。代理程序服务必须正在运行,才能使该工具正常工作。

4.4.8.2. 卸载来宾工具

如果发现来宾工具与虚拟机中的某些软件不兼容,可以按以下方式卸载它们:

  • 在 Windows VM 中:

    1. 从设备管理器删除 QEMU 设备驱动程序。

      重要

      请勿删除 VirtIO/SCSI 硬盘驱动程序和 NetKVM 网络驱动程序。没有前者,虚拟机不会启动;没有后者,VM 会失去网络连接。

    2. 从已安装的应用程序列表卸载 QEMU 来宾代理程序和来宾工具。

    3. 停止并删除来宾工具监视器:

      > sc stop VzGuestToolsMonitor
      > sc delete VzGuestToolsMonitor
      
    4. 从事件日志注销来宾工具监视器:

      > reg delete HKLM\SYSTEM\CurrentControlSet\services\eventlog\Application\\
      VzGuestToolsMonitor
      
    5. 删除 RebootNotifier 的自动运行注册表项:

      > reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v \
      VzRebootNotifier
      
    6. 删除 C:\Program Files\Qemu-ga\ 目录。

      如果 VzGuestToolsMonitor.exe 已锁定,请关闭全部事件查看器窗口。如果它仍保持锁定,请重新启动 eventlog 服务:

      > sc stop eventlog
      > sc start eventlog
      

    在删除来宾工具后,请重新启动虚拟机。

  • 在 Linux VM 中:

    1. 删除程序包:

      1. 在基于 RPM 的系统(CentOS 及其他系统)上:

        # yum remove dkms-vzvirtio_balloon prl_nettool qemu-guest-agent-vz vz-guest-udev
        
      2. 在基于 DEB 的系统(Debian 和 Ubuntu)上:

        # apt-get remove vzvirtio-balloon-dkms prl-nettool qemu-guest-agent-vz vz-guest-udev
        

        如果您的系统上未安装以上列出的任何程序包,该命令将失败。在这种情况下,请从命令中排除这些程序包,然后再次运行。

    2. 删除文件:

      # rm -f /usr/bin/prl_backup /usr/share/qemu-ga/VERSION /usr/bin/install-tools \
      /etc/udev/rules.d/90-guest_iso.rules /usr/local/bin/fstrim-static /etc/cron.weekly/fstrim
      
    3. 重新加载 udev 规则:

      # udevadm control --reload
      

    在删除来宾工具后,请重新启动虚拟机。