There are three main paths in XenStore:
- /vm
- stores configuration information about domain
- /local/domain
- stores information about the domain on the local node (domid, etc.)
- /tool
- stores information for the various tools
The /vm path stores configuration information for a domain.
This information doesn't change and is indexed by the domain's UUID.
A /vm entry contains the following information:
- ssidref
- ssid reference for domain
- uuid
- uuid of the domain (somewhat redundant)
- on_reboot
- the action to take on a domain reboot request (destroy or restart)
- on_poweroff
- the action to take on a domain halt request (destroy or restart)
- on_crash
- the action to take on a domain crash (destroy or restart)
- vcpus
- the number of allocated vcpus for the domain
- memory
- the amount of memory (in megabytes) for the domain Note: appears to sometimes be empty for domain-0
- vcpu_avail
- the number of active vcpus for the domain (vcpus - number of disabled vcpus)
- name
- the name of the domain
/vm/<uuid>/image/
The image path is only available for Domain-Us and contains:
- ostype
- identifies the builder type (linux or vmx)
- kernel
- path to kernel on domain-0
- cmdline
- command line to pass to domain-U kernel
- ramdisk
- path to ramdisk on domain-0
/local
The /local path currently only contains one directory, /local/domain that is indexed by domain id. It contains the running
domain information. The reason to have two storage areas is that
during migration, the uuid doesn't change but the domain id does. The
/local/domain directory can be created and populated before
finalizing the migration enabling localhost to localhost migration.
/local/domain/<domid>
This path contains:
- cpu_time
- xend start time (this is only around for domain-0)
- handle
- private handle for xend
- name
- see /vm
- on_reboot
- see /vm
- on_poweroff
- see /vm
- on_crash
- see /vm
- vm
- the path to the VM directory for the domain
- domid
- the domain id (somewhat redundant)
- running
- indicates that the domain is currently running
- memory
- the current memory in megabytes for the domain (empty for domain-0?)
- maxmem_KiB
- the maximum memory for the domain (in kilobytes)
- memory_KiB
- the memory allocated to the domain (in kilobytes)
- cpu
- the current CPU the domain is pinned to (empty for domain-0?)
- cpu_weight
- the weight assigned to the domain
- vcpu_avail
- a bitmap telling the domain whether it may use a given VCPU
- online_vcpus
- how many vcpus are currently online
- vcpus
- the total number of vcpus allocated to the domain
- console/
- a directory for console information
- ring-ref
- the grant table reference of the console ring queue
- port
- the event channel being used for the console ring queue (local port)
- tty
- the current tty the console data is being exposed of
- limit
- the limit (in bytes) of console data to buffer
- backend/
- a directory containing all backends the domain hosts
- vbd/
- a directory containing vbd backends
- <domid>/
- a directory containing vbd's for domid
- <virtual-device>/
- a directory for a particular
virtual-device on domid
- frontend-id
- domain id of frontend
- frontend
- the path to the frontend domain
- physical-device
- backend device number
- sector-size
- backend sector size
- info
- 0 read/write, 1 read-only (is this right?)
- domain
- name of frontend domain
- params
- parameters for device
- type
- the type of the device
- dev
- the virtual device (as given by the user)
- node
- output from block creation script
- vif/
- a directory containing vif backends
- <domid>/
- a directory containing vif's for domid
- <vif number>/
- a directory for each vif
- frontend-id
- the domain id of the frontend
- frontend
- the path to the frontend
- mac
- the mac address of the vif
- bridge
- the bridge the vif is connected to
- handle
- the handle of the vif
- script
- the script used to create/stop the vif
- domain
- the name of the frontend
- device/
- a directory containing the frontend devices for the
domain
- vbd/
- a directory containing vbd frontend devices for the
domain
- <virtual-device>/
- a directory containing the vbd frontend for
virtual-device
- virtual-device
- the device number of the frontend device
- backend-id
- the domain id of the backend
- backend
- the path of the backend in the store (/local/domain
path)
- ring-ref
- the grant table reference for the block request
ring queue
- event-channel
- the event channel used for the block request
ring queue
- vif/
- a directory containing vif frontend devices for the
domain
- <id>/
- a directory for vif id frontend device for the domain
- backend-id
- the backend domain id
- mac
- the mac address of the vif
- handle
- the internal vif handle
- backend
- a path to the backend's store entry
- tx-ring-ref
- the grant table reference for the transmission ring queue
- rx-ring-ref
- the grant table reference for the receiving ring queue
- event-channel
- the event channel used for the two ring queues
- device-misc/
- miscellanous information for devices
- vif/
- miscellanous information for vif devices
- nextDeviceID
- the next device id to use
- store/
- per-domain information for the store
- port
- the event channel used for the store ring queue
- ring-ref
- - the grant table reference used for the store's
communication channel
- image
- - private xend information