2.2. 启动虚拟机

2.2.1. 启动虚拟机

流程

  1. 单击 ComputeVirtual Machines,再选择状态为 Down 的虚拟机。
  2. Run

虚拟机的状态更改为 Up,操作系统安装开始。如果虚拟机未自动打开,请打开控制台。

注意

虚拟机将不会在 CPU 过载的主机上启动。默认情况下,如果主机的 CPU 的负载超过 80% 达到 5 分钟,则主机 CPU 被视为过载,但这些值可以使用调度策略来更改。如需更多信息,请参阅管理指南中的调度策略

故障排除

场景 - 虚拟机无法引导并显示以下错误消息:

Boot failed: not a bootable disk - No Bootable device

这个问题可能的解决方案:

  • 确保启动序列中 选择了硬盘,从中启动虚拟机的磁盘必须设置为 可引导
  • 基于模板创建克隆的虚拟机.
  • 使用由 RHV 管理的本地引导磁盘创建新虚拟机,其中包含操作系统和应用二进制文件。
  • 通过从 网络(PXE) 引导选项启动来安装操作系统。

场景 - IBM POWER9 上的虚拟机无法引导并显示以下错误信息:

qemu-kvm: Requested count cache flush assist capability level not supported by kvm, try appending -machine cap-ccf-assist=off

默认风险级别保护可以防止虚拟机在 IBM POWER9 上启动。要解决这个问题:

  1. 在 BMC 中创建或编辑 /var/lib/obmc/cfam_overrides
  2. 将固件风险级别设置为 0:

    # Control speculative execution mode
    0 0x283a 0x00000000  # bits 28:31 are used for init level -- in this case 0 Kernel and User protection (safest, default)
    0 0x283F 0x20000000  # Indicate override register is valid
  3. 重启主机系统以使更改生效。
注意

覆盖风险级别可能会导致在运行虚拟机时出现意外行为。

2.2.2. 打开虚拟机的控制台

使用远程查看器连接到虚拟机。

注意

要允许其他用户连接到虚拟机,请确保在控制台结束时关闭并重启虚拟机。或者,管理员可以 禁用严格的用户检查,以消除在用户之间重新引导的需要。如需更多信息,请参阅虚拟机控制台设置说明

流程

  1. 安装 Remote Viewer(如果尚未安装)。请参阅安装控制台组件
  2. 单击 ComputeVirtual Machines 并选择虚拟机。
  3. 点击 Console。默认情况下,浏览器提示您下载名为 console.vv 的文件。当您点击打开文件时,会为虚拟机打开一个控制台窗口。您可以将浏览器配置为自动打开这些文件,以便单击 Console 可打开控制台。
注意

console.vv 会在 120 秒后过期。如果下载文件和您打开文件的时间间隔超过 120 秒,则再次单击 Console

2.2.3. 打开串行控制台到虚拟机

您可以从命令行访问虚拟机的串行控制台,而不是从管理门户或虚拟机门户打开控制台。使用 SSH 和密钥对通过 VirtIO 通道模拟串行控制台。Manager 充当连接的代理,提供有关虚拟机放置的信息,并存储身份验证密钥。您可以从管理门户或虚拟机门户为每个用户添加公钥。您只能访问具有适当权限的那些虚拟机的串行控制台。

重要

要访问虚拟机的串行控制台,用户必须具有该虚拟机的 UserVmManagerSuperUserUserInstanceManager 权限。必须为每个用户明确定义这些权限。将这些权限分配给Everyone(每个人)是不够的。

串行控制台通过 Manager 上的 TCP 端口 2222 访问。这个端口会在新安装中的 engine-setup 期间打开。要更改端口,请参阅 ovirt-vmconsole/README.md

您必须配置以下防火墙规则以允许串行控制台:

串行控制台依赖于主机上的 ovirt-vmconsole 软件包和 ovirt-vmconsole-proxy 上的 ovirt-vmconsole -proxy,以及主机上的 ovirt-vmconsole-host 软件包。

这些软件包默认安装在新安装中。要在现有安装中安装软件包,请重新安装主机

启用虚拟机的串行控制台

  1. 在您要访问的串行控制台的虚拟机上,向 /etc/default/grub 中添加以下行:

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
    GRUB_TERMINAL="console serial"
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    注意

    GRUB_CMDLINE_LINUX_DEFAULT 将此配置仅应用于默认菜单条目。使用 GRUB_CMDLINE_LINUX 将配置应用到所有菜单条目。

    如果 /etc/default/grub 中已存在这些行,请更新它们。不要重复它们。

  2. 重新构建 /boot/grub2/grub.cfg

    • 基于 BIOS 的机器:

      # grub2-mkconfig -o /boot/grub2/grub.cfg
    • 基于 UEFI 的机器:

      # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

      详情请参阅 Red Hat Enterprise Linux 7 系统管理员指南中通过串行控制台使用 GRUB 2

  3. 在您要从其访问虚拟机串行控制台的客户端计算机上,生成 SSH 密钥对。Manager 支持标准 SSH 密钥类型,例如 RSA 密钥:

    # ssh-keygen -t rsa -b 2048 -f .ssh/serialconsolekey

    此命令将生成公钥和私钥。

  4. 在管理门户中,点 AdministrationAccount Settings 或点标题栏上的用户图标,然后点 Account Settings 以打开 Account Settings 屏幕。

    在虚拟机门户中,单击标题栏上的 Settings 图标,以打开 Account Settings 屏幕。

  5. 在用户的公钥文本字段(管理门户)或 SSH Key 字段(VM Portal)中,粘贴将用于访问串行控制台的客户端计算机的公钥。
  6. 单击 ComputeVirtual Machines 并选择虚拟机。
  7. Edit
  8. Edit Virtual Machine 窗口的 Console 选项卡中,选中 Enable VirtIO 串行控制台 复选框。

连接到虚拟机的串行控制台

在客户端机器上连接到虚拟机的串行控制台:

  • 如果单个虚拟机可用,这个命令会将用户连接到该虚拟机:

    # ssh -t -p 2222 ovirt-vmconsole@Manager_FQDN -i .ssh/serialconsolekey
    Red Hat Enterprise Linux Server release 6.7 (Santiago)
    Kernel 2.6.32-573.3.1.el6.x86_64 on an x86_64
    USER login:
  • 如果有多个虚拟机可用,这个命令会列出可用的虚拟机及其 ID:

    # ssh -t -p 2222 ovirt-vmconsole@Manager_FQDN -i .ssh/serialconsolekey list
    1. vm1 [vmid1]
    2. vm2 [vmid2]
    3. vm3 [vmid3]
    > 2
    Red Hat Enterprise Linux Server release 6.7 (Santiago)
    Kernel 2.6.32-573.3.1.el6.x86_64 on an x86_64
    USER login:

    输入您要连接的机器数量,然后按 Enter

  • 或者,使用其唯一标识符或其名称直接连接到虚拟机:

    # ssh -t -p 2222 ovirt-vmconsole@Manager_FQDN connect --vm-id vmid1
    # ssh -t -p 2222 ovirt-vmconsole@Manager_FQDN connect --vm-name vm1

断开与虚拟机的串行控制台的连接

按任意键加 ~ . 以关闭串行控制台会话。

如果串行控制台会话正常断开连接,则发生 TCP 超时。在超时期限到期之前,您将无法重新连接到虚拟机的串行控制台。

2.2.4. 自动连接到虚拟机

登录后,您可以自动连接到正在运行的虚拟机。这可以在虚拟机门户中配置。

流程

  1. 在 Virtual Machines 页面中,单击虚拟机的名称以进入详情视图。
  2. 点击 Console 旁边的铅笔图标,并将 Connect 自动 设置为 ON

下一次登录虚拟机时,如果您只有一个正在运行的虚拟机,则会自动连接到该虚拟机。