This happens to be my very first blog post with Pythian, and to kick this thing off, I would like to talk about building a Windows Server 2008 cluster.
As DBAs, we cannot separate ourselves from the grueling task of having to deal with the underlying operating system, especially as new versions come out. Running SQL Server also means understanding the operating system on which it runs. And since Windows Server 2008 has been released for almost a year now, a lot of customers are upgrading from Windows Server 2003 to this new version.
Installing SQL Server on a stand-alone server or member server in the domain is pretty straightforward. Dealing with clustering is a totally different story. The goal of this series of posts is to be able to help DBAs who may be charged with installing SQL Server on a Windows Server 2008 cluster.
The best approach is to always have an environment on which to run these tests. In my case, I run VMware Workstation 6.5 on my Windows XP laptop. Here are the steps that you need to take.
- Create two VMs running Windows Server 2008 Enterprise Edition or higherSince I am using VMWare Workstation, I’m limited to creating a 2-node cluster. In the past, you may have hacked the VMX files of both VMs to include a shared disk which you will use—you know, like creating a disk in VMWare and letting your VMs use the same disk, and changing some parameters in the VMX files. That might have worked in Windows Server 2003, but not anymore, as support for parallel-SCSI as a shared bus type has been dropped for Failover Clustering in Windows Server 2008.
- Create shared disks to be used by the cluster nodes.For creating clusters in virtual environments like the one I am doing, you can use the iSCSI Software Initiator to connect to external shared storage, which could either be a real physical hardware target or a software-based target for simple test clusters. I use Rocket Division’s StarWind Control iSCSI target for Microsoft Windows for emulating an iSCSI target appliance. This is more of like making the storage available over an IP network and it could be a physical device or an image inside an operating system.
Since I am only using my external hard drive as a storage device, I’ve decided to use an image inside a disk as the iSCSI target. In preparation for a clustered Windows Server 2008, I’ve created two disk images that will be shared across the two nodes. One is commonly known as the quorum disk, and the other to be used to store my application data. Using the
mkimagetool from StarWind, I created these disk image files; one, a 1GB diskimage file and another, 7GB.
mkimage -sparse f:\iSCSIdisks\quorumDisk.img 1G mkimage -sparse f:\iSCSIdisks\appDisk.img 7G
After creating the disks, you can now use the StarWind user interface to add them as devices, so that we can connect to them using iSCSI. Connect to the machine running StarWind, and provide the appropriate credentials (this is typically a user named
testwith a password of
testwhich you can change using the Edit Configurationoption).
- In the Toolbar, select the Add Device option.
- Go through the wizard on the Device type selection page. In the Select the type of device you wish to create section, select Image File Device and click Next.
- In the Select action type page, select Mount existing image, and click Next. This is because we already have the disk images that we need to use.
- In the Image File device parameters page, navigate to the path where you stored the disk images you created using
mkimage.exe. Check the Asynchronous mode and Allow multiple concurrent iSCSI connections (clustering) options.
- On the iSCSI target name page, enter any value in the Choose a target name (optional) field, and click Next. This is just to identify the iSCSI disk image for future reference, but it really isn’t necessary as we will be connecting to the iSCSI Targets using either an IP address or a DNS name.
- On the Completing the Add Device Wizard page, click Next to complete the process.
In the second of this series, we will configure our Windows Server 2008 cluster nodes and use these iSCSI targets as disks of the cluster.
So now, dear reader, we hope we have helped you figure out something you needed to know. It turns out that you can help us here at Pythian with something we need to know! If you are aware of a DBA requirement within your organization, salaried or consulting, please pop in your email address here:
We respect your privacy and will not share your address with any third party. As a thank you for just participating, we will enter you into a monthly draw for a year’s membership in the ACM, which includes access to 600 books from the O’Reilly Bookshelf Online, 500 books from Books24x7 and 3000 online courses from SkillSoft, including tons of courseware on Oracle, SQL Server, and MySQL.
I noticed you are using StarWind iSCSI Target and just wanted to let you know that we just announced this morning a spin-off from Rocket Division and we just opened a new office and will be planning a release of Ver.4.0 later this month. You can take a look at the newly formed company at http://www.StarWindSoftware.com.
Thanks and regards,
CEO, StarWind Software Inc.
[…] Part 1 of this series, we prepared our Windows Server 2008 servers to be a part of a cluster. In this part, we will look […]
Your blog is really a big help for me. After spending few days figuring out SAN simulator without any success, your write up is heaven-sent solution. But I still need your help. After following your steps, Configuration Validation still fails. I encounter Validate Disk Failover Error
“Writing file data on cluster disk 0 partition 1
Failed to write file data on cluster disk 0 partition 1, failure reason: The disk structure is corrupted and unreadable.
Failed to write file data on cluster disk 0 partition 1, failure reason: The disk structure is corrupted and unreadable.”
I’ve already checked if the disk are writable and they are. I was able to save a document on both drives.
I am wondering if you encountered the same error and might be able to give me a hand.
I am truly thankful for your help.
Myangzki, any update on this? i experienced the same thing “Failed to write file data on cluster disk 0 partition 1, failure reason: The disk structure is corrupted and unreadable”.
[…] Part 1 of this series, we prepared our Windows Server 2008 servers to be a part of a cluster. Part 2 […]
Not all the iSCSI disks can do it, because it needs SCSI-3 persistent reserve features, you can try KernSafe iSCSI target, here is an article gives you detailed step-by-step instructions on configuring Windows Server 2008 or Windows Server 2008 R2 failover clusters.
Ever succeed without iscsi?
By default the shared disks is created with “lsisas1068” as the virtual device driver, but I got issues that the disk resource could not be created and brought online after creating the clusters under windows 2008.
anyone has any comments on that? (iscsi will work of course)
Very good Job!
Ed, have you tried Windows Storage Server 2008 R2? It’s available to MSDN and technet subscriber now.
I’ve downloaded Windows Storage Server 2008 R2 but have not installed it yet as I still am running the StarWind software. I’ll be trying it out soon
Hi, I have created ISCSI targets and also I added disk device to the target and I shared those devices into windows fail over clustering. Now I am able to see those disk devices in one of the nodes of the cluster on the other node I could not able to find those disk devices and those were offline so I was disabled those disk devices from that node. But now I dont know how to enable that nodes, if you know anyone can you please let me know.