跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / 使用 Xen 管理虚拟机 / XenStore:在域之间共享的配置数据库
适用范围 SUSE Linux Enterprise Server 15 SP6

29 XenStore:在域之间共享的配置数据库

本章介绍有关 XenStore 的基本信息、它在 Xen 环境中的作用、XenStore 所使用的文件的目录结构,并提供了 XenStore 命令的说明。

29.1 简介

XenStore 是在 Dom0 中所运行的 VM Guest 与管理工具之间共享的配置和状态信息数据库。VM Guest 和管理工具对 XenStore 进行读取和写入以传达配置信息、状态更新和状态更改。XenStore 数据库由 Dom0 管理,支持读取和写入密钥等简单操作。可以通过监测关注项将 XenStore 中发生的任何更改通知给 VM Guest 和管理工具。xenstored 守护程序由 xencommons 服务管理。

XenStore 位于 Dom0 上的单个数据库文件 /var/lib/xenstored/tdbtdb 表示树数据库)中。

29.2 文件系统接口

XenStore 数据库内容由与 /proc 类似的虚拟文件系统表示(有关 /proc 的详细信息,请参见第 2.6 节 “/proc 文件系统”)。树有三条主路径:/vm/local/domain/tool

  • /vm - 存储有关 VM Guest 配置的信息。

  • /local/domain - 存储有关本地节点上的 VM Guest 的信息。

  • /tool - 存储有关多个工具的一般信息。

提示
提示

每个 VM Guest 都有两个不同的 ID 编号。即使 VM Guest 迁移到其他计算机,全局唯一标识符 (UUID) 也保持不变。域标识符 (DOMID) 是表示正在运行的特定实例的标识号。将 VM Guest 迁移到其他计算机后,此编号通常会改变。

29.2.1 XenStore 命令

可使用以下命令操作 XenStore 数据库的文件系统结构:

xenstore-ls

显示 XenStore 数据库的完整转储。

xenstore-readpath_to_xenstore_entry

显示指定 XenStore 项的值。

xenstore-existsxenstore_path

报告指定的 XenStore 路径是否存在。

xenstore-listxenstore_path

显示指定 XenStore 路径的所有子项。

xenstore-writepath_to_xenstore_entry

更新指定 XenStore 项的值。

xenstore-rmxenstore_path

去除指定的 XenStore 项或目录。

xenstore-chmodxenstore_pathmode

更新对指定 XenStore 路径的读取/写入权限。

xenstore-control

将一条命令(例如,用于触发完整性检查)发送到 xenstored 后端。

29.2.2 /vm

/vm 路径按每个 VM Guest 的 UUID 编制索引,用于存储虚拟 CPU 数量和分配的内存量等配置信息。每个 VM Guest 都有一个 /vm/<uuid> 目录。要列出目录内容,请使用 xenstore-list

> sudo xenstore-list /vm
00000000-0000-0000-0000-000000000000
9b30841b-43bc-2af9-2ed3-5a649f466d79-1

输出的第一行属于 Dom0,第二行属于正在运行的 VM Guest。以下命令会列出与 VM Guest 相关的所有项:

> sudo xenstore-list /vm/9b30841b-43bc-2af9-2ed3-5a649f466d79-1
image
rtc
device
pool_name
shadow_memory
uuid
on_reboot
start_time
on_poweroff
bootloader_args
on_crash
vcpus
vcpu_avail
bootloader
name

要读取某个项(例如,专用于 VM Guest 的虚拟 CPU 数量)的值,请使用 xenstore-read

> sudo xenstore-read /vm/9b30841b-43bc-2af9-2ed3-5a649f466d79-1/vcpus
1

所选 /vm/<uuid> 项的列表如下:

uuid

VM Guest 的 UUID,在迁移过程中不会变化。

on_reboot

指定响应重引导请求时是要销毁还是重启动 VM Guest。

on_poweroff

指定响应暂停请求时是要销毁还是重启动 VM Guest。

on_crash

指定响应崩溃事件时是要销毁还是重启动 VM Guest。

vcpus

分配给 VM Guest 的虚拟 CPU 数量。

vcpu_avail

VM Guest 的活动虚拟 CPU 的位掩码。位掩码中有多个位等于 vcpus 的值,其中有一个位是为每个联机虚拟 CPU 设置的。

name

VM Guest 的名称。

普通的 VM Guest(不是 Dom0)使用 /vm/<uuid>/image 路径:

> sudo xenstore-list /vm/9b30841b-43bc-2af9-2ed3-5a649f466d79-1/image
ostype
kernel
cmdline
ramdisk
dmargs
device-model
display

使用的项的解释如下:

ostype

VM Guest 的操作系统类型。

kernel

Dom0 上指向 VM Guest 内核的路径。

cmdline

引导时对 VM Guest 使用的内核命令行。

ramdisk

Dom0 上指向 VM Guest RAM 磁盘的路径。

dmargs

显示传递给 QEMU 进程的参数。如果您使用 ps 查看 QEMU 进程,看到的参数应该与 /vm/<uuid>/image/dmargs 中的相同。

29.2.3 /local/domain/<domid>

此路径按运行中的域 (VM Guest) ID 编制索引,包含有关运行中的 VM Guest 的信息。请记住,在迁移 VM Guest 期间,域 ID 会变化。可用的项如下:

vm

此 VM Guest 的 /vm 目录的路径。

on_reboot, on_poweroff, on_crash, name

请参见第 29.2.2 节 “/vm中的相同选项。

domid

VM Guest 的域标识符。

cpu

当前 VM Guest 固定到的 CPU。

cpu_weight

出于调度目的分配给 VM Guest 的权重。权重越高,使用物理 CPU 的频率就越高。

除了上面所述的各个项以外,/local/domain/<domid> 下的多个子目录也包含特定的项。要查看所有可用的项,请参见 XenStore Reference

/local/domain/<domid>/memory

包含内存信息。/local/domain/<domid>/memory/target 包含 VM Guest 的目标内存大小(以 KB 为单位)。

/local/domain/<domid>/console

包含有关 VM Guest 所用控制台的信息。

/local/domain/<domid>/backend

包含有关 VM Guest 所用的所有后端设备的信息。该路径包含 VM Guest 自己的子目录。

/local/domain/<domid>/device

包含有关 VM Guest 的前端设备的信息。

/local/domain/<domid>/device-misc

包含有关设备的其他信息。

/local/domain/<domid>/store

包含有关 VM Guest 的存储空间的信息。