Friday, January 30, 2009

Predeployment I/O Best Practices: SQL Server Best Practices Article

The I/O system is important to the performance of SQL Server. When configuring a new server for SQL Server or when adding or modifying the disk configuration of an existing system, it is good practice to determine the capacity of the I/O subsystem prior to deploying SQL Server. This white paper discusses validating and determining the capacity of an I/O subsystem.

CoreConfigurator - use a graphic interface to configure Windows Server 2008 Core edition!

Smart-X has published a new version, of their tool, CoreConfigurator - use a graphic interface to configure Windows Server 2008 Core edition!

CoreConfigurator is free for personal use and free for non commercial use.

Active Directory on separate volumes?

I have seen numerous discussions with people on the benefits and drawbacks of putting Active Directory files and folders on a separate volume or even on several separate volumes. Time to makes some things clear!

Transitioning your Active Directory to Windows Server 2008

You might be running Windows Server 2003 and Windows Server 2003 R2 Domain Controllers at the moment and you're looking to replace these servers with Windows Server 2008 Domain Controllers to utilize the new features of Windows Server 2008. You might also be looking to replace your aging Windows Server 2003 and Windows Server 2003 R2 Domain Controllers with spanking new Windows Server 2008 Domain Controllers, while keeping your Active Directory running smoothly.

This post intends to help you with this transition in a structured, balanced and thorough way.

Virtualizing Exchange 2007 and Exchange 2003 with Hyper-V

Microsoft offers two Hyper-V products—Windows Server 2008 Hyper-V, which is a role in Windows Server 2008, and Microsoft Hyper-V Server 2008, which is a standalone server-virtualization product—that you can use to virtualize Microsoft Exchange Server 2007 and Microsoft Exchange Server 2003 servers. Here's an overview of what you should consider, the processes you can follow, and the requirements you need to meet to virtualize Exchange 2007 and Exchange 2003 with Hyper-V.

Support policy for Microsoft SQL Server products that are running in a hardware virtualization environment

This KB article describes the support policy for Microsoft SQL Server products that are running in a hardware virtualization environment.

Running SQL Server 2008 in a Hyper-V Environment - Best Practices and Performance Considerations

Hyper-V in Windows Server 2008 is a powerful virtualization technology that can be used by corporate IT to consolidate under-utilized servers, lowering TCO and maintaining or improving Quality of Service. Through a series of test scenarios that are representative of SQL Server application fundamentals, this document provides best practice recommendations on running SQL Server in Windows Hyper-V environment.

Exchange Servers in Hardware Virtualization Environments

Microsoft Support Policies and Recommendations for Exchange Servers in Hardware Virtualization Environments

This Technet page provides the Microsoft support policies for running currently supported versions of Microsoft Exchange Server in production in a hardware virtualization environment.

Thursday, January 29, 2009

WinBubble - tweaking tool for Vista

Lawrence Albert has a nice utility for tweaking the Windows Vista, called WinBubble, a great replacement for TweakUI.

Wednesday, January 28, 2009

ASP.NET Tutorial (ro)

ASP.NET tutorials for beginers, in romanian:

Part 1
Part 2
Part 3

Using CROSS JOIN queries to find records out of sequence

This topic is nothing new, but well worth revisiting for those who have not used CROSS JOINS. You may have faced a problem where you need to compare historical records for a particular set of records to ensure that records have been saved in the correct order.

Hierarchies in SQL

One very common structure that needs to be handled in T-SQL is the hierarchy. GSquared, one of the prominent members of the SQL Server Central community discusses how you can handle hierarchies in SQL Server.

Creating OS VHDs from Windows Server 2008 R2 OS media

A tutorial about the procedure of getting the setup image of Windows Server 2008 R2 into a VHD.

And the follow up, Enabling a captured VHD to boot in a Hyper-V Virtual Machine.

Tuesday, January 27, 2009

How do Cluster Shared Volumes work in Windows Server 2008 R2?

I have found today the description of the new Cluster Shared Volumes that will be availabe in Windows Server 2008 R2, a feature designed for Hyper-V 2.0, to remove the need for 1 LUN per VM:

You need to register/login to see the answer.

Hyper-V 2.0 Feature overview has a nice description of features that will be comming with Hyper-V 2.0:

  • Live Migration
  • enhanced Logical Processor Support
  • Hot add remove storage
  • Second Level Translation (SLAT)
  • Dynamic Memory
  • Boot (host) from VHD
  • improved speed of iSCSI storage communication
  • support for multiple network channels (NIC teaming support)
  • Virtualized I/O
more details can be found here:

Update: Sander Berkouwer in his blog "The things that are better left unspoken" is talking about his experience with Hyper-V 2.0 beta and what surprise him.

Monday, January 26, 2009

Auto notification for failover of a server and restart of SQL Server services

Learn how you can monitor the SQL Server instances for failover of a cluster or a restart.

Friday, January 23, 2009

Hyper-V Remote Management Configuration Utility

HVRemote, maintained by John Howard, Senior Program Manager in the Hyper-V Team at Microsoft, is a handy tool that reduces the manual configuration steps needed for Hyper-V Remote Management down to one or two commands.

HVRemote project site is at this address:

and author's blog can be found here.

Hyper-V Server 2008 Local Management scripts / UI

A very nice addition to the configuration script integrated in Hyper-V Server, HVS2008 UI is a CodePlex developed script that helps you manage a Hyper-V Server host.

Is developed by Ravikanth Chaganti's and his blog can be found here.

IIS 7.0 Configuration Reference - online library

The IIS development team has put together a brand new technical reference on IIS 7.0 configuration.
This vast library comprehensively details all IIS 7.0 configuration settings in Windows Server 2008, including configuration collections, elements, and attributes. You can sort the configuration settings alphabetically to easily find what you are looking for or by browsing the schema structure. Each configuration topic provides sections such as an overview, examples of how to configure the configuration, setup instructions, configuration details, and code and script samples – including AppCmd.exe, C# .NET, Visual Basic .NET, JavaScript, and VBScript.
This is the only online reference you’ll need for IIS configuration, so check out the comprehensive documentation at today!

Free eBook: Mastering SQL Server 2005 Profiler, by Brad McGehee, 2009

Thist is the second eBook i have found today, about the Profiler in SQL Server 2005, is also free, and can be downloaded here (PDF, 10MB).

Free eBook: Understanding Microsoft Virtualization Solutions - From the Desktop to the Datacenter, 2009

Today i have found this book about almost all the virtualization products and technologies Microsoft makes, and it seems that is a good book, and best of all, is free!

Highlights: Hyper-V, System Center Virtual Machine Manager (SCVMM) , App-V, Terminal Services, MED-V, VDI, Roaming User Profiles, ...

Here's the download link (PDF, 15MB).

Wednesday, January 21, 2009

Hyper-V 2.0: Live Migration setup on Windows Server 2008 R2 (beta 1)

Now that Windows Server 2008 R2 beta 1 is available, I decided to give it a spin. The installation of the Hyper-V role and the Failover Cluster feature is very similar to the current version and is not discussed in this article. This article does not discuss best practices. It merely illustrates the setup process that enables you to live migrate virtual machines with Hyper-V 2.0.

Tuesday, January 20, 2009

Planning virtualization of servers with Hyper-V, part 2

The part 2 of this kind of tutorial talks about creating the list of applications that need to be virtualized. Part 1 is available here:

Step 2: Create the List of Applications
Before designing and implementing the infrastructure, determine which applications the infrastructure needs to support. This information will be used in later steps to determine resource requirements and, ultimately, to design the physical host infrastructure.

Determine Application Compatibility

The first step in deciding which applications to virtualize is to consider the specific technical requirements for the application or operating system and map that against any constraints in the virtualization technology. Factors include:
  • Processor architecture requirements.
  • The number of required processors.
  • Memory requirements.
  • Graphics adapter requirements.
  • Special hardware requirements.
Windows Server 2008 Hyper-V has the following constraints and limitations:
  • Is available with Windows Server 2008.
  • Requires specialized hardware chipset (Intel VT or AMD-V).
  • No access to USB devices or hardware such as Host Bus Adapters (HBAs).

Document the List of Applications

Most organizations run multiple operating systems, applications, and services that IT may consider moving to a virtual environment. To ensure that no important considerations are overlooked, a spreadsheet or table should be created that lists the applications, whether they are compatible with virtualization, and whether it is appropriate to virtualize them. Such a job aid could also include additional notes, requirements, and concerns. Filling out such a table can provide a very helpful structure to the process of planning for virtualization.

In the next article, i will cover the step 3, Determine Resource Requirements.

How to boot a VM in Hyper-V from iSCSI

Hyper-V virtual machines do not emulate an iSCSI HBA or allow you to pass a physical iSCSI HBA through to the virtual machine. However, as Hyper-V supports booting virtual machines directly off of physical hard disks, you can attach an iSCSI LUN to the parent partition and then boot the virtual machine off of it.
In order to do this you would need to:
  1. Attach the iSCSI LUN to the parent partition.
  2. Create a new virtual machine and opt to configure the hard disk later.
  3. Open the settings for the new virtual machine and select the first IDE controller.
  4. Select to add a disk drive.
  5. On the disk drive configuration page select to use a physical hard disk, and select the iSCSI LUN.
  6. Apply changes and close the virtual machine settings.

Now you can boot the virtual machine directly off the iSCSI LUN by just starting it up...


Hyper-V Quirks That Take Some Getting Used To

Lately, it seems as though everyone that I talk to is interested in virtualizing at least some of the servers in their organization. Although Hyper-V does a great job as a virtual server hosting solution, it does have some quirks that you might not expect. In this article, I want to talk about some of these quirks and how to work around them.

Planning virtualization of servers with Hyper-V, part 1

For a succesful implementation of virtualization of your existing servers you need to plan your moves carefuly. To keep things short, these are the steps you need to take:

  1. Determine the Virtualization Scope
  2. Create the List of Applications
  3. Determine Resource Requirements
  4. Select the Backup Approach for Each Application
  5. Applying Fault Tolerance
  6. Summarize and Analyze the Application Requirements
  7. Select a Form Factor for the Hosts
  8. Map Guests to Hosts
  9. Determine the Host Backup Approach
  10. Design Fault Tolerance
  11. Design the Storage Infrastructure
  12. Design the Network Infrastructure

Starting with step 1, determining the virtualization scope, you have a few options:

  1. Enterprise Deployment - this option involves deployment of virtualization technology to the entire organization, including corporate data centers.
  2. Hub Deployment - this option involves deployment of virtualization technology to one or more hub locations. Hubs are physical locations where there are concentrations of users, computers, and/or network connectivity. Resources within the hub may be provided to additional satellite locations.
  3. Satellite Deployment - this option involves deployment of virtualization technology to one or more satellite locations. Satellite locations are smaller than enterprise or hub environments and often have limited network connectivity to the rest of the environment because of bandwidth constraints.

In part 2, i will examine the next step, creating the list of applications that need to be virtualized.

Managing connections to remote servers

There are a number of ways of managing connections to databases. Configuration files, udls, odbc dsns etc. However when you have set one up to use a remote database how do you test that it is actually making a connection.

Adding a column to every table in a database

Despite the best laid plans, sometimes circumstances or project scope change and the definition of one or more tables in your database must be altered after they have been created. It's just a fact of life for a DBA.

Analyzing the SQL Server Plan Cache

Keeping in mind the importance of the cache mechanism, how could one get the plans and their usage statistics in SQL Server?

Spring Clean Your Database Schema

The utility described in this article will allow you to quickly identify which columns have mismatched datatypes across tables in a database, and should prove valuable in the everyday work of the SQL Server DBA/developer.

Log Management, the easy way

Today i have found an interesting Log Management software, called Splunk. Seems very powerful, and they even have a free version.

Splunk website -

Splunk documentation -

What Splunk can do for you:

With a variety of flexible input methods you can index logs, configurations, traps and alerts, messages, scripts, and code and performance data from all your applications, servers and network devices. Monitor file systems for scripts and configuration changes, capture archive files, find and tail live application logs, connect to network ports to receive syslog, SNMP and other network-based instrumentation. And this is just where it starts.

Fast, free form search on anything, not just a few predetermined fields. Boolean, nested, quoted string and wildcard searches. No knowledge of specific data formats required. Combine time and term searches. Find errors across every tier of your infrastructure and configuration changes in the seconds before a system failure occurred. Fields are identified from your results as you search -- providing much more flexibility than a rigid set of field mapping rules imposed ahead of time.

Any search can be run on a schedule and trigger notifications or actions based on the search results. And because it works across different components and technologies, Splunk is the most flexible monitoring tool in your arsenal. Notifications can be sent via email, RSS or SNMP to other management consoles. Actions trigger scripts performing user described activities like restarting an application, server or network device.

Splunk marries powerful reporting capabilities with the speed, flexibility and scale of IT Search. Search results can be easily summarized as reports with interactive charts, graphs and tables. The simplicity of analyzing massive amounts of data will amaze you (and your boss). And remember, because fields are identified as you search you can specify new fields without re-indexing your data.

Everyone knows IT data is generally poorly documented by vendors, developers and operations staff. With Splunk everyone can add their own knowledge as they go. As you’re saving searches, identifying different types of fields, events and transactions you make the whole system smarter for everyone else. And that knowledge doesn’t walk out the door when someone leaves.

Scale your installation from a single application and just a few data sources to your whole datacenter and thousands of sources. You’ll find a wide range of options to access data, store it, search it and route it to other systems.

Of course you'll need to keep your IT data secure. Especially as you realize what a valuable information asset you have. Splunk gives you secure data handling, fine grain access controls, auditability, assurance of data integrity and integration with existing authentication systems.

When i will be done with the installation and configuration with my new servers i will give it a try, and share my experience with it.

Things to know before you build an OpenFiler SAN

These are some important tips that you may want to know before you go and choose the hardware that will run the OpenFiler software, if you do not want OpenFiler to be just a play toy:

  1. Do not run OpenFiler on a desktop PC.
  2. If you must use a desktop PC, use only Intel hardware (CPU, mainboard and network cards). Leave away any system that has nVidia, ATI, VIA or AMD hardware. The network cards can also be from Broadcom. Do not use network cards from Realtek, Marvell or others, put them on your usual desktops, not in your SAN.
  3. Choose only "jumbo frames" enabled network cards from Intel/Broadcom. Search also for "teaming" or LACP or 802.3ad capable network cards. Do not forget that the switch also needs to know about these features.
  4. Check all the chosen hardware against the RedHat HCL - Do not use the hardware if is not on the RHEL HCL.
  5. Do not use the latest and greatest of hardware, go for at least a year old hardware before the current kernel.
  6. If you decide to buy some server (new or used), choose a server from a big server vendor: Dell, IBM, HP, Fujitsu-Siemens, Supermicro and others.
  7. Do not use the RAID features implemented in chipset or add-on cards, expose every disk to the OpenFiler and use the software RAID implemented in OpenFiler. Buy simple add-on card for adding drives to the OpenFiler box, without RAID. If you do not find cards without RAID, disable the onboard RAID features.
  8. For SCSI, use Adaptec, LSI Logic or AMI controllers. For SATA, use Silicon Image, Marvell or Intel AHCI controllers. Avoid JMicron and the likes.
  9. Do not use USB or FireWire attached disk drives to use them as the main storage! Use them only for backup. Using OpenFiler on USB and FireWire disks will eventually result in tears.
  10. Try to use SCSI/SAS disks. If you use SATA disks, use Seagate ES, Western Digital Enterprise/Raptor or Hitachi drives. If you must go with other brands/models, search for NCQ enabled drives.
  11. Size your power supply carefully, SATA drives are particularly sensitive to voltage drops on the 12v rail. Choose a high quality and powerful PSU.
  12. If you value your data, you must use a UPS on your OpenFiler system.
  13. For the file system, use XFS. XFS is extremely resilient to faults, dirty shutdowns and other maladies that can cause data corruption.
  14. Install Openfiler on a RAID1 set of drives, if one drive will fail your SAN will continue to work.

Keep in mind that OpenFiler is designed to store information. Sometimes very important information. Reliability is therefore the most important aspect of using OpenFiler, unless you don't mind losing data.

Make your own (free) NAS or SAN

If you want to build your own cheap NAS or SAN, there are available a couple of software packages that can transform a regular PC into a full fledged NAS or SAN (or both).

This is a list of the free NAS or SAN software that i found:

  1. FreeNAS -
  2. OpenFiler -
  3. unRAID -
  4. ClarkConnect -

There are others, of course, but these are the most prominent packages i have found after a few days of searching and reading on the net. And there are free.

The most advanced is OpenFiler, which is based on rPath Linux. In the past CentOS was used. Some people regret the transition to rPath.