openSUSE:SUSE Studio Xen 如何使用

跳转到:导航搜索

Xen 如何使用的说明

  • 这些如何使用与使用 SUSE Studio 构建的 Xen DomU 设备相关。如果不是全部,这些更改都可以通过脚本自动完成。
  • 为了启动 DomU Xen 客户机,您需要运行一个具有特权 Dom0 xen 设备的 Xen 超visor。
  • 请注意,在 SUSE Studio 中构建的虚拟机镜像不包含交换空间。通常的做法是将交换管理留给超visor。

如何启动 Xen 客户机

每个 DomU Xen 客户机都以 .tar.gz 包的形式从 studio 传来,需要解包才能启动客户机。解包后,您会发现一个包含以下两个文件的目录

  Appliance_name-Version
  |---Appliance_name.architecture-version.raw
  |---Appliance_name.architecture-version.xenconfig

.raw 文件是磁盘镜像,可以不用动。 .xenconfig 是启动客户机的配置文件,需要编辑。其内容如下所示

  #  -*- mode: python; -*-
  name="kde3.xen"
  memory=512
  disk=[ "tap:aio:Appliance_name.architecture-version,xvda,w" ]
  vif=[ "bridge=xenbr0" ]

为了启动,需要根据 Dom0 的设置编辑这些选项中的一些。基本上,您只需要调整“disk”条目,以便 xen 实际找到您的磁盘镜像。另一个可能需要编辑的条目是“vif”,在没有使用桥接网络或桥接名称不同于 xenbr0 的环境中。下面详细描述了配置文件中的条目以及可能需要更改它们的原因。

!!!警告!!!

在许多 xen 文档中,提到了“xm console”命令或 create 命令中的“-c”选项,以便让您访问 xenconsole。但是,在某些最近的镜像中,控制台输出在某个时间点被重定向到远离 xenconsole 的地方,这看起来像是启动卡住了。事实并非如此,对于 SLE 产品,以下信息应该可以帮助您启动系统

启动过程确实会继续,但对于 SLE 产品,它会在需要确认但未在 xen 控制台上显示的许可协议处停止。您需要在第一次启动时使用 vncviewer 或 virt-viewer 访问系统以接受许可。接受后,启动过程将继续,完成后登录提示也会再次出现在 xenconsole 上。此解决方法仅适用于 SLE 产品首次启动。请参阅后面的关于使用 vnc 访问客户机的指南。

如果您只能在 xen 控制台上访问客户机,即使在第一次启动时,您需要在 grub 内核命令中添加片段“xencons=tty”,这将阻止 vnc 登录,但会将所有启动输出(包括许可协议对话框)显示在 xenconsole 中。下次启动时,您不再需要这样做,因为系统也会在 xenconsole 中显示登录提示。

如何将 Xen 客户机更改为 Citrix xva

使用 SUSE Studio 构建的 Xen 设备也可以与 Citrix 一起使用。

以下步骤说明了如何将 Xen 客户机更改为 Citrix xva。

  • 获取 xva.py
wget -c http://www.xen.org/files/xva/xva.py
chmod +x xva.py
mv xva.py /usr/local/bin/
  • 下载 在 SuSeStudio 中构建 Xen 镜像
tar -xvf Xen_Image.i686-0.0.1.xen.tar.gz
cd Xen_Image-0.0.1/
xva.py -n Xen_Image-0.0.1 --is-pv --disk=Xen_Image.i686-0.0.1.raw --filename=Xen_Image-0.0.1.xva
  • 将 Xen_Image-0.0.1.xva 导入到 Citrix XenServer

有关更多详细信息,请查看 xva README

Xen 配置项

基本上,您只需要调整“disk”条目,以便 xen 实际找到您的磁盘镜像。另一个可能需要编辑的条目是“vif”,在没有使用桥接网络或桥接名称不同于 xenbr0 的环境中。以下是配置文件中现有选项的概述以及可能需要更改的内容

名称

  • 名称是设备在 xen 管理工具(例如 xm)中显示的名称,并带有关键字name
  • 在不更改此条目的情况下,客户机将启动

memory

  • 这定义了将分配给客户机的内存量。使用的关键字是memory,赋予它的值具有兆字节单位。
  • 在不更改此条目的情况下,客户机将启动

disk

  • 这定义了包含客户机的磁盘镜像位于何处,它的类型是什么,以及它如何在客户机内部显示为只读还是读/写。关键字是disk
  • 您需要编辑此选项才能启动客户机。
由于 xen 不理解其配置文件中的相对路径,因此您需要根据磁盘镜像的位置调整配置中的位置。例如,如果您将客户机 tar.gz 文件解包到 /opt/guests,现在磁盘镜像位于 /opt/guests/Appliance_name-Version/,则需要将配置中的 disk 条目从
  disk=[ "tap:aio:Appliance_name.architecture-versionraw,xvda,w" ]
  disk=[ "tap:aio:/opt/guests/Appliance_name-Version/Appliance_name.architecture-version.raw,xvda,w" ]
更改为

network

  • 以便启动客户机。
  • 配置中的最后一个条目确定客户机如何通过关键字vif访问主机网络

有几种不同的选项,解释它们将超出本文档的范围。通常,默认设置值应该适用于正确配置的 Xen Dom0,这些 Dom0 使用默认名称的桥接,客户机可以连接到该桥接。在不更改此条目的情况下,客户机将启动,但由于 Dom0 中不同的桥接名称或甚至不同的可用网络方法,它可能会缺少网络连接。

请阅读 如何为 Xen 客户机配置网络,以获取有关 Xen 桥接网络的更多详细信息。

如何为 Xen 客户机配置网络

为了让 Xen 客户机访问网络,具有机器中实际访问网络硬件权限的特权 Dom0 需要做好准备。

  • 运行 /etc/xen/scripts/network-bridge
这将为您配置一个桥接“xenbr0”,并将机器的以太网接口连接到它

手动操作

  • 通过删除 /etc/sysconfig/network 中的配置文件来禁用以太网接口的任何特定配置
  • 为桥接 xenbr0 创建配置文件 /etc/sysconfig/network/ifcfg-xenbr0,内容如下
BOOTPROTO='dhcp'
BRIDGE='yes'
BRIDGE_FORWARDDELAY='0'
BRIDGE_PORTS='eth0'
BRIDGE_STP='off'
BROADCAST=
ETHTOOL_OPTIONS=
IPADDR=
MTU=
NETMASK=
NETWORK=
REMOTE_IPADDR=
STARTMODE='onboot'
USERCONTROL='no'
  • 通过运行重新启动网络
/etc/init.d/network restart
  • 运行 `ip addr`。如果一切正常,您现在应该看到一个接口xenbr0,该接口分配了主机的 IP 地址,并且 eth0 不再具有 IP 地址。Ping 一些主机以确保一切正常,

如何图形化登录到 Xen 客户机

  • 由于 DomU Xen 客户机无法访问显卡,因此无法直接在其中启动 X。因此,启动脚本中与 X 相关的项目在启动时会失败。
  • 使用图形应用程序的有效方法是
  1. 使用 ssh 和 X 转发,从 ssh 会话启动 x 应用程序
  2. 配置 xdm 以仅进行远程访问
  3. 启动 vncserver 并使用 vncviewer 从远程访问它
  4. 通过 pci 将第二块显卡提供给 DomU


使用 ssh 和 X 转发,从 ssh 会话启动 x 应用程序

要求

  • sshd 必须在设备内部启动
  • 需要在防火墙中打开 ssh 端口

使用 ssh 进行 X 转发

  • 为了使用带有 ssh 的 X 转发,您需要像这样使用 -X 选项
  ssh -X <username>@<hostname|ip adress of DomU>
  • 登录后,您应该能够启动任何基于 X 的应用程序,并将图形输出转发到运行 ssh 客户端的机器上。

配置 xdm 以仅进行远程访问

!!!警告!!! 使用远程 xdm 访问 DomU 的桌面存在安全风险,因为默认情况下所有流量都是未加密的,即使是登录时的用户名和密码。仅在您信任的本地网络中使用此方法 !!!警告!!!


在 DomU 上

  • 关闭防火墙(正确的方法是打开正确的端口,但在此处描述会超出本文档的范围)。
  • 更改 /etc/X11/xdm/xdm-config
  DisplayManager.requestPort:    0
  !DisplayManager.requestPort:    0


  • 更改 /etc/sysconfig/displaymanager
  DISPLAYMANAGER_STARTS_XSERVER="yes"
  DISPLAYMANAGER_STARTS_XSERVER="no"


  • 运行 SuSEconfig
  • 重新启动 xdm

在 Dom0 或另一个主机上

  • 在现有的 X 会话中启动 X
  Xnest :1 -query <Hostname/IP of DomU>


  • 本机启动 X
  X :1 -query <Hostname/IP of DomU>


此设置已成功使用 xdm 和 kdm 进行测试。

启动 vncserver 并使用 vncviewer 从远程访问它

使用 SUSE Studio 构建的最新镜像已经为此配置了 xen 客户机,对于较旧的镜像,您需要在用于添加/创建客户机的 xenconfig 文件中添加以下行

  vfb = ["type=vnc,vncunused=1,vnclisten=0.0.0.0"]

要访问客户机,您可以运行(0 是第一个启动的客户机使用的端口,其他客户机只需将端口增加 1)

 vncviewer :0


 virt-viewer <guest name>|<guest ID>

这将打开一个 vnc 视图到客户机的帧缓冲区

通过 pci 将第二块显卡提供给 DomU