Apr 032015

I am very proud to announce that one of my PASS Summit 2014 sessions was selected as one of the Top 10 of the conference, and the presentation is now available on the Best of PASS Summit 2014 list. The session is “Right-Sizing Your SQL Server Virtual Machine”, and is available for you to watch at PASStv via YouTube here:

The top 10 sessions of the conference are (in no particular order):

Advanced Data Recovery Techniques

Paul Randal – SQLskills

World’s Worst Performance Tuning Techniques

Kendra Little – Brent Ozar Unlimited

Advanced Modeling with Analysis Services Tabular

Alberto Ferrari – SQLBI

BI Power Hour

Matt Masson – Microsoft

Matthew Roche – Microsoft

Building Bullet-Resistant SSIS Packages

Tim Mitchell – Linchpin People

Five Execution Plan Patterns to Watch For

Erin Stellato – SQLskills

Inside Ola Hallengren’s Maintenance Solution

Ola Hallengren, Saxo Bank

Query Store – A New SQL Query Tuning Feature

Conor Cunningham – Microsoft

Query Tuning Mastery: Manhandling Parallelism, 2014 Edition

Adam Machanic – Data Education

Right-Sizing Your SQL Server Virtual Machine

David Klee – Heraflux Technologies

Congrats to everyone who was fortunate enough to present at the conference and to those selected for this list! I wish everyone luck in their submissions for the Summit 2015.

Mar 232015

Today I’d like to announce that I have been selected as a PernixPro for 2015! It’s a program similar to VMware’s vExpert, Microsoft’s MVP, and other community awards for those that help spread the word about PernixData. I’m very proud to be a part of this program!

For those new to PernixData, the FVP product is a great means to boost storage performance underneath virtual machines. It can leverage local host-based SSDs for I/O read and write caching. It can also leverage host memory for I/O caching as well. Redundancy capabilities include synchronous mirroring of cached data to other hosts so that if a host fails, no data is lost. This platform is incredible, and I have been using it to boost I/O performance underneath virtual SQL Servers for quite some time now. I look forward to some research soon showing some performance features once the home lab is back online soon!


Mar 132015

I am pleased to announce a brand new pre-conference training session, entitled “SQL Server Virtualization for VM Admins“, to be launched on Friday, April 10th, the day before the upcoming SQL Saturday event in Madison, Wisconsin. The price is only $100 for the entire day of training!

SQL Server professionals, now is your chance to help bridge the gap between infrastructure and data to help the business maximize your virtualized SQL Server environment. Recommend this session to your VM administrators, and then attend my session at the SQL Saturday event to learn more about how to boost the performance by “right-sizing” your SQL Server virtual machine on Saturday April 11th at 1:00pm in room 313!

Register today for this exciting new pre-conference training session!

Precon Abstract:

Microsoft MVP and VMware vExpert David Klee of Heraflux Technologies leads this full-day introduction to enabling and managing a virtualized SQL Server environment. The focus of the course is to help those infrastructure systems professionals who manage a business-critical virtual SQL Server environment understand the impact of SQL Server on their environments and how to better architect the platform to maximize availability and performance. Participants will gain exposure to the impact of virtualized SQL Server to all layers of virtualization underneath SQL Server, from storage to hypervisor to the SQL Server instance, and will learn how to construct the entire stack with a strong emphasis on SQL Server performance. High availability, disaster recovery, multi-tenancy, and performance tuning topics will all be explored during the session.

The following topics will be addressed during the course:

  • What is SQL Server?
  • The SQL Server Virtual Machine
  • Networking, Support, and Licensing
  • High Availability and Disaster Recovery
  • Performance Investigation and Tuning of the Entire Stack

Register today for this exciting event at Eventbrite! I look forward to seeing all of you at this event and at the SQL Saturday!

Mar 092015

VM snapshots are one of the best virtualization features ever. But…have you ever had a VMware vSphere or Hyper-V snapshot grow out of control and fill the datastore the VM resides on? You know what happens… even the best VM admins out there seem to get burned once when they create a snapshot for some routine maintenance and just forget about it afterwards. The VM crashes and goes into a suspended state until free space is added to the datastore.

Sometimes this task is harder than it sounds. If your SAN is out of space, or the SAN management tools are out of your control, you could be stuck.

But… follow a simple trick to give yourself that last little bit of wiggle room in the event that a snapshot fills a datastore.

Add a large text file to the root of the datastore that you can delete if you need headroom! I know it sounds too simple… but it’s simple and effective.

These directions are updated for VMware 5.5 environments, but the same concept applies to any hypervisor out there today.

How do you do this?

It’s easy.

Enable the SSH server, and remote into one of the ESXi hosts. This example is from a vSphere 5.5 ESXi server from my home lab.

Change directories into the root of the datastore that you want to create the file in.


Use the Linux command ‘dd’ to write a 10GB file (or whatever size of your choosing). Basically, we’re creating a file full of zeroes with a 1MB block size and ten thousand blocks. Simple, eh?

dd if=/dev/zero /of=snapshotfailsafe.txt count=10000 obs=1M ibs=1M


It will take a few minutes to create the file. You can see the file creation process with another terminal, and can see the activity in the hosts’ disk performance view in the vSphere Client.


Once done, you’ll see it in the terminal and in the datastore view screen.



If you have a VMware or Hyper-V snapshot that has filled the drive, just hit the datastore browser and delete the failsafe file! You just gained time to better manage the snapshot or move data around to accommodate the growth.

I know this seems unnecessary, but every VMware admin seems to get burned with a rogue snapshot once. Occasionally, it’s more than once.

How can I prevent actually needing this?

That part is pretty simple, too. Just set up a vCenter alert to warn you if you have a snapshot that is growing out of control! The directions for how to do this are located in this VMware KB article. (Just remember to set up the email server so you actually receive the emails!)

Feb 232015

It’s not often that you’ll see me write a lengthy book review. Most book reviews are fluff telling you to buy or not to buy a book, but don’t contain a lot of the “why” or “why not” to do so. But, every once in a while a book comes along that just strikes in all the right ways, especially if its topic is in a core focus of yours. The book “Virtualizing SQL Server with VMware: Doing IT Right” by VMware Press and authored by Michael Corey, Jeff Szastak, and Michael Webster (three of the brightest folks that I personally know), is a book that I feel every VMware administrator (and any other vendor’s hypervisor administrator as well) should purchase and read twice, and I’ll tell you why in this review.

First and foremost, virtualizing business critical applications, in this case Microsoft SQL Server, is a challenge. The process is nowhere as easy as migrating a file server or preproduction sandbox. Processes and practices that may work well for some applications can cause serious heartburn, performance problems, and worse – instability – when virtualizing SQL Servers. VM administrators need to be aware of the differences, and this book delivers this knowledge and experience in droves.

This book is targeted at VMware administrators and not directly to SQL Server DBAs. Many technical references are made to infrastructure components that most DBAs have had no exposure to (and arguably should not have to worry about unless they are a nerd like me). However, DBAs should still read the book to get a small taste of what it takes to architect and manage the virtualized environment underneath their data. The knowledge of these layers is guaranteed to make them better DBAs, and will help both organizational silos speak the same language during architecture and triage situations.

The author’s collective experience in managing these systems is quite apparent as you progress through the book. Many how-to’s and gotchya’s are described in detail. All are scenarios that I encounter frequently during my normal day in consulting around this topic. The advice presented is well thought out and shows the depth of the authors’ experience in the field.

The best part of the book is that the authors spend a great deal of time educating VMware administrators on what SQL Server is and how it uses the infrastructure underneath it as it stores and retrieves data to fulfill its requests. The authors’ style is very casual and informative, and makes each concept and topic very easy to understand and digest. For example, DBAs understand SQL Server high availability and disaster recovery. So do VM administrators. But, the two strategies are usually very different, and one group does not know the capabilities of the other technologies and how they contrast or complement each other. When you put them together, what works for one might not work for the other, and the arguments generally ensue. The authors educate the VMware administrator on how SQL Server handles high availability and disaster recovery, and suggests VMware-based processes and practices that complement and improve what SQL Server handles well, all while leveraging the right technology for each layer of the stack.

I feel that the real “meat” of the book comes in two sections – chapters five to nine and ten to eleven. The first group describes each layer of the virtualized infrastructure and breaks down architectural, performance, and configuration tips on why (and not just how) specific recommendations and architectural decisions are usually best for SQL Server on VMware.

The last two chapters do a fantastic job describing the end-to-end baselining and benchmarking process that are so frequently absent in most environments, both physical and virtual. This process helps eliminate the “it’s slow” mentality that comes from subjectivity, and replaces it with a series of objective processes for putting performance metrics to each of these layers. These metrics are key for both helping to identify the root layer of performance issues if they arise, and also eliminates the finger pointing that accompanies the “it’s your fault until you can prove otherwise” attitudes that are found in any organization.

No tech book is without its flaws, and a handful of items caught my attention while reading and re-reading this book.

The authors make a claim that CPU and memory hot-add should be enabled. I personally feel that it’s not quite as black-and-white as this. Hot-add of resources in a guest is a great feature, but hot-add also disabled virtual NUMA presentation to the VM. Correctly-sized virtual NUMA and SQL Server can improve performance, and hot-add of resources expressly disables virtual NUMA. I’ve implemented both, based on need, and I would like to see a broader discussion on the pros and cons of this setting.

Next comes the recommendation for one dedicated physical CPU core for each virtual CPU core. In my experience, it’s a great place to start, but it’s almost always too conservative and ends up “wasting” CPU time that you pay for in the form of SQL Server core-based licensing. I’d like to see this conversation include a discussion of using CPU Ready and Co-Stop times as a more objective metric for CPU overcommitment.

The jump straight into the discussion around hyper-converged architectures, in this case Nutanix, felt abrupt. Preceding this chapter should have been a short chapter comparing and contrasting the differences between rack servers, blade servers, and hyper-converged architectures. A solid discussion of how SQL Server is architected differently on each of these platforms, and the implications on performance, availability, and scalability would be a welcomed segue into the discussion on the emerging field of hyper-converged environments.

As with any first edition book, a handful of technical inaccuracies and academic practices are present, but I feel that none detract from the true mission of the book – to educate VMware administrators on virtualizing SQL Server. Items such as references for a SQL Server data file per vCPU core or data file placement sound good in theory but in practice can be tough to manage as an environment scales. I feel confident that the authors will correct the items that have been pointed out by myself and others in the next version of the book.

Some of the new features included in the recent launch of vSphere 6.0, well after the release of this book, changes some of the recommendations made in the book. I know that this release will contribute to some changes in the next version of the book as well.

To summarize, I recommend this book without hesitation to any VMware administrator who has, or needs to, virtualized business critical applications – and not just SQL Server. I give it 4.5 out of 5 stars, and look forward to seeing more from these authors in the future!



Feb 182015

vExpert-2015-BadgeVMware has announced the list of 2015 recipients of the vExpert award, and I am humbled and honored to have been selected to be part of this group for the third year in a row. This year the list has grown to 1,039 people!

The VMware vExpert community is quite strong and is a great example of how a community recognition program can be executed. Microsoft’s MVP program is also a great program to recognize community involvement, and I’m very proud to be an MVP as well.

Special thanks go to Corey Romero for all of his great work in managing this wild group of technologists!

If you are interested in applying to the program, the application for the second half of the year is open. If you know someone who you feel should be nominated for this award, recommend someone here.

Congrats to all of the new 2015 vExperts and to those who were renewed! I look forward to constantly keeping up with your fantastic contributions to the community.