XEN or VMWare?
Despite XEN being talked about more and more there still seems to be some reluctance in the market place to trust it to do the job as well as expensive proprietary software. As yet the product does not have all the management tools that come with some competitors software (at a very high price!) but if you’re willing to learn a bit about the product you will soon realise its power and flexibility. If you actually compare hypervisor features between XEN and any other product you will find that XEN has all the features you need.
Once you’ve realised that XEN has the features you can then look at the costs. The quote below was provided by a VMWare partner in February 2008. Both the VMWare quote and SLES quote are based on 2 servers each with 4 x dual core processors.
|VMware VI3 Enterprise|
|4||VMware Infrastructure 3 Enterprise 2 processor pack; additive licenses (Includes ESX Server 3, VirtualCenter Agent, Virtual SMP, VMFS, Vmotion, HA, DRS, Consolidated Backup)||£2,500||£10,000|
|4||Gold Support/Subscription for VMware Infrastructure Enterprise for 2 Processor pack for 1 Year||£800||£3,200|
|VMware VirtualCenter Management Server Version 2|
|1||VMware VirtualCenter Management Server 2 for VMware Infrastructure||£1,500||£1,500|
|1||Gold Support/Subscription VirtualCenter Management Server 2 for VMWare Infrastructure for 1 year||£550||£550|
Alternatively you could consider Xen with SLES 10 SP1:
|2||SUSE Linux Enterprise Server 10 SP1 with integrated Xen including updates, fixes and 24×7 unlimited telephone and electronic support with one hour and four hour response, respectively for 1 year.||£934||£1,868|
Are you starting to see my point? Even if you believe that XEN is less mature and has nowhere near the same number of features (which is not true) you have to balance cost and benefit. If you have in-house Linux skills and don’t need the priority support option you could reduce the cost for XEN/SLES to £434.72 per year for two servers (this provides updates only). Furthermore if you have already decided to purchase OES 2 for your network SLES 10 SP1 is included! Also if you currently use shared storage e.g. a Storage Area Network and select VMWare the likelihood is that you have to include the cost of a new storage system (SAN) as VMWare has a VERY limited list of storage systems it will support. XEN will support anything supported by Linux which includes a huge range of products. SLES is also the same price regardless of whether you have 1 processor installed in your server or 50 processors!
I leave the decision up to you but if you are involved with strategic decisions for your employer/client networks then I feel you need to seriously consider the cost vs. benefit argument before going down the proprietary software route. If you make the sensible choice and choose XEN then read on to find out how to get the software installed (its easy)!!!
For more information on the XEN hypervisor see the reference links at the end of this document.
I am currently implementing a project for my employer which will see us install SLES 10 SP1 with integrated XEN onto an IBM BladeCenter E chassis and 4 double wide LS41 blades connected to an IBM DS3400 storage system with 1.5TB of storage. We will then be migrating our Novell services/applications (file services, GroupWise, Zenworks, DNS, DHCP, NCS eDirectory) over to OES 2 Linux running in virtual machines on top of SLES 10. I intend to write articles throughout the project so you can follow it through and hopefully do the same in your environment. So lets get started!
Host Server Installation
- Load your CD/DVD into the drive. If you can always use a DVD as it saves you having to keeping putting in the different CDs (4 in total).
- On Boot Options select the Installation option.
If for any reason the standard installation doesn’t run on your hardware (this shouldn’t be the case on any relatively new hardware) you can use the Safe Settings option. If the issue appears to be related to the graphics card in your machine you can press the F3 key to either try a lower resolution of the graphic interface or use the text based installation.
- Select your Language and click Next.
- Accept the License Agreement and click Next.
- Ensure New Installation is selected (default) on the Installation Mode page
- Select the correct clock and time zone settings for your location. Ensure the Hardware clock is set to UTC.
- The Installation Settings page displays the default configuration for SLES 10.
I highly recommend modifying some of these settings to create a leaner environment for our XEN installation. Remember you should ideally only be running XEN and possibly some supporting services like Heartbeat on your host server. All network services and applications should be installed/configured within your virtual machines.
Select the correct option for your location.
I recommend modifying the standard partitioning scheme to provide greater flexibility and control over volume sizes and placement. To achieve this I have used the following partitioning scheme:
Type Mount Point Size File System Primary /boot 500M ext2 Extended N/A Rest of physical disk N/A Logical N/A 10G swap Logical N/A Remainder of extended partition Set as 0x8E Linux LVM LVM Volume Group: vg0
Physical Extent: 4MB
Select drive with the logical partition
Add the following volumes: home (/home), root (/), var (/var) and tmp (/tmp). All volumes can use the Reiser file system. Leave the stripes value as default (1).
My reasons for using the scheme above are as follows:
- Placing the /boot partition at the beginning of the disk is good practise although not required these days with the introduction of map files.
- I have then created an extended partition which consumes the rest of the available disk space and created two logical partitions within the extended partition.
- The first logical partition is for /swap. Traditionally you would calculate the space needed for swap by using 1.5 times the amount of RAM in your server. However with modern day servers having so much RAM I can’t really see the point in using over 10/12GB. If your using more swap memory than that (for the majority of users anyway) there is likely to be either a configuration issue or your hardware is seriously short on resources!
- The second logical partition is to be managed by LVM. This allows me to easily manage and adjust the /home, /root, /var and /tmp partitions. For more information on using LVM see the Novell Documentation.
Always use RAID in your host server to ensure redundancy if one of your hard disks fails. I would normally use RAID 1 with two physical disks for this scenario. If possible always use hardware based RAID.
The Expert Partitioner in YaST can be used to make these changes. Below I have outlined the first stages of creating the partitions but I haven’t gone through the full process in this article as it would make it even longer than it already is and the process is very simple. If you get stuck the Novell Documentation explains the process very well.
To start click on the Partitioning header on the Installation Settings page. The page below will appear, select Create Custom Partition Setup and then click Next.
On the Preparing Hard Disk page do not select a specific hard disk. Instead select the custom partitioning option and click Next.
This will start the Expert Partitioner module of YaST as shown below. From here we can create the partitioning scheme.
First we need to create a primary partition for /boot. To do this click on Create, ensure Primary Partition is set as the partition type (default) and click Ok.
In the Create a Primary Partition window select the Format radio button and select the ext2 file system. I’m using ext2 as it is an efficient stable file system and journaling is not required for the boot partition. In the Size section the Start Cylinder should already be set to 0 (the beginning of the disk). In the End field type +500M (this will create a 500MB partition). On the Mount Point drop down menu select /boot. Click Ok.
You will now see your primary boot partition listed, in my case /dev/sda1. Next click on Create again but this time select Extended as the partition type.
The Start cylinder for this partition will automatically start from the end of your existing partitions (/boot) and the End cylinder will be the last cylinder on the disk. Therefore you just need to click on Ok to create your Extended partition.
I’m going to leave the partitioning setup here but you can easily complete it yourself using the Novell documentation. You first need to create a logical partition within your extended partition for /swap. The process for creating this partition is similar to the procedure I’ve shown above. As discussed earlier the size of this partition depends on the amount of RAM in your server but I wouldn’t normally go above 10/12GB.
Once you have created this partition you then need to create another logical partition within the extended partition. This logical partition should consume the rest of the extended partition (and therefore the rest of the disk). Once you have created the partition select it from the partition list and then click on the LVM button. You can then use LVM to create your /root, /tmp, /home and /var partitions. More information on using LVM can be found here.
Next we need to decide which software components to install on the host server. You should aim to keep the host operating system as lean as possible. For this installation I am going to install the components listed below – I will justify/debate each component. To edit the Software configuration click on the Software heading on the Installation Settings page. Deselect all software components (by clicking on the tick box next to the component until the box is empty) except for the components listed below:
Server Base System
This is the only required component. It contains the kernel and other essential files.
I have selected Novell AppArmour to provide increased security on the host server. AppArmour uses a unique concept to limit, at kernel level, what a particular daemon/service can do. This means you can effectively protect against vulnerabilities that an application may have before they have even been discovered! For more information see the Novell documentation.
This component includes the Heartbeat software that I will be using later in the project to cluster my virtual machines. If you will not be clustering your virtual machines (I would highly recommend you do!) you don’t need this.
GNOME Desktop Environment
This is the GNOME graphic user interface for your installation. I have installed this so that other administrators in our organisation who have limited command line skills can administer the server from a GUI. In a small environment having a GUI installed will have little affect on the system however for ultimate security and performance it is best not to have a GUI installed. Later I will be setting my server to use runlevel 3 as the default. This runlevel does not load the GUI and therefore having the GUI installed will have no effect on my host server until it is loaded. You should then encourage other administrators in your organisation to unload the GUI once they have completed their tasks. X tunnelling with SSH is an alternative method of GUI based administration without the implications of installing the GUI directly on the server.
X Window System
If you install a graphic interface this component is required. It is the graphical engine that sits under any graphic screens on the server. To be honest I would always install this regardless of whether you install a desktop/GUI environment or not. If at any point in the future you want to use any sort of graphical screens you will need it so install it now as it has no detrimental effect on the operating system.
Xen Virtual Machine Host
The final component to install on your server is the XEN enabled Linux kernel. This software component allows you to create and use virtual machines.
Your Software Selection screen should now look the same as below. Click Accept to continue.
The last thing we need to do is change the Default Runlevel under the Expert tab on the Installation Settings page. To change the setting click on the Default Runlevel heading and select level 3. This means that although a display manager (GNOME) is installed, by default when the server boots it will only load to a command line interface but with full network capabilities and multi-user support. Click Accept to continue.
- Confirm the Installation settings.Now we have made all the necessary configuration changes click Accept on the Installation Settings page. You will be prompted to confirm the installation settings, click Install.
YaST will now start the installation. Initially the partitions we configured earlier will be created and then the selected software will be installed.
- Once the installation is complete the server will automatically restart.
- We now need to make a few post install configuration changes. Firstly you are prompted to set the root password. The root account has unlimited access to your Linux system so it is very important you use a secure password which complies with your companies security policy. Click Next to continue. If the system deems the password to not be secure enough you will receive warnings. Either accept the warnings and continue or go back and adjust the password.
- Set the hostname and domain name for your system.
- On the Network Configuration page use the following settings:
Always use the Traditional Method on your servers.
For now you can leave the default which is the firewall enabled with the SHH port blocked. You will need to enable certain ports at a later stage for certain services on your server.
Set this depending on your network architecture. Unless you have a specific need I would disable this as you can often see performance benefits when running Xen if it’s switched off.
Set the network card(s) IP configuration as required for your network. To configure these settings click on the Network Interfaces heading. If your network card is not listed below the heading it is probably because it has not been detected by the kernel. If this is the case proceed with the installation without configuring a network card. You will need to install the kernel modules for your network card manually once your system is installed.
Select your network card and click on Edit.
Select the Static Address Setup radio button. Type the IP address and Subnet Mask you want to assign to the network card.
Click on the Hostname and Name Server button. The hostname and domain name fields should already be populated because we set it earlier in the install. However you can enter the name/IP address of the DNS server(s) on your network and list domains to be used for FQDN completion. Click Ok when complete.
Now click on the Routing button. On this page you can type the IP address of your default gateway. Click Ok to continue.
Once you have finished configuring your network card(s) click Next on the Network Address setup page and Next on the Network Card Configuration page.
DSL Connections, ISDN Adapters and Modems
I would not recommend configuring any of these options on a XEN host server.
VNC Remote Administration
I would recommend leaving the default setting, Disabled, in place. VNC is not a particularly secure way of remotely administering your server. Always use SSH as the preferred method.
I would not configure a XEN host server as a proxy so leave the Disabled setting in place.
- Test Internet Connection page.I would recommend performing the Internet test during the install process so that you can register with Novell and perform online updates at this stage. If you wish you can skip the test but you will not be able to register your software or download updates until after the install. Ensure Yes is selected (the default) and click Next.
If the test is successful the following screen will be displayed:
Click Next to continue.
- Novell Customer Centre RegistrationYou are now presented with the Novell Registration Screen. This process will register your server with Novell and allow you to receive online updates. The default options are fine, click Next.
You will receive a message warning you that the process may take a while (see below). Be patient, it may actually take a few minutes!
The next screen warns that Manual Intervention is required. Click the Continue button to launch your internet browser.
Enter your email address (twice for confirmation), the activation code that came with your software and a name for your system. Click Submit.
Read the information displayed and click Continue to complete the registration.
Once the registration has completed the system will create a list of online update sources.
Click Ok to the successful registration message.
You are now able to run the Online Update utility to ensure your server includes the latest patches and updates. Click Next to continue.
Read through the list of updates available. If you are happy to install all updates (recommended) right click one of the tick boxes and choose All in This List > Install.
The update software will automatically resolve software dependencies. Click Continue to accept the automatic changes and proceed with downloading updates.
The screen below will appear if packages for package management are updated. When you click Ok these packages are installed/updated and then the online update process is restarted.
Once the package management software has restarted remaining updates are displayed. Again right click one of the tick boxes and select All in This List > Install. The system will again resolve any dependencies.
Once all updates have been successfully installed the screen below will appear. Click Ok to finish the update process. The server will automatically restart.
- Unless you have a need to change them use the default settings on the Services page. Click Next.
- I want to keep the XEN host server as lean as possible and with as few outside factors affecting the system. Therefore I would recommend using Local as the User Authentication Method. Click Next.
Enter a username and password that complies with your own security policies. Click Next.
As with the root password you will receive a warning if the system deems the password you have entered to be insecure.
- The installation now runs some clean up processes. Allow this to complete.
- Read the release notes and then click Next.
- The Hardware Configuration page allows you to change settings for your Graphics Cards, Printers and Sound cards as required. These components normally do not need to be configured on a XEN host server. Click Next.
- On the Installation Completed screen you can choose to clone this server for use with AutoYaST. You may want to do this if you have multiple servers to install and want them to be identical to this one. The file created here is stored in /root/autoyast.xml. Click on Finish. The Autoyast file will be created and then the system will restart.
- Once the server has rebooted you should see the server console screen as shown below.
- Finally edit /boot/grub/menu.lst or use the YaST module to set the XEN enabled kernel as your default boot option/kernel.
Hopefully you agree that a XEN host server installation is very simple. This article is only long due to the number of screen shots I have included to help you complete the process. The actual number of steps required is very small.
References & Useful Links
Cambridge University – http://www.cl.cam.ac.uk/research/srg/netos/xen/
This is where it all started and continues with the XEN open source hypervisor.
Novell – http://www.novell.com/virtualization/
Novell has a mini web site dedicated to XEN virtualisation.
Wikipedia – http://en.wikipedia.org/wiki/Xen
Good resource to get you started and plenty of links to other sites.
Adam Spiers (Novell)