Tag Archives: xen server

The art of Xen, and why it’s a pain in the neck.

So, you probably ended up on my blog because you were searching google for VMware issues.

Fair enough, but I’m more than just a pretty face – I’m a Linux geek, and that means that I do all virtualization, not just the point and click variety.

Today, I was doing a small pilot install for XenDesktop. I’ll cover that off in later sections, but I want to relate my experiences in installing XenServer 4.1.0 on a Dell PowerEdge 2950 III with 2 NICs.

Hardware issues

  1. Xen does not install on 32-bit CPUs. Dell and HP, conveniently disable VT flags on their servers. Extra work for you – go ahead and enable those extensions
  2. Dell have an annoying setting in their BIOS that defaults the first NIC to be PXE-enabled. In all my life, I’ve not seen a need for this to be the default setting – go ahead and disable it.
  3. Unplug any fibre cables. You don’t want to make a mistake you’ll regret.

The Install

You can watch the install here – it’s nothing special, very simple stuff – password, DNS, IP, NTP… all the usual…

The client installation

Pop the installation CD used above into a Windows machine and the client will auto-install – use the client to connect to the Xen Server and click on the network tab. You’ll see two NICs – and only one active.

One active? Lets team the two NICs?

You can look through the client, but you won’t find the answers you seek – it’s impossible to team via the client. Stupid, I know, but at the same time it prevents ignorant admins (and there are many) from changing settings they should not be.

Log onto the console and do the following:

  1. Run: xe pif-list to find the UUIDs of all network interfaces
  2. Run: ifconfig and compare the results – you need to note the PIF UUID of the interface that is not currently active
  3. Run: xe host-management-reconfigure pif-uuid=uuid_of_the_current_management_NIC mode=none
  4. Let’s create a network called Production: xe network-create name-label=Production and that should spit out another UUID. Make a note of it – it’s the Production network UUID
  5. Run: xe bond-create pif-uuids=uuid_of_eth0,uuid_of_eth1 network-uuid=production_network_uuid
  6. Run: xe pif-list and make a note of the uuid of the bond0 adapter
  7. Set a static IP: xe pif-reconfigure-ip uuid=uuid_bond0 gateway=172.16.1.1 IP=172.16.20.177 netmask=255.255.0.0 mode=static
  8. Run: xe bond-list to get the UUID of the bond adapter
  9. Reconfigure the management device to be bond0: xe host-management-reconfigure pif-uuid=bond0_uuid

Done :)

Command Queue Depth

Our favourite friend is back – I want 128bit command queue length on my Emulex LPe1150-E cards. Here’s how:

  1. Run: echo “options lpfc lpfc_lun_queue_depth=128″ >/etc/modprobe.conf
  2. Run: mkinitrd /boot/initrd-2.6.18-53.1.13.el5.xs4.1.0.254.273xen.img 2.6.18-53.1.13.el5.xs4.1.0.254.273xen
  3. Reboot the server: init 6

Updating the Firmware and installing Dell OpenManage

The process to allow Linux-binary firmware updates to run is as follows:

  1. Edit /etc/yum.repos.d/CentOS-Base.repo and allow the base repository by specifying that enabled=1
  2. Run: yum install procmail
  3. Install any and all Dell firmware patches, deploy-able via Linux CLI.

Installing OpenMange is easy – follow the default instructions from Dell.

  1. Download the managed node for Dell OMSA 5.4.0
  2. Unzip it
  3. Edit the setup.sh file with the following:

GBL_OS_TYPE=${GBL_OS_TYPE_UKNOWN}
GBL_OS_TYPE_STRING=”UKNOWN”

Needs to become:

GBL_OS_TYPE=${GBL_OS_TYPE_RHEL5}
GBL_OS_TYPE_STRING=”RHEL5″

Then run the setup.sh script and do the defaults to gain normal OMSA functionality. It is also advisable to open the firewall by running the following two lines, immediately after the non-bolded line:

-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 161 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 162 -j ACCEPT

and,

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1311 -j ACCEPT

All done, have fun

Comments ( 0 )