What is a Xsigo? (Part 1)

I happened to mention Xsigo in passing to someone I know and they asked, quite rightly, “What's a Xsigo?”. In this day and age of Google being everyone's friend it's not hard to find out and I'd encourage anyone to go and have a look for themselves. This is my take on it though.

So, Xsigo (pronounced ‘see-go or Zee-go if you like) is actually the name of the company. In my experience people refer to the devices themselves as Xsigos because it's a lot easier than “I/O Director” or “VP 780” and you're not likely to have lots of them lying around to get confused about. Xsigo are in the business of providing I/O Virtualisation. And why not? Your servers are virtualised, your storage is virtualised and even your desktops may be virtualised. I/O is the missing piece of the puzzle and Xsigo aim to complete it.

They have a small number of devices that fill this niche and my experience is with the VP780 I/O Director. Here it is (borrowed from Xsigo's site, thank you). This is actually the rear of the device. The front of it is devoid of much except for a few status lights and four very large fans. The entire device takes up 4U of rack space, needs two power supplies and has a single RJ45 console port for configuration and management.

The lower half of the device is taken up by modules. The image here shows a full set of modules fitted but in reality you could have just one or two. The modules are used to connect up to various parts of your infrastructure – network, storage etc. There are three different types of module available:

  • 10 x 1Gb Ethernet Module
  • 1 x 10Gb Ethernet Module
  • 2 x 4Gb Fibre Channel Module

With these 3 you can join the VP780 directly into a Fibre Channel SAN, connect it to a 10Gb switch port or multiple 1Gb switch ports. It's almost too flexible!

The top part of the device is used for connecting hosts. These ports can either be 1Gb / 10Gb Ethernet ports (shown above), which are the easiest to integrate into an existing infrastructure or they can be 20Gb / 40Gb Infiniband ports. These latter connections require Converged Network Adapters (CNAs) or Infiniband cards to be installed into each host. These are simple looking PCI cards with a port that looks like this:

Expansion switches can be purchased to increase the number of connected hosts up to 120 per device. Typically, for resilience, you'd double up and have two devices with each host connected to both.

So, connecting up is easy enough. What do you do with these things then? Configuring a Xsigo isn't too difficult. There are a number of methods available (although there a no PowerShell cmdlets with is a shame) include a command line interface, accessed by SSH and a vCenter plugin. The management software is a bit clunky in my opinion but Xsigo are hoping to provide some significant enhancements when XMS 3 is released. Unfortunately I've yet to see it – I missed my chance at IP Expo 2010 – but I'm told it's worth waiting for.

The SSH interface is fairly easy to use and contains the sort of command completion help that you get from Cisco's IOS. Here you can see the possible commands that can be executed after typing show and hitting the tab key:

Through this, or other interfaces, the idea is to create a server profile for each host that is connected to the Xsigo. This requires host based drivers being installed, certainly in the case of the Infiniband connections anyway. Virtual NICs can then be created and assigned to the profile. Each virtual NIC is connected to a port (or group of ports) in one of the installed modules. These Virtual NICs are then presented to the host and can be used in the same way that a physical NIC would be used. Below you can see a whole range of Virtual NICs that have been presented to an ESX host:

There's more to it than that though. Each Virtual NIC has its own QoS attributes so there is endless tinkering that can be done to suit any application or I/O workload.

So that's what a Xsigo is (briefly). Check out Xsiog's site for more information. The question is, why do you want or need one? I'll cover that in Part 2.