Xen 提示与技巧

设置 Xen 映像的安全性脉络

SELinux 对应 Xsen 的针对性原则要求 Xen 的磁盘映像拥有 xen_image_t 的脉络。假若映像并不包含在这个脉络内,domU 访问这个映像时便会遭到拒绝(建基於 Anaconda 的安装程序,例如 CentOS 的安装程序将会不能找到这个映像应提供的硬盘)。根据缺省值,下列两个目录拥有这个脉络:

/var/lib/xen/images(/.*)?       system_u:object_r:xen_image_t:s0
/xen(/.*)?                      system_u:object_r:xen_image_t:s0

你亦可以手动式地利用 chcon 配置文件案或目录的脉络。如果你希望不论因何原因要撤消脉络时,仍能保留正确的脉络,你亦可以为本地文件加入自定的脉络。举个例说,我想将映像放置在 /src/xen 内。下列指令会预备这个目录作为放置 Xen 映像之用:

# mkdir -p /srv/xen
# semanage fcontext -a -t xen_image_t "/srv/xen(/.*)?"

第二个指令会将这行加进 /etc/selinux/targeted/contexts/files/file_contexts.local 内:

/srv/xen(/.*)?    system_u:object_r:xen_image_t:s0

然后再新装入 SELinux 的原则。现在既然这些原则已经知道正确的文件脉络,你可以用 restorecon 来递回地将正确的脉络套用到这个目录:

# restorecon -R /srv/xen

假若你想的话,你可以用 ls 来检查脉络已经被正确地设置:

# ls -dZ /srv/xen
drwxr-xr-x  root root system_u:object_r:xen_image_t    /srv/xen

主控台的处理

一个 domU 系统的缺省主控台是 xvc0。这是 xm console 连接时用的。要登录这个主控台,必须有一个 agetty 实体聆听 xvc0。假若不这样做,你只会看见指向这个主控台或所有主控台的 syslog 信息。如果 /dev/console/dev/xvc0 代表同一个设备(当 xvc0 是主要或唯一主控设备时会属实),kudzu 会自动为 xvc0/etc/initab 内加入记录。要是你使用虚拟的框缓冲区,这个情况并不属实,因此 xvc0 的记录将不会被加进 /etc/initab 内。至於 virt-manage 是否使用框缓冲区的,可以借着查看本地配置文件的 vfb 选项而作判断。例如:

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

如果你仍然想通过 xvc0 登录,请在 domU 的 /etc/initab 内加入以下内容:

co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav

<!> 请亦在 /etc/securetty 内加入 xvc0

以 root 的身份,你可以用下列指令吩咐 init 重新阅读 /etc/inittab

# telinit q

通过 virt-manager 定义其它键盘布局

你很可能已经见过一台 DomU 半虚拟系统的键盘布局永远在 virt-manager 内扮演一个 qwerty 键盘,而不采用开机时(或在 /etc/sysconfig/keyboard 内)所指定的键盘布局。这个情况只会当你使用 vfb(通过 virt-manager 或直接利用 vncviewer)时出现。如果你使用 xm console,系统会使用正确的键盘布局。

但由 CentOS 5.1 开始(也就是利用 xen-3.0.3-41.el5、xen-libs-3.0.3-41.el5、libvirt-0.2.3-9.el5 及 virt-manager-0.4.0-3.el5 这些组件)你可以在 DomU 内通过 virt-manager 采 qwert 以外的键盘布局。不幸地,这不能在 virt-manager 内设置,而要在配置文件内以「来宾」的身份设置:

下面是为一台 DomU 设置比利时键盘布局(be-latin1)的样例:

vfb = [ "type=vnc,vncunused=1,keymap=fr-be" ]

当然,你须要用一个正确的修改值:所有可用的按键对照表都放置在 /usr/share/xen/qemu/keymaps 内

你亦可以将某个键盘布局设置为所有 domU 的缺省值。要这样做,编辑 /etc/xen/xend-config.sxp 这个文件,然后加入如此一行(样例采用法文键盘):

(keymap 'fr')

接著你须要重新引导 Xen 守护程序令这个设置生效(service xend restart)。

Translation of revision 11

zh/TipsAndTricks/Xen (last edited 2010-04-09 08:04:35 by TimothyLee)