2.2. 启动虚拟机
2.2.1. 启动虚拟机
流程
-
单击
,再选择状态为 Down
的虚拟机。 - 点 。
虚拟机的状态更改为 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 上启动。要解决这个问题:
-
在 BMC 中创建或编辑
/var/lib/obmc/cfam_overrides
。 将固件风险级别设置为
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
- 重启主机系统以使更改生效。
覆盖风险级别可能会导致在运行虚拟机时出现意外行为。
2.2.2. 打开虚拟机的控制台
使用远程查看器连接到虚拟机。
要允许其他用户连接到虚拟机,请确保在控制台结束时关闭并重启虚拟机。或者,管理员可以 禁用严格的用户检查,以消除在用户之间重新引导的需要。如需更多信息,请参阅虚拟机控制台设置说明。
流程
- 安装 Remote Viewer(如果尚未安装)。请参阅安装控制台组件。
-
单击
并选择虚拟机。 -
点击
console.vv
的文件。当您点击打开文件时,会为虚拟机打开一个控制台窗口。您可以将浏览器配置为自动打开这些文件,以便单击 可打开控制台。 。默认情况下,浏览器提示您下载名为
console.vv
会在 120 秒后过期。如果下载文件和您打开文件的时间间隔超过 120 秒,则再次单击 。
2.2.3. 打开串行控制台到虚拟机
您可以从命令行访问虚拟机的串行控制台,而不是从管理门户或虚拟机门户打开控制台。使用 SSH 和密钥对通过 VirtIO 通道模拟串行控制台。Manager 充当连接的代理,提供有关虚拟机放置的信息,并存储身份验证密钥。您可以从管理门户或虚拟机门户为每个用户添加公钥。您只能访问具有适当权限的那些虚拟机的串行控制台。
要访问虚拟机的串行控制台,用户必须具有该虚拟机的 UserVmManager、SuperUser 或 UserInstanceManager 权限。必须为每个用户明确定义这些权限。将这些权限分配给Everyone(每个人)是不够的。
串行控制台通过 Manager 上的 TCP 端口 2222 访问。这个端口会在新安装中的 engine-setup
期间打开。要更改端口,请参阅 ovirt-vmconsole/README.md。
您必须配置以下防火墙规则以允许串行控制台:
- Manager 防火墙 的规则"M3"
- 主机防火墙的规则"H2"
串行控制台依赖于主机上的 ovirt-vmconsole
软件包和 ovirt-vmconsole-proxy
上的 ovirt-vmconsole
-proxy,以及主机上的 ovirt-vmconsole-host
软件包。
这些软件包默认安装在新安装中。要在现有安装中安装软件包,请重新安装主机。
启用虚拟机的串行控制台
在您要访问的串行控制台的虚拟机上,向 /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 中已存在这些行,请更新它们。不要重复它们。
重新构建 /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。
在您要从其访问虚拟机串行控制台的客户端计算机上,生成 SSH 密钥对。Manager 支持标准 SSH 密钥类型,例如 RSA 密钥:
# ssh-keygen -t rsa -b 2048 -f .ssh/serialconsolekey
此命令将生成公钥和私钥。
在管理门户中,点
或点标题栏上的用户图标,然后点 Account Settings 以打开 Account Settings 屏幕。 或
在虚拟机门户中,单击标题栏上的 Settings 图标,以打开 Account Settings 屏幕。
- 在用户的公钥文本字段(管理门户)或 SSH Key 字段(VM Portal)中,粘贴将用于访问串行控制台的客户端计算机的公钥。
-
单击
并选择虚拟机。 - 点 。
- 在 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. 自动连接到虚拟机
登录后,您可以自动连接到正在运行的虚拟机。这可以在虚拟机门户中配置。
流程
- 在 Virtual Machines 页面中,单击虚拟机的名称以进入详情视图。
- 点击 Console 旁边的铅笔图标,并将 Connect 自动 设置为 ON。
下一次登录虚拟机时,如果您只有一个正在运行的虚拟机,则会自动连接到该虚拟机。