I visited a customer once who felt that creating partitions ended up creating problems; he felt that limiting the C drive to a specific size would eventually lead to the C drive running out of space. Thus, most of his servers had 200 GB+ C drives and no other partitions. To me, this is definitely the wrong answer. His problem wasn’t that his C drive wasn’t big enough; it was that he had no control over his servers, what was on them, and where it was placed.
Creating separate partitions requires some planning, but that’s a good thing — too many folks just stick the CD in and go. Separating data types on different drives adds a layer of fault tolerance and allows you to easily manage those different types of data differently via permissions, quotas, backup policies, etc. It also allows you to distribute the workload between different disk spindles which will result in performance gains.This leads to the obvious question, what is the best practice for drive partitioning? As usual, best practices are subjective and are meant to be flexible depending on the exact situation but here are my general rules:
1. Create partitions at the hardware level. Use the built-in array tools, like HP’s ACU, to create RAID sets and then carve those into containers that will be seen as physical drive partitions by Windows. This eliminates any ambiguity as to what partition is on what disks.
2. Create a minimal C drive (boot partition). Not much should actually go on this drive, just the OS and any minor support applications like the Windows Support tools. The partition should be large enough though to handle Windows Update uninstall files and of course Windows itself. Right now with Windows 2003 Server, I like 16GB as a C drive size. This gives plenty of overhead while also being relatively small.
3. Create a separate partition for the paging file. Paging files today are often 2-4GB, a significant chunk of 16GB. Creating a separate paging drive tidies things up and potentially increases performance. The maximum paging file size is 4096kb, so I generally create a partition of 8192kb (8GB). This prevents the partition from showing up on any low drive space reports. I then also use this as temp space (instead of the popular C:\temp) going as far as changing the system environment variables (%TMP% and %TEMP%) to use this partition.
4. Additional partitions for applications and data. Using mount points, these can actually be accessed via the C drive letter or they can be assigned a new drive letter.
To some, this may seem a bit of overkill, but if done up front with planning and consistency, is easy to accomplish and makes working with your systems that much easier.