Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

6.15. 其它虚拟机任务

6.15.1. 启用 SAP监测

通过管理门户为虚拟机启用 SAP 监测功能

过程 6.33. 在虚拟机上启用 SAP监测

  1. 虚拟机标签页并选择一个虚拟机。
  2. 编辑
  3. 自定义属性标签页。
    启用 SAP

    图 6.21. 启用 SAP

  4. 使用下拉菜单选择 sap_agent,并把它设为 True
    如果有其它属性已被设置,点加号按钮来添加一个属性设置。然后选择 sap_agent
  5. 确定

6.15.2. 配置 Red Hat Enterprise Linux 5.4 或更新版本的虚拟机来使用 SPICE

SPICE 是为虚拟环境所设计的远程显示协议,用户可以使用它来查看一个虚拟机的显示。SPICE 为用户提供了一个良好的用户体验,保持 CPU 的使用率在一个较低的水平,并支持高质量的视频传输。
在一台 Linux 上使用 SPICE 可以极大地改善鼠标在虚拟机控制台上的操作。要使用 SPICE,X-Windows 系统需要安装额外的 QXL 驱动程序。QXL 驱动程序包括在 Red Hat Enterprise Linux 5.4 以及更高版本中,而老版本并不支持。在运行 Red Hat Enterprise Linux 的虚拟机上安装 SPICE 可以极大改善图形化用户界面的性能。

注意

这一点对于需要在虚拟机上使用图形化用户界面的用户非常有用。但是,如果没有太多的用户会使用图形化用户界面,创建虚拟服务器的系统管理员通常不会配置 SPICE。

6.15.2.1. 安装并配置 QXL 驱动

您需要在运行 Red Hat Enterprise Linux 5.4 或更高 5.x 版本的虚拟机上手工安装 QXL 驱动程序。运行 Red Hat Enterprise Linux 6.0 或 Red Hat Enterprise Linux 7的虚拟机不需要这个步骤,因为 QXL 驱动会被默认安装。

过程 6.34. 安装 QXL 驱动

  1. 登录到 Red Hat Enterprise Linux 虚拟机上。
  2. 安装 QXL 驱动:
    # yum install xorg-x11-drv-qxl
您可以通过图形界面或命令行来配置 QXL 驱动。执行以下操作中的一个。

过程 6.35. 在 GNOME 中配置 QXL 驱动

  1. 系统
  2. 管理
  3. 显示
  4. 硬件
  5. 显卡配置
  6. 选择 qxl 并点 OK
  7. 通过重新登录到虚拟机来重启 X-Windows。

过程 6.36. 在命令行中配置 QXL 驱动:

  1. 备份 /etc/X11/xorg.conf 文件:
    # cp /etc/X11/xorg.conf /etc/X11/xorg.conf.$$.backup
  2. /etc/X11/xorg.conf 文件的 Device 段中做以下修改:
    Section 	"Device"
    Identifier	"Videocard0"
    Driver		"qxl"
    Endsection

6.15.2.2. 配置一个虚拟机的平板输入设备和鼠标来使用 SPICE

编辑 /etc/X11/xorg.conf 文件来为虚拟机的平板输入设备使用 SPICE。

过程 6.37. 配置一个虚拟机的平板输入设备和鼠标来使用 SPICE

  1. 确认平板输入设备在您的客户端上可以被使用:
    # /sbin/lsusb -v | grep 'QEMU USB Tablet'
    如果以上命令没有输出,请不要继续以下的配置。
  2. 备份 /etc/X11/xorg.conf 文件:
    # cp /etc/X11/xorg.conf /etc/X11/xorg.conf.$$.backup
  3. /etc/X11/xorg.conf 文件进行以下修改:
    Section "ServerLayout"
    Identifier     "single head configuration"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Tablet" "SendCoreEvents"
    InputDevice    "Mouse" "CorePointer"
    EndSection
    							 
    Section "InputDevice"
    Identifier  "Mouse"
    Driver      "void"
    #Option      "Device" "/dev/input/mice"
    #Option      "Emulate3Buttons" "yes"
    EndSection
    							 
    Section "InputDevice"
    Identifier  "Tablet"
    Driver      "evdev"
    Option      "Device" "/dev/input/event2"
    Option "CorePointer" "true"
    EndSection
  4. 通过重新登录到虚拟机来重新启动 X-Windows。

6.15.3. KVM 虚拟机时间管理

虚拟环境存在着虚拟机的时间管理问题。使用 Time Stamp Counter (TSC) 作为时间源的虚拟机可能会遇到一些与时间相关的问题,因为一些 CPU 并没有 constant TSC。那些没有正确时间管理的虚拟机可能会在使用一些网络应用程序时出现问题,因为虚拟机中的时间源可能会比实际的时间慢或快。
KVM 通过为虚拟机提供一个准虚拟化的时钟解决了这个问题。KVM pvclock 为支持它的 KVM 客户机系统提供了一个稳定的时间源。
当前,只有 Red Hat Enterprise Linux 5.4 以及更高版本的虚拟机完全支持准虚拟化时钟。
使用不准确的时钟和计数器的虚拟机可能会有以下问题:
  • 虚拟机的时钟和实际的时间不同步,导致无效的进程和网络操作。
  • 虚拟机的时钟慢会导致迁移出现问题。
这些问题也会出现在其它虚拟化平台上,因此时间功能需要被测试。

重要

网络时间协议(NTP)守护进程应在主机和虚拟机上运行。启用 ntpd 服务,并将其添加到默认的启动序列中:
  • 对于 Red Hat Enterprise Linux 6
    # service ntpd start
    # chkconfig ntpd on
  • 对于 Red Hat Enterprise Linux 7
    # systemctl start ntpd.service
    # systemctl enable ntpd.service
使用 ntpd 服务可以减轻时钟不同步的问题。
您所使用的 NTP 服务器必须可以正常工作,并可以被您的主机和虚拟机所访问。
检查您的 CPU 是否有一个 constant TSC

如果有 constant_tsc 标识,说明您的 CPU 有 constant TSC。运行以下命令来检查是否有 constant_tsc 标识:

$ cat /proc/cpuinfo | grep constant_tsc
如果以上命令有输出,说明您的 CPU 有 constant_tsc。如果没有输出,请进行以下步骤。
配置没有 constant TSC 的主机

没有 constant TSC 的系统需要额外的配置。电源管理功能会影响到时间的准确性,因此为了保证时间的准确,使用 KVM 的虚拟机应该禁用这个功能。

重要

以下步骤只适用于 AMD revision F CPU。
如果 CPU 没有 constant_tsc 位,禁用所有的电源管理功能 (BZ#513138)。每个系统都会有多个计时器来管理时间。TSC 在主机上并不稳定,cpufreq 改变,deep C state,或迁移到一个有更快的 TSC 主机都可能会对它产生影响。Deep C 休眠可能导致 TSC 被停止。为了防止内核使用 deep C states,把 "processor.max_cstate=1" 添加到主机的 grub.conf 文件的内核引导选项中:
term Red Hat Enterprise Linux Server (2.6.18-159.el5)
        root (hd0,0)
	kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
编辑 /etc/sysconfig/cpuspeed 配置文件,把 MIN_SPEEDMAX_SPEED 变量设置为最高的有效主频来禁用 cpufreq(只需要在没有 constant_tsc 的主机上进行)。您可以在 /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies 文件中找到有效主频值。
使用 engine-config 工具在主机不同步的时候接收警告信息。

您可以使用 engine-config 工具在主机不同步的时候接收配置信息。

主机上有两个与时间漂移(time drift)相关的参数:EnableHostTimeDriftHostTimeDriftInSecEnableHostTimeDrift 可以被启用来接收关于主机时间漂移的警告信息(它的默认值是“false”)。HostTimeDriftInSec 参数用来指定在开始发送漂移警告信息前可以发生的最大时间漂移。
每个主机每小时会发送一次警告信息。
在运行 Red Hat Enterprise Linux 的系统上使用准虚拟化时钟

对于一些特定的 Red Hat Enterprise Linux 虚拟机,需要为它们配置额外的内核参数。这些参数可以被添加到虚拟机上的 /boot/grub/grub.conf 文件中的 /kernel 行的后面。

注意

使用 ktune 软件包可以自动配置内核参数。
ktune 软件包提供了一个交互式的 Bourne shell 脚本 - fix_clock_drift.sh。当以 superuser 的身份运行时,这个脚本会检查不同的系统参数来判断是否虚拟机可能会出现时间漂移的问题。如果会出现问题,它会在 /boot/grub/ 目录中创建一个新的 grub.conf.kvm 文件。这个文件包括了一个 KVM 引导行,这个引导行带有可以防止时钟漂移的内核参数。在以 superuser 的身份运行 fix_clock_drift.sh 命令并创建了 grub.conf.kvm 文件后,系统管理员应该手动备份当前的 grub.conf 文件,并检查新的 grub.conf.kvm 文件中除了新添加的引导行参数以外的内容和 grub.conf 文件的内容完全一致。最后,把 grub.conf.kvm 文件的文件名改为 grub.conf 并重新启动虚拟机。
下表列出了 Red Hat Enterprise Linux 的版本以及在没有 constant TSC 的系统上运行的虚拟机所需要的参数
Red Hat Enterprise Linux额外的虚拟机内核参数
5.4 AMD64/Intel 64 有准虚拟化时钟(with paravirtualized clock)不需要额外的参数
5.4 AMD64/Intel 64 没有准虚拟化时钟(without paravirtualized clock)notsc lpj=n
5.4 x86 有准虚拟化时钟(with the paravirtualized clock)不需要额外的参数
5.4 x86 没有准虚拟化时钟(without the paravirtualized clock)clocksource=acpi_pm lpj=n
5.3 AMD64/Intel 64notsc
5.3 x86clocksource=acpi_pm
4.8 AMD64/Intel 64notsc
4.8 x86clock=pmtmr
3.9 AMD64/Intel 64不需要额外的参数
3.9 x86不需要额外的参数