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 相关的项目在启动时会失败。
- 使用图形应用程序的有效方法是
使用 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 视图到客户机的帧缓冲区