XenServer 4.1 Review
I had chance a couple of weeks ago to install XenServer 4.1 in my lab after scrounging an Intel-VT capable system. I've been meaning to get some hands-on with XenServer for a while now, but lack of server HW had made this task difficult. So lets start from the beginning and go over some XenServer terms.
Terminology
Virtual Disk (VDI) - A disk abstraction where the contents of virtual disks are stored. There are 3 VDI types: VHD, Logical Volume Manager and NetApp Managed LUNs. The difference between Logical Volume Manager and NetApp Managed LUNs is that LUNs are put under Linux LVM control whereas NetApp Managed LUNs are not.
VDI Types:
VHD: This format can be used with local disk on top of an ext3 filesystem or over NFS. VDIs stored on VHDs by default are thin provisioned.
Logical Volume Manager(LVM): This format can be used with local disk or shared storage. When a LUN is put under LVM control, it's split into multiple Logical Volumes each of which will store a VDI.
NetApp Managed LUNs: Available thru the NetApp SR driver for iSCSI. In this case, LUNs are allocated and mapped directly to host. Each LUN stores a VDI.
Each VM can have up to 8 Virtual Disks including the CDROM.
Storage Repository (SR) - A container where VDIs are stored. That would be similar to a VMware Datastore. The SR types supported are IDE, SAS, SCSI, SATA on Local disks and FC, NFS and iSCSI on shared storage. A Xenserver host can have access to multiple SR types.
Physical Block Devices (PBDs) - The interface between the Storage Repository and the physical host. A PBD is basically a connector that attaches an SR to a XenServer host. PBDs store device configuration information used to connect to a storage system. For example, for NFS it contains the IP address of FQDN of the NFS server and the export path that gets mounted by the XenServer host.
Virtual Block Devices (VBDs) - The interface between the VDI and the VMs. VBDs map VDIs to VMs. They also provide for QoS for a given VDI.
Resource Pool - A collection of physical hosts with shared storage forms a Resource Pool. There can be up to 16 hosts in a Resource Pool. This is similar to a VMware Cluster. A Resource Pool has a master node and secondary nodes. The master node is the first host in the pool. The master keeps track of all the resource pool configuration information and replicates that information onto each secondary node.
Domain 0 - A Linux privileged VM running at a higher priority than the rest of the VMs. Linux and Windows VMs use Paravirtualized Drivers to access Storage and Network resources thru Domain 0.
XenServer Tools - Installed on each Virtual Machine and provide Paravirtualized Storage and Network drivers for Windows VMs. There's also an agent that gets installed that collects and supplies VM performance information accessible via XenCenter. Linux VMs do not require Xenserver tools to be installed except for performance data collection.
Installation Process
It took me about 10 minutes to install Xenserver 4.1, so when Citrix says "10 minutes to Xen" they actually mean it. There are multiple install procedures such as Local Media, HTTP, FTP or NFS. The main installation CD also provides a P2V tool for converting existing physical installations of some Linux distributions (i.e RHEL 3.6-3.8 and 4.1-4.5). There's also a second CD which is a known as the "Linux Pack" which contains Linux Paravirtualized kernels as as well the source for Debian VMs. These paravirtualized kernels are swapped in, in place of non-Xen enabled kernels (i.e RHEL 3, SLES 9 SP1).
XenCenter
After I was done with the install, I proceeded to install XenCenter on my laptop and point it to my XenServer. ![]()
XenCenter is a rather simple and straightforward management GUI that allows Administrators to accomplish day to day administrative tasks. Most tasks can be performed using XenCenter, like storage provisioning, XenMotion, VM deployment, VM cloning. It's basically similar to VMware's VI client. However, some storage provisioning tasks require CLI work. Fibre Channel, for example is all about the CLI and this is one area that Citrix needs to do some work and bring this process to the GUI. Citrix also needs to provide Role Based Access and allow multiple Admins to manage different resource Pools and VMs. AD integration would also help.
One of the nice features XenServer has is the ability to dynamically discover Target IQNs and LUNs from an iSCSI capable array.
You just point XenCenter to the IP address of the Target and it will return the Target IQNs and any iSCSI LUNs that you can use to create a Storage Repository. With iSCSI, it supports the Open-iSCSI SW initiator or the Qlogic iSCSI HBAs.
Another nice feature is that IP Storage Repositories configured for shared storage are automatically configured for access by all hosts in the resource pool. This is not the case for Storage Repositories over Fibre Channel.
For NFS (v3 over TCP), the process to create a Storage Repository is also straightforward. Simply point XenCenter to the IP address or hostn
ame of the NFS server and the path of the share. You also have the option to specify any mount options you want. As I mentioned above, Microsoft's Virtual Hard Disk (VHD) is only supported on local on top of an ext3 filesystem and NFS.
Networking
One or more PIFs (Physical Interface) reside on the physical host. One or more VIFs (Virtual Interface) reside in a VM. You can have up to 4 PIFs per physical host and up to 7 VIFs per VM. A Network is a virtual ethernet switch onto which VIFs and PIFs plug-in. There's also VLAN support for those with the Standard & Enterprise Packages. NIC Teaming is also supported in an Active/Passive manner. There's also support for an Internal Network.
NetApp Adapter
I think this is cool and i like that Citrix is interested in integrating with Storage vendors by bringing some of their features and capabilities to XenCenter. The NetApp Adapter in the 4.1 release is for iSCSI. You can basically create up to 32 NetApp FlexVols, enable Deduplication or Thin Provisioning if you'd like, and and automatically create and map LUNs to XenServer which will store VDIs. You don't have to lift a finger of the array. Furthermore, the FlexVol size it creates is 20MB. Then if you chose to create a 200GB LUN in that FlexVol, it will resize the FlexVol and create the LUN.
Templates
There are a number of skeleton templates included to help with quickly deploying VMs. There are also a couple of Full templates for Debian Etch
and Debian Sarge. Converting a VM into a template is a one-way operation and can not be undone. You can export/import templates so you can move them around different SRs if you need to or to servers not in the Resource Pool.
Multipathing
I was under the impression that FC Multipathing was not supported, but it seems as if is supported, although the XenServer 4.1 Admin Guide 4.1 states otherwise. I'll have to to set this up with Device Mapper.
Performance Reports
Performance reports can be obtained from XenCenter.
Reports get updated every 15' . If you log out from XenCenter though, you basically lose access to any previous reports. This is an area that Citrix needs will need to improve.
Conclusion
Overall, I think XenServe offers a pretty simple, very viable and cost effective virtualization approach, although Citrix does have some work to do to improve the management aspect of it. Fibre Channel configuration is not intuitive and requires knowledge of Linux commands to discover the LUNs (Qlogic and Emulex tools can help a lot) and XenServer CLI commands to convert these LUNs into SRs.


Comments