Tags: Cluster, iSCSI, Review, SAN, StarWind
Starwind released recently a new version of their iSCSI SAN solution, Starwind 5.7. It includes several new features that scale up this already great SAN solution, providing some important improvements regarding performance, monitoring and usability for IT administrators.
Some of the improvements included:
Re-worked and re-designed completely from the scratch all-new HA (high-availability) engine 2x-3x faster compared to previous versions.
Quality of Service (QoS) options added.
Data de-duplication with variable block size (512 byte – 256 KB) to save on storage especially in hypervisor scenarios.
Performance monitor included in Starwind console.
Targets and servers can be arranged in groups.
Event notification in system tray.
Within this post we’ll review some of the newest features included, testing them in some scenarios. Here’s what we are going to do:
1. Reviewing Starwind iSCSI SAN 5.7 installation
2. Reviewing improvements in Starwind management console.
3. Reviewing usability and GUI new features.
4. Configuring HA and synchronization priority.
You can download Starwind iSCSI SAN software using this link, previous registration required.
For a detailed step-by-step of creating and configuring a Windows Server 2008 R2 cluster using Starwind check my previous article: Five Easy Steps to Configure Windows Server 2008 R2 Failover Cluster using Starwind iSCSI SAN.
Reviewing Starwind iSCSI SAN 5.7 Installation
As any other version of this solution, the installation steps are pretty simple. Just completing the wizard we’ll have it ready to use it.
We can also install the components separately, in case we want to remotely manage the iSCSI platform.
Once installed, to get started we need to use the “Connect” option and as a reminder, the default credentials used in Starwind are:
Reviewing Improvements in Starwind
The management console looks pretty much the same, but adding some interesting tweaks that will be very helpful for IT admins.
The first one is one of the most important ones, the “Performance” tab included. Within this window we can monitor in real time the performance in the current load of the server and targets.
We can retrieve the following graphics: CPU/RAM load (for a quick comparison), CPU load, RAM load, total IOPS and total bandwidth.
The second one is a really simple one, but very helpful. The possibility to create target groups, this lets us easily identify in our servers the right collection.
As a third improvement in the usability of this management console we have the Event notifications in system tray, with this tweak we can receive notification as soon as there is a change in the configuration and availability of our servers and targets.
Configuring HA and synchronization Priorities
As mentioned earlier, the main feature regarding performance changes is the one represented by including asynchronous mode for HA targets.
If you are taking your initial steps with Starwind you are probably wondering about HA targets and asynchronous options, let’s take a quick look about the definitions on each of these concepts:
What are HA (High Availability) Targets?
As we’ve reviewed in my previous chapter, creating clusters and provide high availability for a Windows Server service using Starwind is one of the main purposes of this solution and a very simple task to do. But Starwind also includes the possibility to apply high availability in the shared storage we are providing.
When we are creating our Starwind device (basically the LUN we are going to share among hosts) we can configure it as a “High Availability device”, which can be present in two different Starwind servers. In case the primary server fails, the second one (partner server) can still offer the device without affecting availability.
What about synchronization of the device?
When we are using HA devices, there are two shared disks: one in primary server and the other one in partner server. These are two different devices, meaning that they must be replicated and synchronized.
Here is when the synchronous/asynchronous mode appears.
If the replication is presented synchronous, every change (“write”) in the device must be replicated to the partner device to complete the operation. If we don’t have a good design or the bandwidth presented between these two is not a good one, the performance of HA targets reduces significantly.
Synchronous replication example (image taken from cisco.com):
If we are using asynchronous replication, the “write” operation does not have to wait for the replication between the two devices to be completed, improving performance.
Asynchronous replication example (image taken from cisco.com):
The use of synchronous or asynchronous replication must be carefully studied analyzing all factors.
Using HA devices and synchronization options
Creating a target requires only running a simple wizard (as seen in my previous chapter); using HA devices only differs in a few options:
1. Select the “Add target” option.
2. Select “Target Alias” and using “Hard Disk” to create our HA device.
3. Select “Advanced Virtual”.
4. Select “High Availability device” and click on “Next”.
5. Specify the partner server options by providing IP address (or FQDN), port, type of authentication and credentials.
6. In “Virtual Disk Parameters” complete the path for these two devices, primary and partner.
7. In “Data synchronization channel parameters” configure the synchronization interface, heartbeat interface and priority of each server.
8. Select the option “Clear virtual disks” if we are using devices we’ve just created.
Note that these options available here can be very helpful if we created a non-HA device and later we decide to convert it in HA.
9. Select the desired option in “HA device cache parameters”.
10. Complete the wizard and we’ll have our high available device ready.
Once completed the wizard, we get the chance to configure the synchronization options.
Where we can set the synchronization priorities: “Faster synchronization” represents the synchronous mode (waiting the replication to complete the operation) or “Faster client requests processing” represents the asynchronous mode.
The improvements regarding performance will vary depending on the environment we are using, but it could represent 2 or 3 times faster than previous implementations. Cheers to that!
There are some reports about slow performance in cluster environments using iSCSI, pass-through disks on Hyper-V hosts; this is a known issue in Windows Server 2008 R2 and there’s a Microsoft KB available to solve this problem: http://support.microsoft.com/kb/2020559
Here are more resources you can find to take a deep dive in Starwind and Windows Server cluster solutions:
Tags: Cluster, Failover Cluster, High Availability, iSCSI, StarWind, Step-by-Step, Windows Server 2008 R2
When there’s a no direct requirement about the business, people usually avoid the term “cluster” in their platform; mostly just because partial ignorance about the technology. For a long time, no matter if you were using open source platforms, Windows or any other, there was the believing that installing, configuring and maintaining a cluster is just a hard thing to do. The idea within this post is show you in a simple few steps, with no complex requirements, how to create a Windows Server 2008 R2 Failover cluster using another simple and effective solution as StarWind iSCSI SAN.
StarWind iSCSI SAN software represents one of the most popular solutions available in the market to create your own iSCSI shared storage (or Storage Area Network) without the need to acquire expensive hardware solutions. StarWind iSCSI SAN provides also the fastest solution to create, configure and maintaining these type of storage, having the chance to make available LUNs to any operating system capable of using an iSCSI initiator.
Let’s take a look about this step-by-step guide to create and configure a Windows Server 2008 R2 Failover Cluster, here are the steps involved:
1. Review and complete pre-requisites for the environment.
2. Install StarWind iSCSI SAN software.
3. Configure and create LUNs using StarWind iSCSI SAN.
4. Install Failover Cluster feature and run cluster validation.
5. Create Windows Server 2008 R2 Failover Cluster.
1. Review and complete pre-requisites for the environment
Requirements for clustering in Windows Server 2008 R2 changed significantly. You don’t longer need complex aspects for hardware to be compatible with Failover Cluster:
Requirements for Windows Server 2008 R2 Failover Cluster
Here’s a review of the minimum requirements to create a Windows Server 2008 R2 Cluster:
Two or more compatible servers: You need hardware that is compatible with each other, highly recommended to always use same type of hardware when you are creating a cluster.
A shared storage: This is where we can use StarWind iSCSI SAN software.
Two network cards on each server, one public network (from which we usually access Active Directory) and a private for heartbeat between servers. This is actually an optional requirement since using one network card is possible but not suitable in almost any environment.
When we are using iSCSI protocol for our shared storage Microsoft recommends three network cards on each host: Public network, private, and one dedicated to iSCSI communication from servers to the storage, which in our case will be represented by a server using StarWind iSCSI software.
Windows Server 2008 R2 Enterprise or Datacenter Editions for hosts which will be part of the cluster. Always keep in mind that cluster is not supported in Standard Editions.
All hosts must be member from an Active Directory domain. To install and configure a cluster we don’t need a Domain Admin account, but we do need a Domain account which is included in the local Administrators of each host.
Requirements for StarWind iSCSI SAN Software
Here are the requirements for installing the component which will be in charge of receiving the iSCSI connections:
Windows Server 2008 or Windows Server 2008 R2
10 GB of disk space for StarWind application data and log files
[Highly Recommended] 4 GB of RAM
1 Gigabit Ethernet or 10 Gigabit Ethernet.
You can download StarWind iSCSI SAN software using this link, previous registration required.
Optimize TCP/IP stack to improve iSCSI performance
Before using StarWind as iSCSI target it’s recommended you’d "accelerate" TCP/IP stack to make sure it runs at full speed.
1. Enable 9K Jumbo frames for your GbE network adapter.
2. Change the following TCP parameters in the registry: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
GlobalMaxTcpWindowSize = 0×01400000 (DWORD)
TcpWindowSize = 0×01400000 (DWORD)
Tcp1323Opts = 3 (DWORD)
SackOpts = 1 (DWORD)
2. Install StarWind iSCSI SAN Software
Ok, after reviewing and completing the requirements for the environment we should start installing the StarWind iSCSI SAN software.
The product is available for download in this link, and you only need a previous registration first which will also generate the license key you need to register the product.
Installing StarWind iSCSI software is probably the easiest in all of these five steps, since you only need to complete a wizard to accomplish it.
2.1 After you’ve downloaded the installation file, just double click it and the wizard will start.
2.2 Follow the wizard normally as any installation. In the process you will find one of the interesting features about it: You can install the service separately from the console from which you can administer the StarWind iSCSI.
This way you can install the console on any machine compatible to access the server or servers with StarWind iSCSI and manage storage, permissions, etc. In this case, I’ll be selecting the full installation.
The next steps are pretty straight forward so you won’t have any problem. Once the final steps are completed you’ll get a warning about the iSCSI Service needed before installing the StarWind iSCSI Service.
You just need to access the “Services” console and set the service as started and automatic.
After you click install, the process only takes a few seconds and you will additionally see some drivers that will be installed on the operating system; click “Install”.
3. Configure and create LUNs using StarWind iSCSI SAN
With the program installed, using and configuring it won’t give us any trouble.
The StarWind iSCSI console is similar as any other console you may already use it. In the “General” screen we’ll find the summary information plus how to connect to local or remote StarWind host.
In the “Configuration” section we can find the common parameters to configure iSCSI StarWind, for example the “Network” options which enable the iSCSI communications (port 3260) on any of the network adapters identified.
If we are using a special LAN/VLAN to separate our iSCSI traffic as recommended, then we should only enable the IP address used for that purpose.
Now let’s get started with the StarWind configuration.
Configuring StarWind iSCSI
We are going to review the basic steps to configure the StarWind iSCSI to start hosting LUNs for our cluster; the initial task is to add the host:
3.1 Select the “Connect” option and type in the credentials to manage the iSCSI host. The defaults used by StarWind are: User “root”; Password “starwind”.
3.2 With the host added, we can start creating the storage that will be published through iSCSI: Right-click the server and select “Add target” and a new wizard will appear.
3.3 Select the “Target alias” from which we’ll identify the LUN we are about to create and then configure to be able to cluster. In my case I’m using a simple name “w2k8r2-clstr”, click on “Next”.
3.4 Since we are going to be using hard drives to present our storage, in “Storage Type” select “Hard Disk”, click on “Next”.
3.5 In “Device Type” please note that we can use physical as virtual drives to present to our clients using iSCSI. We are going to select “Basic Virtual”, from which we’ll create a file (.img) that will represent the LUN; click on “Next”.
3.6 Select “Image File device” and click on “Next”.
3.7 Since we are creating a new one, select “Create new virtual disk” and click on “Next”.
3.8 In the following screen, select the destination and size for the file we are creating. In my case, I’m using a separate drive where I’m going to save all of my LUNs.
3.9 In the following options leave selected “Asynchronous mode” for the LUN, which will enable multithreaded disk operations (recommended for NTFS file system) and check “Allow multiple concurrent iSCSI connections (clustering)” which, of course, will provide the possibility for several hosts to be able to connect to this image file; click on “Next”.
3.10 In the cache parameters, leave the default options selected “Normal (no caching)”; click on “Next”.
3.11 In the last screen, just click on “Finish” and we’ll have our LUN ready.
As optional and recommended review the options for “CHAP permissions” and “Access Rights”. Within these options we can configure all the parameters needed for secure environments.
Once we’ve completed this, we can access this file from a Windows Server 2008 R2 host.
Configure Windows Server 2008 R2 iSCSI Initiator
Each host must have access to the file we’ve just created in order to be able to create our Failover Cluster. On each host, execute the following:
3.12 Access “Administrative Tools”, “iSCSI Initiator”.
3.13 In the “Target” pane, type in the IP address used for the target host, our iSCSI server, to receive the connections.
In my case, I’ve created two LUNs available for the cluster.
3.14 Click on “Connect” to be authorized by the host to use these files.
Once we’ve connected to the files, access “Disk Management” to verify we can now use these files as storage attached to the operating system.
3.15 And as a final step, just using the first host in the cluster, put “Online” the storage file and select also “Initialize Disk”. Since these are treated as normal hard disks, the process for initializing a LUN is no different than initializing a physical and local hard drive in the server.
Now, let’s take a look about the Failover Cluster feature.
4. Install Failover Cluster feature and run cluster validation
Prior to configure the cluster, we need to enable the “Failover Cluster” feature on all hosts in the cluster and we’ll also run the verification tool provided by Microsoft to validate the consistency and compatibility of our scenario.
4.1 In “Server Manager”, access “Features” and select “Failover Cluster”. This feature does not need a reboot to complete.
4.2 Once installed, access the console from “Administrative Tools”. Within the console, the option we are interested in this stage is “Validate a Configuration”.
4.3 In the new wizard, we are going to add the hosts that will represent the Failover Cluster in order to validate the configuration. Type in the server’s FQDN names or browse for their names; click on “Next”.
4.4 Select “Run all tests (recommended)” and click on “Next”.
4.5 In the following screen we can see a detailed list about all the tests that will be executed, take note that the storage tests take some time; click on “Next”.
If we’ve fulfilled the requirements reviewed earlier then the test will be completed with no warning.
We can also have a detailed report about the results on each test.
5. Create Windows Server 2008 R2 Failover Cluster
At this stage, we’ve completed all the requirements and validated our configuration successfully. In the next following steps, we are going to see the simple procedure to configure our Windows Server 2008 R2 Failover Cluster.
5.1 In the “Failover Cluster” console, select the option for “Create a cluster”.
5.2 A similar wizard will appear as in the validation tool. The first thing to do is add the servers we would like to cluster; click on “Next”.
5.3 In the next screen we have to select the cluster name and the IP address assigned. Remember that in a cluster, all machines are represented by one name and one IP.
5.4 In the summary page click on “Next”.
After a few seconds the cluster will be created and we can also review the report for the process.
Now in our Failover Cluster console, we’ll get the complete picture about the cluster we’ve created: Nodes involved, storage associated to the cluster, networks and the events related to cluster.
We will close up our step-by-step guide here and open the clustering series for maybe a detailed explanation about type of Failover Clusters, including Multi-Site cluster which I had the chance to present on a Microsoft event here in Buenos Aires.
After reviewing the process to create clusters using StarWind iSCSI SAN software, here are some of the things I’ve noticed:
StarWind iSCSI software is a simple tool to install and simpler to use and administer shared storage; not only for using it in a Failover Cluster, but for all scenarios when we need shared storage.
If we have the proper environment for iSCSI, StarWind iSCSI can save us a lot of money comparing the costs of an enterprise hardware solution to use iSCSI.
The tool provides also important differences with other similar in the market, for example, granularity of permissions we can achieve to guarantee a secure environment.
Setting up the right environment for iSCSI using StarWind can represent a complex situation. There is no golden rule, this “right environment” depends on a proper sizing and planning about the scenario and the services we’ll be providing; but for scalable and powerful solution you would probably need SAS hard drives, 10gb network cards, possible NIC teaming and other configurations.
Even though we are discussing this as a negative aspect, still is common sense to think about this complex scenario as a trade-off for an expensive hardware solution.
The price seems very accessible for most companies, but StarWind removed the free version of this tool. I hope they can bring it back any time soon; fits perfectly when we want to make our own simple labs, or like in my case that I’ve used several times in presentations :)
Here are more resources to look into for Windows Server 2008 R2 Failover Cluster and StarWind iSCSI Software:
Understanding Requirements for Failover Clusters: http://technet.microsoft.com/en-us/library/cc771404.aspx
iSCSI Cluster Support: Frequently Asked Questions: http://www.microsoft.com/WindowsServer2003/technologies/storage/iscsi/iscsicluster.mspx
Creating a Cluster in Windows Server 2008: http://blogs.msdn.com/b/clustering/archive/2008/01/18/7151154.aspx
StarWind iSCSI SAN: Quick Start Guide: http://www.starwindsoftware.com/starwind-iscsi-san-quick-start-guide
StarWind SAN Sizing Guide: http://www.starwindsoftware.com/san-sizing-guide
StarWind iSCSI SAN Software Manuals: http://www.starwindsoftware.com/technical-papers
StarWind iSCSI SAN Software White Papers: http://www.starwindsoftware.com/white-papers
iSCSI SAN Storage Videos and Webcasts: http://www.starwindsoftware.com/videos
Windows Server 2008 Failover Clusters: Networking (Part 1): http://blogs.technet.com/b/askcore/archive/2010/02/12/windows-server-2008-failover-clusters-networking-part-1.aspx
Simple Clustering with Hyper-V: http://technet.microsoft.com/en-us/magazine/2009.04.geekofalltrades.aspx?pr=blog