10.3. Oracle VDI 桌面提供者

10.3.1. 为什么我的 Windows 7 Audio Drivers 未自动安装?
10.3.2. Oracle VM VirtualBox 安装失败,显示“安装后脚本未成功完成“错误
10.3.3. 当向桌面提供者添加 Oracle VM VirtualBox 主机时,发生错误
10.3.4. 无法连接 Oracle VM VirtualBox Web 服务
10.3.5. 是否所有版本的 Oracle VM VirtualBox 均与 Oracle VDI 兼容?
10.3.6. 我如何在 Oracle VM VirtualBox 主机上更改密码?
10.3.7. 我可以看到我的 Oracle VM VirtualBox 托管桌面,但是它未启动
10.3.8. 我的 Oracle VDI 虚拟机管理程序 (hypervisor) 桌面上的时间慢太多
10.3.9. 我可以在单个 Oracle VM VirtualBox Server 上运行 100 个以上虚拟机吗?
10.3.10. Oracle VM VirtualBox 高可用性有哪些要求?
10.3.11. 如何更改 Oracle VM VirtualBox 服务的密码?
10.3.12. 用户在 Internet Explorer 中遇到模糊文本

10.3.1. 为什么我的 Windows 7 Audio Drivers 未自动安装?

32 位 Windows 7 未附带 Oracle VM VirtualBox 仿真音频硬件的驱动程序 (AC'97)。不过,可以通过运行 Windows Update 自动获取相应的驱动程序,来解决该问题。更新之后,再进行重新引导,您即可获得正常的音频。

对于 64 位版的 Windows 7,您需要下载 Realtek AC'97 驱动程序,才能启用音频。

有关下载说明,请参见 http://www.realtek.com.tw/downloads

10.3.2. Oracle VM VirtualBox 安装失败,显示“安装后脚本未成功完成“错误

如果您安装的是 Oracle VM VirtualBox,您可能会在控制台中看到以下错误:

## Executing postinstall script.
Configuring VirtualBox kernel modules...
VirtualBox Host kernel module unloaded.
devfsadm: driver failed to attach: vboxdrv
Warning: Driver (vboxdrv) successfully added to system but failed to attach
can't load module: No such device or address
## Aborting due to attach failure.
## Configuration failed. Aborting installation.
pkgadd: ERROR: postinstall script did not complete successfully

Installation of <SUNWvbox> partially failed.

如果仍装有以前版本的 Oracle VM VirtualBox,通常会看到该错误。尝试删除 Oracle VM VirtualBox (./vb-install -u)。然后验证是否已删除以下软件包:

  • SUNWvbox

  • SUNWvboxkern

重新引导,然后再次尝试安装。

10.3.3. 当向桌面提供者添加 Oracle VM VirtualBox 主机时,发生错误

当添加 Oracle VM VirtualBox 主机时可能会发生若干错误,导致可能出现关于“指定主机“或“验证证书“向导步骤的错误警报。

指定主机步骤

输入主机详细信息并单击之后,出现下面两个操作:

  • 解析主机名(如果使用过)

  • 获取 SSL 和 SSH 证书

该页面上的错误可能与解析主机名时出现的 DNS 问题或连接主机时出现的问题相关。

  1. 验证输入的所有信息是否正确,包括 SSH 和 SSL 端口。SSL 端口是指 Apache 2 侦听的端口。

  2. 验证 Oracle VDI 主机是否可以通过在 Oracle VDI 主机上的 shell 中使用“nslookup <主机名>“来解析主机。

  3. 如果可以解析该主机名,请验证该主机是否在运行中,以及 SSH 和 Apache 2 是否已成功启动。按如下所示进行检查:

    # svcs svc:/network/http:apache2
    # svcs svc:/network/ssh:default

两个命令都应指明服务“联机“。如果服务标记为“维护“,请尝试使用以下命令重置该服务:

# svcadm clear <service_frmi>

验证证书步骤

检查完证书并单击“完成“/“下一步“之后,显示一条错误信息,指出 Oracle VM VirtualBox Web 服务无法连接或未在运行。

验证服务是否联机:

# svcs svc:/application/virtualbox/webservice:default

如果服务处于维护模式,请清除该服务,然后再次检查状态:

# svcadm clear svc:/application/virtualbox/webservice:default

如果服务脱机,请使用以下命令启用该服务:

# svcadm enable svc:/application/virtualbox/webservice:default

10.3.4. 无法连接 Oracle VM VirtualBox Web 服务

Oracle VDI 虚拟机管理程序 (hypervisor) 安装程序 (vb-install) 运行检查,以确保 Apache 2 软件包安装在主机上。如果 Apache 2 软件包未安装,检查不会通知您 Oracle VM VirtualBox Web 服务无法连接,并且您将无法继续安装。在这种情况下,您应该安装 Apache 2 软件包并尝试再次安装 Oracle VM VirtualBox。

10.3.5. 是否所有版本的 Oracle VM VirtualBox 均与 Oracle VDI 兼容?

否。关于支持方面的详细信息,请参见第 5.1.2 节 “Oracle VDI 虚拟机管理程序 (hypervisor) 的系统要求”

如果您要在本地创建虚拟机模板(如在笔记本电脑上),请确保使用的版本与在 Oracle VDI 桌面提供者主机上安装的版本相同。这样可确保您安装的是正确的 Guest Additions 版本,并且避免出现与虚拟机的 XML 配置文件不兼容的问题,从而防止其导入到 Oracle VDI。

10.3.6. 我如何在 Oracle VM VirtualBox 主机上更改密码?

向桌面提供者添加 Oracle VM VirtualBox 主机时,Oracle VDI 使用指定的用户名通过 SSH 和 Oracle VM VirtualBox Web 服务进行访问。

要在 Oracle VM VirtualBox 主机上更改此用户的密码,您必须更新两个密码,一个是 UNIX 用户的密码,另一个是 Apache2 密码文件的密码。

  1. 要更新 UNIX 用户的密码,请以目标用户身份登录,运行以下命令,并输入新密码。

    # /usr/bin/passwd
    passwd: Changing password for root
    New Password:
    Re-enter new Password:
    passwd: password successfully changed for root
  2. 要更新 Apache2 用户的密码,请运行以下命令。

    # /usr/apache2/bin/htpasswd -b /etc/apache2/vbox_passwd <user> <new_password>

10.3.7. 我可以看到我的 Oracle VM VirtualBox 托管桌面,但是它未启动

在某些极少数情况下,可能未从 Oracle VM VirtualBox 主机上取消注册桌面,即关闭了电源。如果需要,可以放心地从 Oracle VM VirtualBox 主机中删除处于这种状态超过几分钟的桌面,因为配置存储在 Oracle VDI 数据库中,并且所有数据都存储在存储主机上。手动从 Oracle VM VirtualBox 取消注册某个桌面时,请确保同时取消注册桌面的磁盘映像。

解决问题的步骤:

  1. 以在安装 Oracle VM VirtualBox 期间指定的用户身份登录(通常是“超级“用户)。

  2. 确定虚拟机的 UUID:

    • 执行 VBoxManage list vms

    • 或者,使用 Oracle VDI Manager 获取在“桌面摘要“选项卡中列出的 ZFS 卷名。UUID 是斜线后面的字符串(示例:f3ced2bb-d072-4efc-83c9-5a487872919d)。

  3. 要在 Oracle VM VirtualBox 主机上取消注册虚拟机(此操作不会删除 Oracle VDI 桌面),请执行以下命令:

    VBoxManage unregistervm <uuid> -delete
  4. 要在 Oracle VM VirtualBox 主机上取消注册虚拟磁盘(此操作不会删除 Oracle VDI 桌面),请执行以下命令:

    VBoxManage unregisterimage disk <uuid>

10.3.8. 我的 Oracle VDI 虚拟机管理程序 (hypervisor) 桌面上的时间慢太多

Windows 允许随机应用程序将计时器频率从默认的 100Hz(在 Oracle Solaris 主机上可提供非常好的 VM 性能)更改为任意更高的值(通常是 1kHz)。

如果某人搜索包含 PIT: mode=... (ch=0) 的最后一行,那么查看 VBox.log (~/.VirtualBox/Machines/VDA/<VMNAME>/Logs/VBox.log) 通常能够可靠地提供当前计时器分辨率。只要为 VM 分配的 CPU 数量保留为默认 (1),那么此操作对任何客操作系统均适用。这应该包括 Oracle VDI 所应用的绝大多数配置。

典型的行包括 PIT: mode=2 count=0x2ead (11949) - 99.85Hz (ch=0)PIT: mode=2 count=0x4ad (1197) - 996.81Hz (ch=0)

假设仅有一个应用程序请求较高的计时器分辨率,可以通过逐一终止所有运行中的应用程序并查看日志文件是否显示计时器分辨率降低,即可找到该应用程序。这可以即时显示。

此外,查看 prstat 的输出通常允许检测哪些 VM 进程使用的 CPU 时间显著多于其他 VM 进程。如果只有一些 VM 使用 1kHz 计时器分辨率,那么这样可减少候选者数量。

因计时器分辨率而导致的性能问题通常处于蛰伏状态,直至 Oracle VM VirtualBox 主机上的 VM 数量超过服务器的(真)CPU 核心数。原因在于 Oracle VM VirtualBox 会尽力处理该情况,因而通常会使整个 CPU 核心处于繁忙状态。当存在彼此阻止的更多此类 VM 时,会触发一种易于发现的症状,即 VM 的运行时间要远远慢于其应该具有的运行时间。

10.3.9. 我可以在单个 Oracle VM VirtualBox Server 上运行 100 个以上虚拟机吗?

如果要在单个 Oracle VM VirtualBox 主机上运行 100 个以上虚拟机,则需要增加 Oracle VM VirtualBox 主机上的信号量。您需要将可用信号的数量设置为要运行的虚拟机的数量,包括其他进程的安全边界。

单个 Oracle VM VirtualBox 主机上虚拟机的最大数量为 1023。

Oracle Solaris 的步骤

要为 1000 个虚拟机设置信号量,请以超级用户身份运行以下命令:

# prctl -r -n project.max-sem-ids -v 1024 -i project user.root 
# projmod -s -K 'project.max-sem-ids=(priv,1024,deny)' user.root

第一个命令更改当前进程的可用信号量,第二个命令将该数量设为超级用户的永久系统设置。如果 VBoxSVC 进程由非超级用户运行,则要将 user.myuser 行添加到 /etc/project 文件并更改第二个命令。

要检查是否正确应用了该设置,请以超级用户身份运行以下命令:

# prctl -i project -n project.max-sem-ids user.root

如果 Oracle VM VirtualBox 主机由非超级用户运行,则您必须重新启动所有 Oracle VM VirtualBox 进程。最简单的方式是重新引导主机。

Oracle Linux 的步骤

要为 1000 个虚拟机设置信号量,请以超级用户身份运行以下命令:

# echo "kernel.sem = 250 32000 32 1024" >> /etc/sysctl.conf 
# /sbin/sysctl -p

第一个命令更改可用的信号量并使更改永久,第二个命令激活更改。在 Oracle Linux 平台上,信号量配置属于内核全局设置,因此会立即生效。

10.3.10. Oracle VM VirtualBox 高可用性有哪些要求?

Oracle VM VirtualBox 虚拟化平台高可用性需要至少两个 Oracle VM VirtualBox 主机。如果一个 Oracle VM VirtualBox 服务器出现问题,所有现有桌面会话都将终止。之后,当用户请求已终止的会话时,只要具有充足的可用内存,就将在剩余的 Oracle VM VirtualBox 服务器上重新开始这些会话。

Oracle VDI、Sun Ray 软件 和 MySQL 高可用性需要两个 Oracle VDI 主机。关于支持此冗余类型的硬件配置的详细信息,请参见第 3.1 节 “关于 Oracle VDI 中心和主机”

10.3.11. 如何更改 Oracle VM VirtualBox 服务的密码?

要更改 Oracle VM VirtualBox Web 服务用户(默认:超级)的密码,您必须在 UNIX shell 中输入以下命令。

# /usr/apache2/bin/htpasswd -b /etc/apache2/vbox_passwd root <new_passwd>

接下来,在 Oracle VDI Manager 中更新密码。

  1. “桌面提供者“类别中选择与主机链接的提供者。

  2. 单击“主机“选项卡,选择主机,然后单击“编辑“

  3. 在弹出窗口中插入新密码,然后单击“下一步“

10.3.12. 用户在 Internet Explorer 中遇到模糊文本

如果用户在 Internet Explorer 中遇到模糊文本,可能是因为该区域被 Oracle VM VirtualBox 误认为是近全屏视频。这是由 Internet Explorer 重画浏览器窗口的方式导致的。

您可以通过限制 Oracle VM VirtualBox 检测以及作为视频发送的区域来解决该问题。可以通过以下命令配置池属性来设置限制:

/opt/SUNWvda/sbin/vda pool-setprops -p limited-rca-detection=enabled <PoolName>

当启用该属性时,大于 800 x 600 且小于全屏的屏幕区域不会缩小。