For many of you it can be known that the only option to share storage to form failover clusters INSIDE Hyper-V virtual machines is by using iSCSI technology.
For those of you that didn't know, you now know. Yes, it is possible to use iSCSI, Fiber Channel or SAS to share storage on Windows Server 2008 but, if your intention is to form a cluster of virtualized machines your options go down only to iSCSI, as Hyper-V does not support shared SAS or shared Fiber Channel.
Take into account that if yours is a corporate environment you would probably run VMs in a SAN. Most of the SANs today offer iSCSI as an option to share disks… if this is your environment, you can probably omit the rest of this post. :)
For those of us who work with virtual machines over a personal computer for learning, testing or any other tasks, it has become somewhat frustrating to learn that the old friend shared SCSI technology that was available in Virtual Server is not supported anymore.
The reason for deprecating this functionality, as explained by Microsoft is merely that shared SCSI is a technology that is less and less implemented and most probably it will be ceasing production sometime in 2010 (which is really close).
On this perspective, a solution must be found for running our "virtual clusters".
The iSCSI technology in short makes storage available over standard TCP/IP connections, being the "server" the device that offers the storage and the "client" the computer that uses it (in a client/server analogy). The two devices have to run pieces of software called an iSCSI Target (to offer the storage) and an iSCSI initiator (in the machine that will use the disks).
The iSCSI initiator is available from some years ago in Windows and it works as a service. It will allow you to select the IP address (or other ways of denomination) for the target and the credentials required to make the connection.
The iSCSI target is not a Windows service and it is not available in Windows Server 2008 (also, not in R2). Also, Microsoft does not offer any iSCSI target as a tool or downloadable file that is publicly available for these servers.
So the question continues… how can I run clusters inside virtual environments on top of Microsoft technologies?
I've seen several approaches to this. The most common is one that I don't like much: running a new virtual machine with Linux and an iSCSI target for Linux.
As I didn't like the common approach I dedicated some hours (believe me… it was not easy to find) to look for a Windows-based iSCSI target. Of course, I was looking for free or unexpensive tools as I didn't want to invest more than in a Linux VM so, after discarding several tools available which charge an expensive license I found a product from a company called KernSafe. Their product: iStorageServer (http://www.kernsafe.com/product.aspx?id=5) worked good enough for me in my environment and… voilà it can be installed even on a Windows XP computer, which I already had in my virtual environment.
But this is also about news. If you are an MSDN or TechNet Plus subscriber, you now have another option: Recently, Microsoft has launched Windows Storage Server 2008 (or WSS2008, for short). The product is the equivalent to a 2008 version of OS that's running in the award-winning NAS devices powered by Windows.
On your TechNet Plus or MSDN download page, you can now download this product and the associated iSCSI target. You'll notice that iSCSI target is available as a separate download but, don't spin your wheels to fast… it WON'T install in any other than WSS2008. An update to this: the iSCSI target WILL install in Windows 2008 server.
So now my virtual landscape looks different… I can have a small VM with WSS2008 and the iSCSI Target as my "SAN" with VHDs hanging from there and all my server VMs consume disk from this WSS through their in-box iSCSI initiator.
Now, you probably might have ideas to share or comments on this configuration… PLEASE… write down some comments in this page so we can improve this solution.
I'm not going to detail the procedures I followed to install this… you can read José Barreto's blog with very good step by step instructions: http://blogs.technet.com/josebda/archive/2009/02/02/step-by-step-using-the-microsoft-iscsi-software-target-with-hyper-v-standalone-full-vhd.aspx. He covers also the configuration of the iSCSI Target here: http://blogs.technet.com/josebda/archive/2007/12/18/configuring-the-microsoft-iscsi-software-target.aspx
Thanks for keeping reading.