XenStore
Xen提供的一个域间共享的存储系统。Dom0管理所有的数据,而DomU通过共享内存,向Dom0请求与自己相关的键值,从而实现域间通信。
XenStore作为数据库存储在/var/lib/xenstore/tdb,在用户空间的daemon称为"XenStored",这个逻辑文件树有三个主要的路径:
①/vm 存储domain的配置信息
②/local/domain/ 存储了本地节点的虚拟机信息,类似于Linux的/proc结构
③/tool 存储了各种工具的信息
Dom0可以读写所有XenStore中的数据,而Dom-X只能访问/local/domain/X下的内容。需要在dom0和domX之间共享的内容,一般都写在这个目录下。
可以通过一些与XenStore相关的命令来操作XenStore:
xenstore-list 输出目录树中的键值或目录
xenstore-read 输出特定键的值
xenstore-write 修改特定键的值
xenstore-chmod 修改XenStore中的任意位置的访问权限
Xenbus
Xenbus在Xen的体系结构中起到数据交换中心的作用,在半虚拟化的架构中,设备的读写是通过前后端来实现的,所以在前后端进行通信时需要一个安全的通道进行通信,这就是Xenbus。当然,它在Domain与Xenstore之间进行通信时同样起作用。(即提供了接口函数)
相关函数
整个Xenbus的实现函数可以分成2个部分。
①与XenStore相关,包括Xenbu