Good news from the virtualization team. Over on their blog is a new post about the import/export functionality in Hyper-V. There are major enhancements that address several scenarios that were either not easy or not possible with Hyper-V RTM. Scenarios such as exporting a VM and importing it to a different location or importing the same exported VM multiple times, etc. R2 introduces multiple enhancements described well on the team blog.
This is the one area where I was disappointed with Hyper-V RTM as it felt like a step back from Virtual Service instead of a step forward since in VS moving VMs was a simple matter of copying the VHD and VMC to a new location. While in this area Hyper-V felt like a small step backwards, the purpose was to put much more programmability into the entire import/export process. Basically setting the foundation for the much more advanced approach being delivered now. These new features will be significant enablers for all of the backup, storage, and lab management suites being developed by Microsoft and others.
The Terminal Services (now called Remote Desktop Virtualization) team has announced that the Windows Server 2008 Terminal Services Resource Kit eBook is available for free download for a limited time. You can register (LiveID required) here and download the eBook (~30MB). The 2008 resource kit books have been very good. I use them routinely for reference. I’ve also loaded them on my Kindle (blog post coming soon on why I like the Kindle so much) and am looking forward to the big screen Kindle for better readability and native pdf support. Enjoy!
When planning server consolidation initiatives, particularly if using a structured offering and tools like SVAM and MAP, underutilized database servers are a frequent consolidation candidate. Similarly, if you have already widely implemented virtualization, then virtualizing database servers for new software deployments is also a common desire. As you consolidate and create more VMs, high availability becomes a requirement, particularly for database servers.
Until recently, Microsoft did not support clustering virtual machines running SQL server. You could cluster the hosts underneath of SQL VMs but you couldn’t cluster the VMs running SQL and remain supported. Fortunately, after finishing a large amount of testing that was required, this support policy has been changed and you can now cluster SQL VMs on Hyper-V and SVVP validated virtualization platofrms. See this article for the details: 956893.
The change in support policy opens up many new consolidation and software deployment scenarios. We have a site dedicated to SQL virtualization here and a great whitepaper on virtualizing SQL 2008 here.
Given all that, does it make sense to virtualize SQL (or any database)? The answer is an absolute, definite, maybe! Virtualization fan boys (like me) will say yes in many cases. Traditionalists in high end applications (both Microsoft’s and others) in a lot of cases will say no as they bare the scars of implementations gone bad due to going cheap on hardware or underestimating demand. Their concerns should not be ignored as they are usually based on deep experience with their apps.
What I think is unacceptable are blanket statements that “Product X should never be virtualized” or “never virtualize the database for Product Y”. These are poor excuses for trying to skip proper architecture and design. Just as bad are the vendors that promote “virtualizing everything” without any regard for performance, licensing, cost, or support considerations. This is also poor architecture and design.
Using proper capacity and availability planning practices, it is not that difficult to get to fact-based decisions on whether to virtualize a server workload or not. SQL is one of the more challenging ones as the product itself provides substantial consolidation options by supporting multiple instances and multiple databases per server/cluster. Almost all of our product groups now are releasing specific virtualization guidance (SQL, MOSS, OCS, etc.)
One of the most important considerations in this design process is the maximum size of a single virtual machine supported by your virtualization platform of choice. This will be the scale unit against which your capacity and availability requirements must be compared. If your workload doesn’t scale out well and requires a large single database server with 32 cores, that will not be a good candidate (or even possible) to virtualize as the major hypervisors today only support between 4 and 8 cores per VM. If your workload is able to scale out then this limitation can be worked around by using a greater number of smaller VMs that total up to the required capacity but you must consider the cost and management considerations of doing so (more VMs to manage, more agents, more licenses, etc).
It seems to be my mantra lately but there is no one size fits all when it comes to infrastructure architecture. That’s the fun part of this line of work, the art and science of good architecture which is a process. Beware of architects and vendors showing up and declaring that there is only one true way…
Continuing the foray into social networking I started on a couple weeks ago, today’s topic is social bookmarking. For those who are even later to the game than I am, social bookmarking is basically a site or service that lets you tag and store your website bookmarks in a central location that is accessible from any browser while also publishing your bookmarks for others to see. Advanced services let you publish your bookmarks as an RSS feed so that others can subscribe and be notified when you bookmark something. Delicious.com is the most well know of these and provides even more features like being able to subscribe to feeds based on tags so that you get a stream of all new bookmarks using one or more tags. An example would be creating a subscription for the tag “Hyper-V” where you would then see a list of all bookmarks created where someone added the Hyper-V tag. You can also use these services to see and follow what others are bookmarking, a good way to see what influentials in your area find interesting.
Lesser known than Delicious but utilized by nearly two million people are the TechNet and MSDN social bookmarking sites. Like nearly all Microsoft web properties, after an initial burst of coverage when launched, there is usually minimal follow-up coverage (hopefully that changes this summer…) so unless you caught the original announcements you may not be aware of these sites.
For a thorough introduction and steps to get started, check out this post over on Technically Speaking.
For my purposes, I will be using both Delicious and TechNet for social bookmarking. I’ll keep the TechNet list focused on the deeper, more informational bookmarks on technical topics. As with everything else I’m doing online, I will be bringing these bookmark feeds into Friendfeed which I’m using as a hub for all of my online activities.
For the bookmarks only, you can find me at these locations (RSS feeds available there as well):
TechNet Social Bookmarks: http://social.technet.microsoft.com/Profile/en-US/?user=davidzi
Marc Andreessen (of Netscape fame), started blogging recently at http://blog.pmarca.com/. So far his posts are very interesting and several have great depth, particularly his series "the truth about venture capitalists". My favorite though is his post about personal productivity. Among many suggestions (and a good list of references), are two personal favorites of mine: "do not keep a schedule" and what he calls "structured procrastination".
Do Not Keep a Schedule - The theory here is that by keeping your schedule as completely open as possible and committing to as few appointments in the future as possible you are better able to prioritize your time on a day by day basis. Example: Two weeks from now you are in the middle of several days of critical architecture design reviews when you get an Outlook reminder that you had accepted a meeting with a partner company to see a demo of their product. Most people will stick to attending meetings they committed to and attend the demo and thus attend meetings that are of low priority. Another example: count up the number of hours spent in status meetings, company meetings, webcasts, etc. Keeping your schedule completely open means that in the morning you look at your tasks, you look at the requests for your time, and you decide the priority. Now in a some cases this may not be possible due to job type or environment but for those with the luxury of being able to try this, give it a shot. You will likely spend a lot more time on productive work.
Structured Procrastination - This is one of my all time favorites and is a key to how I keep up with technology and training. Everyone has tasks that they don't like to do and wind up procrastinating on. Sometimes it's actually something that you normally like doing but just don't feel like it on a particular day. On the flip side, there are times when you are really interested in something tangential to what you are "supposed" to be working on. In each of these cases: Do what you feel like doing! As Andreessen wrote "While you're procrastinating, just do lots of other stuff instead." An example of this and how it comes back to learning: This weekend I was planning to do a bunch of reading on Operations Manager 2007 since I'll be attending training on it next week. I wasn't really into it Saturday morning but a couple things I read about PowerShell really got me thinking about that so I spent several hours digging into PowerShell instead. If I had forced myself to stick with OpsMgr, I would have been far less productive since I just wasn't into it at that point. Running with my immediate interest that day in PowerShell I was much more into it and learned a lot more. For me that's been the secret to keeping up with technology over the years. Whatever I happen to be interested in at any given point regardless of whether it is in my current scope or not, I read as much as I can about it until I get bored and move to the next thing. The bottom line is that while you are putting some things off you can certainly be accomplishing a lot of other things.
The two ides above can be pretty powerful. Combined they mean that your schedule is open to do whatever is important and that you will be embracing and working on the things where you will be most productive. For those with the luxury of some independance at work, give them a try and be sure to check out some of the other ideas in Marc's post.