- 1 Product Description
- 1.1 Known Versions
- 2 Software Pattern Summary
- 3 Platforms Supported by the Pattern
- 4 Identification
- 5 Versioning
- 6 Application Model Produced by Software Pattern
- 6.1 Product Architecture
- 6.2 Software Pattern Model
- 6.2.1 SI Depth
- 6.2.2 Domain Attributes
- 7 Testing
- 8 Information Sources
- 9 Open Issues
- Discover with BMC ADDM
-
This product can be discovered by any edition of BMC Atrium Discovery and Dependency Mapping. Download our free Community Edition to try it out, or see what else it can discover!
- What is this?
- This is a product information page, containing details of the information that BMC Atrium Discovery gathers about a product and how it is obtained.
- Product Name
- XenServer
- Publisher Page
-
[XenSource]
- Category
- Release
- TKU 2009-May-1
- Change History
- Reports & Attributes
- Publisher Link
- XenSource
Product Description
The Xen hypervisor offers an efficient and secure feature set for virtualization of x86, x86_64, IA64, PowerPC and other CPU architectures.
A Xen system is structured with the Xen hypervisor as the lowest and most privileged layer.
Above this layer are one or more guest operating systems, which the hypervisor schedules across the physical CPUs. The first guest operating system, called in Xen terminology "domain 0" (dom0), is booted automatically when the hypervisor boots and given special management privileges and direct access to the physical hardware. The system administrator logs into dom0 in order to start any further guest operating systems, called "domain U" (domU) in Xen terminology.
Known Versions
- 2.0
- 2.0.3
- 2.0.7
- 3.0
- 3.0.4
- 3.1
- 3.2
Software Pattern Summary
| Product Component | OS Type | Versioning | Pattern Depth |
|---|---|---|---|
| XenSource XenServer Domain | Unix | Active | Instance-Based |
| XenSource XenServer Server | Unix | Active | Instance-Based |
Platforms Supported by the Pattern
The Xen Hypervisor can only be ran on modified version of Unix-like Operating Systems, the pattern identifies and models the XenSource Xenserver Server and Domains on all such Operating Systems.
Identification
Software Instance Triggers
| Product Component | OS Type | Trigger Node | Attribute | Condition | Argument |
|---|---|---|---|---|---|
| XenSource XenServer Server | Unix | DiscoveredProcess | cmd | matches | regex '\bxenbus$' |
| XenSource XenServer Domain | Unix | DiscoveredProcess | cmd | matches | regex '\bxenbus$' |
Note: Both the XenSource XenServer Server and Domain(s) are created from the same trigger.
Xen Domain Consolidation
The consolidation of the Xen domains is handled by a separate pattern module, please click here for more information.
Simple Identification Mappings
The following processes are identified by the pattern. The identification is performed at two levels - processes listed below are identified through the use of Simple Identifiers and in addition, they are modeled within a full Software Instance for Xen Server (See Application Model Produced by Software Pattern for more details about the approach taken to model this product).
The processes there are Simple Identifiers for are:
| Name | OS Type | Command Regex |
|---|---|---|
| Xen Bus | Unix | \bxenbus$ |
| Xen FB | Unix | \bxenfb$ |
| Xen Watch | Unix | \bxenwatch$ |
| Xen Console Daemon | Unix | \bxenconsoled$ |
| Xen Store Daemon | Unix | \bxenstored$ |
Versioning
We currently collect version information for the product using the an Active Versioning method.
Active Versioning
The pattern checks three different files in order to obtain Version. These files contain respectively the Major, Minor and 'Extra' Version of the underlying Xen Hypervisor. The files reside in the same location, as illustrated in the table below:
| Version | System-wide File |
|---|---|
| Major | /sys/hypervisor/version/major |
| Minor | /sys/hypervisor/version/minor |
| Extra | /sys/hypervisor/version/extra |
The pattern extracts the version information from all three files to create the Full Version, if we extracted a value from these files then we assign the first two levels of the version to the Product Version.
Application Model Produced by Software Pattern
Product Architecture
XenServer Server runs on a modified kernel which is 'Xen-aware'. The host running this kernel is identified by Xen as Domain-0, and will always have the Xen Bus and Xen Watch processes running on it. This host provides the drivers and infrastructures that Xen requires to run its Guest Systems.
There are two Virtualization modes available on XenServer Server: Paravirtualization and Full Virtualization. While Paravirtualization requires solely a modified kernel, Full Virtualization also requires a CPU equipped with the new hardware hypervisor extensions.
Software Pattern Model
The pattern triggers on the Xen Bus process, as illustrated in Section Software Instance Triggers.
SI Depth
The pattern creates an Instance-Based (Deep) Software Instance for the XenSource XenServer Domain based on the products Domain UUID', _type and _host key.
The pattern creates an Instance-Based (Deep) Software Instance for the XenSource XenServer Server based on the products Domain UUID' (which will always be a set of 0's), _type and _host key, there has to be a XenSource server running in Domain-0 for any further Domains to run.
Domain Attributes
The pattern attempts to retrieve the following attributes:
- Domain ID
- Domain UUID
- Domain Name
- Domain State
The pattern only creates a Software Instances when it is successful in retrieving them all.
The pattern can obtain these attributes through two different methods, which require different privileges to be executed. The first method requires no special privileges, whereas the second method works with a root login or privileged access. These two different approaches are illustrated below.
Non-root/non-privileged method
The pattern retrieves a list of all the domain ID's managed by XenServer Server by using an active command.
Active Command employed to obtain domain ID's: virsh list
It then iterates through the list of domain ID's and attempts to retrieve the attributes by running another Active Command on each of the domain ID's:
Active Command employed to retrieve Attributes: virsh dominfo Domain ID
If the command is successful, The pattern then parses its output through a set of Regular Expressions in order to retrieve the Attributes, as illustrated in the table below:
| Domain Attribute | Regular Expression |
|---|---|
| Domain Name | Name:\s+(.*?)\s |
| Domain UUID | UUID:\s+(.*?)\s |
| Domain State | State:\s+(.*?)\s |
The pattern subsequently models a Software Instance and adds all these attributes to it.
Root/Privilege method
Should the non-root approach fail, the pattern attempts to run a System-wide Active Command in order to retrieve the Domain Attributes.
Active Command employed to retrieve Attributes: /usr/sbin/xm list --long
Should the Active Command fail because of a lack of Privileges, the pattern may try to run it with elevated privileges. This will only happen if the priv_execution setting in the configuration section of the pattern is set to be true; by default it is false.
The method of privilege elevation will be as defined in the Discovery scripts for the platform and referred to in the configuration section of the pattern by 'priv_function' option.
When the Active Command is successful, the pattern splits its output into sections separated by a New Line followed by an open bracket, then parses each section by applying a set of Regular Expressions to it in order to obtain the Domain Attributes, as illustrated in the Table below:
| Domain Attribute | Regular Expression |
|---|---|
| Domain ID | (domid (\d+)) |
| Domain Name | (name (\S+)) |
| Domain UUID | (uuid (\S+)) |
| Domain State | (state (\S+)\ |
The pattern subsequently models a Software Instance and adds all these attributes to it.
Testing
We conducted tests against live installations of XenSource XenServer Server on Linux platforms. This allowed us to ensure that the pattern correctly triggers, retrieves Domain Attributes and Versions the product using the Active method.
Information Sources
The Xen Official Page provided useful information on the Product, including Product Description and Known Versions Information.
Open Issues
There are no known open issues with this pattern.
| TOP |
|---|
Created by: Edoardo 19:11, 11 February 2008 (GMT)
Updated by: Nikola Vukovljak 26 January 2009 (GMT)
Reviewed by: Nikola Vukovljak 11:55, 01 April 2008 (GMT)
