XenServer is an industry leading, open-source platform for cost-effective desktop, server, and cloud virtualization infrastructures. XenServer enables organizations of any size or type to consolidate and transform compute resources into virtual workloads for today’s data center requirements. Meanwhile, it ensures a seamless pathway for moving workloads to the cloud.
The key features of XenServer are:
- Consolidating multiple virtual machines (VMs) onto a physical server
- Reducing the number of separate disk images to be managed
- Allowing for easy integration with existing networking and storage infrastructures
- Enabling you to schedule zero downtime maintenance by using XenMotion to live migrate VMs between XenServer hosts
- Assuring availability of VMs by using high availability to configure policies that restart VMs on another server in case one fails
- Increasing portability of VM images, as one VM image works on a range of deployment infrastructures
Virtualization and hypervisor
Virtualization, or to be more specific, hardware virtualization, is a method of running multiple independent VMs on a single physical computer. Software executed on these virtual machines is separated from the underlying hardware resources. It’s a way of fully utilizing the physical resources available in modern powerful servers, which reduces the total cost of ownership (TCO) for server deployments.
A hypervisor is the basic abstraction layer of software. The hypervisor performs low-level tasks such as CPU scheduling and is responsible for memory isolation for resident VMs. The hypervisor abstracts the hardware for the VMs. The hypervisor has no knowledge of networking, external storage devices, video, and so on.
This section gives you a high-level understanding of how XenServer works. See the following illustration for the key components of XenServer:
The hardware layer contains the physical server components, such as CPU, memory, network, and disk drives.
You need an Intel VT or AMD-V 64-bit x86-based system with one or more CPUs to run all supported guest operating systems. For more information about XenServer host system requirements, see System requirements. For a complete list of XenServer certified hardware and systems, see the Hardware Compatibility List (HCL).
The Xen Project hypervisor is an open-source type-1 or bare-metal hypervisor. It allows many instances of an operating system or different operating systems to run in parallel on a single machine (or host). Xen hypervisor is used as the basis for many different commercial and open-source applications, such as: server virtualization, Infrastructure as a Service (IaaS), desktop virtualization, security applications, embedded, and hardware appliances.
XenServer is based on the Xen Project hypervisor, with extra features and supports provided by Citrix. XenServer 7.6 uses version 4.7 of the Xen hypervisor.
The Control Domain, also called Domain 0, or dom0, is a secure, privileged Linux VM that runs the XenServer management toolstack known as XAPI. This Linux VM is based on a CentOS 7.2 distribution. Besides providing XenServer management functions, dom0 also runs the physical device drivers for networking, storage, and so on. The control domain can talk to the hypervisor to instruct it to start or stop guest VMs.
The Toolstack, or XAPI is the software stack that controls VM lifecycle operations, host and VM networking, VM storage, and user authentication. It also allows the management of XenServer resource pools. XAPI provides the publicly documented management API, which is used by all tools that manage VMs, and resource pools. For more information, see https://developer-docs.citrix.com.
Guest domain (VMs)
Guest domains are user-created virtual machines that request resources from dom0. The guest domain in XenServer supports full virtualization (HVM), paravirtualization (PV), and PV on HVM. For a detailed list of the supported distributions, see Supported Guests, Virtual Memory, and Disk Size Limits.
Full virtualization, or hardware-assisted virtualization uses virtualization extensions from the host CPU to virtualize guests. Fully virtualized guests do not require any kernel support. The guest is called a hardware virtual machine (HVM). HVM requires Intel VT or AMD-V hardware extensions for memory and privileged operations. XenServer uses Quick Emulator (QEMU) to emulate PC hardware, including BIOS, IDE disk controller, VGA graphic adaptor, USB controller, network adapter etc. To improve the performance of hardware-sensitive operations like disk or network access, HVM guests are installed with the XenServer tools. For more information, see PV on HVM.
HVM is commonly used when virtualizing an operating system such as Microsoft Windows where it is impossible to modify the kernal to make it virtualization aware.
Paravirtualization is an efficient and lightweight virtualization technique originally introduced by the Xen Project, and later adopted by other virtualization platforms. PV does not require virtualization extensions from the host CPU. However, PV guests require a PV-enabled kernel and PV drivers, so the guests are aware of the hypervisor and can run efficiently without virtual emulated hardware. PV-enabled kernels exist for Linux, NetBSD, FreeBSD, and Open Solaris. For a list of supported distributions in PV mode, see PV Linux distributions.
For a PV guest, Xen Hypervisor forwards the I/O operation requests to the control domain. The guest is aware of the hypervisor and sends privileged instructions to the hypervisor.
PV on HVM
PV on HVM is a mixture of paravirtualization and full hardware virtualization. The primary goal is to boost performance of HVM guests by using specially optimized Paravirtualized drivers. This mode allows you to take advantage of the x86 virtual container technologies in newer processors for improved performance. Network and storage access from these guests still operate in PV mode, using drivers building to the kernels.
Windows and some Linux distributions are available in PV on HVM mode in XenServer. For a list of supported Linux distributions using PV on HVM, see HVM Linux distributions.
XenServer Tools, or guest tools provide high performance I/O services without the overhead of traditional device emulation. XenServer Tools consist of I/O drivers (also known as Paravirtualized drivers or PV drivers) and the Management Agent.
The I/O drivers contain front-end storage and network drivers, and low-level management interfaces. These drivers replace the emulated devices and provide high-speed transport between VMs and XenServer product family software.
The Management Agent, also known as the guest agent, is responsible for high-level virtual machine management features. It provides full functionality to XenCenter (for Windows VMs), including quiesced snapshots.
- XenServer Tools must be installed on each Windows VM in order for the VM to have a fully-supported configuration. A VM will function without the XenServer Tools, but performance will be significantly hampered when the I/O drivers (PV drivers) are not installed.
- For Windows VMs, XenServer Tools are called Windows guest tools, which include Windows PV drivers and the Management Agent.
- For Linux VMs, PV drivers are already included in the Xen Kernel.
For more information, see XenServer Tools.
XenServer allows you to manage multiple servers and their connected shared storage as a single entity by using resource pools. Resource pools enable you to move and run virtual machines on different XenServer hosts. They also allow all servers to share a common framework for network and storage. A pool may contain up to 64 servers running the same version of XenServer software, at the same patch level, and with broadly compatible hardware. For more information, see Hosts and resource pools.
XenServer resource pool adopts a master/slave architecture, implemented by XAPI. XAPI calls are forwarded from the pool master to pool members. Pool members make DB RPCs against the pool master. The master host is responsible for co-ordination and locking resources within the pool, and processes all control operations. Member hosts talk to the master through HTTP and XMLRPC, but they can talk to each other (over the same channel) to:
- Transfer VM memory images (VM migration)
- Mirror disks (storage migration)
XenServer storage targets are called storage repositories (SRs). A storage repository stores Virtual Disk Images (VDIs), which contains the contents of a virtual disk. SRs are flexible, with built-in support for IDE, SATA, SCSI, and SAS drives that are locally connected, and iSCSI, NFS, SAS, and Fibre Channel remotely connected. The SR and VDI abstractions allow advanced storage features such as thin provisioning, VDI snapshots, and fast cloning to be exposed on storage targets that support them.
Each XenServer host can use multiple SRs and different SR types simultaneously. These SRs can be shared between hosts or dedicated to particular hosts. Shared storage is pooled between multiple hosts within a defined resource pool. A shared SR must be network accessible to each host. All hosts in a single resource pool must have at least one shared SR.
For more information about how to operate with SRs, see Configure storage.
On an architecture level, there are three types of server-side software objects to represent networking entities. These objects are:
- A PIF, which is a software object used within in dom0 and represents a physical NIC on a host. PIF objects have a name and description, a UUID, the parameters of the NIC that they represent, and the network and server they are connected to.
- A VIF, which is a software object used within in dom0 and represents a virtual NIC on a virtual machine. VIF objects have a name and description, a UUID, and the network and VM they are connected to.
- A network, which is a virtual Ethernet switch on a host used to route network traffic on a network host. Network objects have a name and description, a UUID, and the collection of VIFs and PIFs connected to them.
XenServer management APIs allow following operations:
- Configuration of networking options
- Control over the NIC to be used for management operations
- Creation of advanced networking features such as virtual local area networks (VLANs) and NIC bonds
For more information about how to manage networks on XenServer, see Networking.
Related add-ons and applications
While Xen Hypervisor works at the very core level, there are XenServer specific add-ons related hypervisor-agnostic applications and services available to make the virtualization experience complete.
A windows GUI client for VM management, implemented based on the management API. XenCenter provides a rich user experience to manage multiple XenServer hosts, resource pools, and the entire virtual infrastructure associated with them.
Workload Balancing (WLB)
An appliance that balances your pool by relocating virtual machines onto the best possible servers for their workload in a resource pool. For more information, see Workload balancing (/en-us/xenserver/current-release/vswitch-controller.html).
Distributed Virtual Switch Controller (DVSC)
A Debian based appliance that is used to create Open Flow rules that are XAPI aware. The implementation consists of the following:
A virtualization-aware switch (the vSwitch) running on each XenServer and the vSwitch Controller.
A centralized server that manages and coordinates the behavior of each individual vSwitch to provide the appearance of a single vSwitch.
For more information, see vSwitch and controller.
Citrix Licensing Server
A Linux based appliance that XenCenter contacts to request a license for the specified server.
XenServer Conversion Manager (XCM)
An virtual appliance with a console that enables users to convert existing VMware virtual machines into XenServer virtual machines, with comparable networking and storage connectivity. For more information, see Conversion manager.
Measured Boot Supplemental Pack
A supplemental pack that enables customers to measure key components of their XenServer hosts at boot time, and provides APIs that enable remote attestation solutions to securely collect these measurements. For more information, see Measured Boot Supplemental Pack.
Provisioning services that support PXE boot from common images. Used widely with Citrix Virtual Desktops and Citrix Virtual Apps. For more information, see Provisioning.
Citrix Virtual Desktops
A Virtual Desktop Infrastructure (VDI) product specialized to Windows desktops. Citrix Virtual Desktops uses XAPI to manage XenServer in a multi-host pool configuration. For more information, see Citrix Virtual Apps and Desktops.