Wednesday, February 16, 2011

Windows Server 2008 R2 SP1 RTM.

Just released and available on MSDN (February 16, 2011)

If you already have the RC version installed, you need to uninstall it before installing the RTM version. (No in-place upgrade)

I will upgrade my lab tonight, and show you how you should upgrade the cluster nodes in my next post, and also provide a FAQ regarding SP1 (RemoteFX and Dynamic Memory) based on the activity in the Hyper-V forum at Microsoft TechNet




Monday, February 14, 2011

VMRole and Azure Connect (still not IaaS)

I`ve been playing around for a while.
It`s blue, and it`s called ‘Azure’.

I wanted to test the new VMRole feature together with Azure Connect.

Here are the various setups I have tested:

1)      SharePoint installed on VMRole – connected with On-Premise SQL server
2)      Self-Service-Portal (v.1) on VMRole – connected with On-Premise servers
3)      LOB application connected with On-Premise SQL server

Before I get started, I just want to be clear that Windows Azure – even with VMRole and Azure Connect, should not be considered as an IaaS solution. It`s just a simplified way to move your existing applications to Azure. Think of VMRole as another way to build and deploy your applications.

Because there are some requirements for this role.

1)      You need to install the Windows Azure Integration Services
2)      You should sysprep your VM before moving it to Azure
3)      Size the VM properly – including RAM and disk size (you will only get one partition up there. The additional partition is dedicated for ‘Azure-stuffs’)
Ok, with those requirements, - or limitations in mind. What can we get out of it?
Oh, I almost forgot. If you have logged into the windows.azure.com portal after you have migrated one or two VMs, you have probably noticed some options there. It is called ‘Reboot’, and ‘Reimage’. It does what it says. So remember that you`re uploading a so called ‘base image’. This image could be reimaged by Azure. Meaning that every modification you do to your VMs, would be lost whenever the reimage-process starts. That’s Azure`s way to keep your VM clean, healthy, and to fix the instance if it fails.

“An instance can be rebooted any number of times. Windows persists all data across reboots. When you reimage a server instance, it is re-created from the image, and any state that you have not explicitly persisted is lost. Data that is written to the local storage resource directory is persisted when a server instance is reimaged; however, this data may be lost in the event of a transient failure in Windows Azure that requires your server instance to be moved to different hardware.”

So if we have to consider our roles in Windows Azure as stateless, what could be preferred to run there as far as an IT-pro concern?
-Nothing, really. It`s still a Platform – as a Service solution.
But with the ‘stateless’ in mind, I tested some ‘stateless’ applications up there.
And this is the part where the skill of an IT-pro is relevant when it comes to Windows Azure.

1.       I deployed a VM in Hyper-V, joined it to my lab domain, installed The Windows Azure Integration Services, and also the applications needed.
2.       I uploaded the image to Azure (added the –skipverify option to the cmd)
3.       Created and deployed a new hosted service in Windows Azure, and enabled it for Remote Desktop
After the VM was uploaded, I needed to connect it to my on-premise servers.

1.       I installed Azure Connect on the VM in Azure
2.       I installed Azure Connect on the On-Premise domain controller
3.       I installed Azure Connect on the other necessary servers On-Premise
4.       Created a group in Windows Azure, and linked those VMs.
(To make this possible, you have to logon to the Azure portal and download Azure Connect token on every server that should connect to each other)
I should also mention that using Azure Connect made me to brush off my IPv6 skills. Yes, it communicates on IPv6. So to make it real smooth, I setup my lab to support IPv6 (Domain Name System Services, and created AAAA-records for the servers intended for this scenario, and added rules to the Windows Firewall).

The SharePoint scenario and LOB scenario had one thing in common. It was really slow.
Since my lab is located in Norway, the closest Azure Datacenter is located in Amsterdam. (I also tried the datacenter in Ireland). The ping latency was about 600-700ms. And for SQL-communication which operates in real time, it appeared to be very slow. But it worked.









Using the Self Service Portal appeared to be faster, since it only initiates the job from the portal, down to the server on-premise. I created a VM from Windows Azure, and was able to connect to it afterwards.







The moral here is that when you get the possibility to Remote Desktop onto a VM with full access – and even can connect it to your network, you really need to know the platform you`re dealing with.
You may be tempted to think that this would open the door to use Azure as an extension of your network. To confuse you even more – it could. But only for applications, not infrastructure.  

Cheers,

Thursday, February 10, 2011

Windows Server 2008 R2 and Windows 7 SP1 - RTM (how to trick your VM)


SP1 for Windows Server 2008 R2 and Windows 7 is ready to reach every datacenter around the world.

I have been running the SP1 for a while now, and it has been a success.
One of the greatest advantages provided by Dynamic Memory is the capacity planning part.
A server with 48GB RAM using 70-80% of it, was reduced to 30-40%. And for the cluster, I only need to calculate the startup-RAM in case of failover.

And that`s what is all about – to utilize your server hardware.

I`ve tested various server setups with Dynamic Memory enabled, to see how it acts.
One of the first challenges, was to get pass the memory requirements during install,
(If you install SCVMM for example, it requires 2GB RAM).
There is an easy trick to bypass this one. The answer is mspaint.
Launch mspaint, go to file à Settings, and tweak the pixels so that the VM use more memory.
Once it`s passed the requirement, continue with your setup.

1. Before
2. After


(This is an old trick. I knew a fellow that actually complained about his computer RAM-use to his boss, and claimed a new computer. He only ran mspaint and no other applications… he got himself a new computer the week after… )
when the VM was not aware of anything else than the assigned startup RAM.

Wednesday, February 9, 2011

ServiceBus meets VMBus

For a while ago, I announced that I should present you with a power point presentation discussing the IT-pro and Windows Azure. Since there is so much happening right now, I decided to postpone that one a bit. Waiting for the SCVMM 2012 (vNext or whatever it may be called), that would combine all from Azure, Hyper-V, Failover Cluster, and also App-V, and the new Server Application Virtualization.

In the meantime, I have done some testing (crash-testing) on Azure.
It`s been quite interesting to see how a VM running in a VMRole on Windows Azure could be used together with the rest of our infrastructure.
I have tested various scenarios.

-          SharePoint installed on VMRole connected with our on-premise SQL server
-          SCVMM Self Service Portal on a VMRole connected with our on-premise VMs
-          Our own LOB application on a VMRole connected with our on-premise VMs

I will share my experience with you later.

Cheers,

Saturday, February 5, 2011

A question of service, or just another Hyper-V vs. VMware discussion?

Recently, one of my costumers contacted me.
They had some old servers (really old hardware, struggling with backups, stability and so on), and asked me to give them my recommendation in competition with two other vendors.

I was the only one who included Hyper-V – the rest included VMware.
Off course we offered a cheaper solution, because of the licensing in Windows Server 2008 R2 Enterprise (which includes 4 guest OS). And we could document our qualifications and expertise on the technology. So we were off running quite early with this one.

This costumer – a government department had already some agreement with another vendor for hosting their infrastructure (Exchange, Web, AD DS and so on) which was outsourced a year ago, but had some servers locally that were used for the health department in a so called ‘secure zone’.
They also had a file and print server, and last – a terminal server. The OS installed was primarily Windows Server 2000 and Windows Server 2003.

The challenge in this scenario would definitely be the health-department server. The person who installed this years ago was out of reach, and there was no documentation. This would be the ideal candidate for a P2V.
Also, the servers involved were located in three different networks.

And here`s why Hyper-V and SCVMM are some beautiful tools:

The Hyper-V server

-          1 Windows Server 2008 R2 SP1 with Hyper-V role enabled
-          6 NICs installed on the host
-          RAID 1 for the OS partition
-          RAID 5 for the DATA partition (and plenty of storage)
-          24 GB RAM
-          And a ‘decent’CPU J
Job plan:
Install a DC and SCVMM as VMs in Hyper-V, connected to each other on a Private Virtual Network (SCVMM requires an Active Directory infrastructure).
Create External Virtual NICs connected to their respective networks, and assign vNICs to the VMM server so it could connect to the servers intended for P2V.

So, after my presentation of how we should solve this, the customer went for our services.

After things were ready, we had to contact the vendor who was responsible for their infrastructure.
They reacted very negative about the entire project - though the costumer required this service for their servers locally. Actually, they did not understood how we should manage to get all this done.
I explained how the architecture of Hyper-V worked, and that the System Center Virtual Machine Manager would take care of the old servers, and move them to new fresh hardware and have a backup solution ready. They seemed a bit confused of how we could move the server to a new hardware. After repeating the word ‘Hyper-V’ again, it all came clear. They used VMware on the other side, and did not want a Hyper-V under their wings. The reason why the old servers were never moved to their datacenter was because their environment did not ‘support’ x86 servers…
And the staff that was responsible for the VMware servers, did not want another Hypervisor to manage.
Anyhow, the customer decided this, and wanted our solution. So after the VMware guys provided us with some IP-addresses, the Hyper-V solution is alive and doing fine. And they have now a backup/restore plan that is actually working.

Cheers,

Friday, January 28, 2011

Microsoft Community Contributor Award 2011

A nice surprise arrived in my mailbox yesterday. (Thank you Microsoft, for this recognition J )

“The Microsoft Community Contributor Award is reserved for participants who have made notable contributions in Microsoft online community forums such as TechNet, MSDN and Answers. The value of these resources is greatly enhanced by participants like you, who voluntarily contribute your time and energy to improve the online community experience for others.”
I spend most of my spare time in the Hyper-V forum, but also the SQL, and the various Virtual Machine Manager forums. I really enjoy solving puzzles, and tries to help people with their questions related to Microsoft Virtualization. It gives me great satisfaction when the questions are answered, and when people come back to ask us further questions.

Do not hesitate to ask us a question!

I hope we`ll see you there in the future.

Cheers,

Thursday, January 27, 2011

Failover Cluster for use with Hyper-V (requirements)

I want to present a checklist for what you need to consider if you intend to create a Failover Cluster for Hyper-V.

A key word is that you need common components. If you want a successful implementation, you better make sure that everything is supported.

Server Hardware:
I`ve created some clusters by now, and since I`ve been part of the planning process as well, I have luckily made it clear the servers that should be part of a cluster should have the exact same configuration and components. This is really basic. You may have cluster nodes with different CPU`s, but at least from the same manufacturer. We`ll come back to that later. Remember that the whole idea of a High Availability solution is that if one node fails, - the workloads should failover to a second (or a third) node. So that brings us to the RAM. It`s a good idea to have enough RAM installed on every node, so that the VMs on node 1 can also run on node 2. You should even calculate the size of the RAM so that both hosts are able to run the entire workload, especially if you`re planning for an active-active cluster. So let`s assume that the CPU are identical and so is the amount of RAM. What about the firmware, BIOS settings, NICs, and storage? If you are not familiar with the Cluster Validation wizard, you should spend some time with it. It will pick on every little detail that may affect the clusters stability, and guide you through whatever you have configured wrong, or at least notify what it suggest to do about the errors/warnings.
One great thing about the Cluster Validation is that it will not deny the creation of the cluster even if there is not ‘enough’ NICs installed. This is nice if you intend to use the cluster for testing/training.

Network:
Network is the core of everything today - also when it comes to clusters. Communication between the nodes, iSCSI to storage, dedicated NICs to host management, VMs, and so on. Best practice is to assign at least one NIC dedicated to a single purpose. This is for assuring adequate performance, security, availability and stability. One example is that the Live Migration process relies on a good network configuration, and should have a dedicated network for its purpose.

CPU:
In an ideal world the CPU`s would be identical. But sometimes the ideal is not always possible and they should at least come from the same manufacturer.
CPU`s operates different in the way they manage memory, and varies what instructions are available. If you do not have identical CPU, you must enable the ‘Migrate to a physical computer with a different processor version’ on the CPU settings on the VM.

Storage (SAN):
If you want HA and Failover Cluster, you must have some sort of shared storage, and the storage provider must support iSCSI or FC. In addition, SCSI-3 Persistent which is a command which controls disk arbitration must be supported. It`s quite often a focus on the hosts when it comes to CPU`s and RAM. But a key to a successful Hyper-V implementation is that the storage is well configured. The VMs is nothing but a set of files on a disk, and may be very I/O intensive. And since the VMs are located on shared storage that may be connected through iSCSI, the network throughput must be adequate.  

Quorums and the voting:
If your cluster should act as a cluster, there must be some mechanism that would identify a failure of the node, and the health of the cluster. For this we have majorities, quorums, and voting.
It`s actually explained very well here: http://technet.microsoft.com/en-us/library/cc731739.aspx

Operating Systems:
One thing to note, is that you can`t combine a mix of Server Core and Full install of Windows Server Enterprise/Datacenter in the cluster. Although you could do a mix of Enterprise/Datacenter (the validation would give a warning).
If your budget is low and you are familiar with Hyper-V, you could also use the free Hyper-V 2008 R2 edition to build a Cluster. This edition runs the windows kernel and is based on Enterprise/Datacenter which supports Failover Cluster.