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.
Early in my career, I knew a UNIX admin that liked to tell me "vi is your friend". I eventually came to believe that statement and although I rarely use vi anymore, I still think that vi is my friend.
This brings me to some of my best friends today: Google and Wikipedia.
Google is often my best friend: anytime something doesn't work (stupid anti-virus) and I'm just staring at a cryptic error message, I type it into Google and, in my experience, 95%+ I get lots of hits. I may not find the exact answer that I need to solve the problem, but I'll get lots of useful information that puts me on the right path to fixing the issue. The premise behind this for me is that there is no way I'm the only one that has ever dealt with this issue. And, as has been proven time and time again when I do this, I'm right.
One important resource that many people who also use Google for this purpose miss out on though is Google groups. Google groups is an indexed collection of the former Usenet bulletin boards. If I don't find my answer via the Google web search, the group search often does the trick.
Wikipedia is also another great friend to have when you want to know about something, anything, everything. The reference material on Wikipedia is nearly endless; it’s always a great starting point to learn about a topic.
One of the keys, IMHO, to being a good system administrator and system troubleshooter is not necessarily knowing all of, or even most of the answers, its knowing where and how to find the answers.
As an administrator of a lot of Windows systems, I can get by with using all of the built-in tools. There's very little that I cannot do using them. However, there are a lot of third-party tools that I like to use to make my job easier. Here's a list and the benefits that they provide me.
- RunIT - This little tool is a very simple application launcher. I put a shortcut to it in my start up group so that it runs every time I log in. Additionally, I set the shortcut to run with alternate credentials and then use my admin account to launch it. This way, anything that I launch using RunIT, launches with my admin credentials. This is similar to what a lot of Unix admins do by opening a second command shell and then su-ing to root. Now when I want to hop into ADUC using my admin credentials, I simply hit F4, type AD and there it is. This definatley makes running as a normal user (a security must) much easier to deal with.
- xplorer² - This is a dual pane file management tool. Lots of great features and functions that Windows Explorer just cannot match.
- ADVrunas - This small tool replaces the built-in RunAs dialog box with one that remembers who you last ran a program as. It also allows you to create shortcuts that automatically run as another user without prompting for a password, and it adds a small line of text to title bar of most windows indicating which user account ran the program. This last feature is great when you start opening a lot of different windows, some with admin privileges, some without.
- PromptPal - This is an alternate command line with a tabbed interface that allows easy cut/copy/paste as well as command favorites and command completion.
- ClipMate - An excellent ClipBoard utility that has way too many features to list. By far the best supplemental clipboard utility out there.
- SnagIt - The best screen capture utility. Also includes way too many features to list. Easy to use and configure, includes an graphic editor that allows you to easily add callouts, arrows, highlights, circles, etc.
- PrimalScript - A code script editor. Will handle any kind of script that you can throw at it and includes great debugging abilities as well. If you're an occasional or heavy script writer, this one is a must.
- Terminals - This little gem is a tabbed RDP/Remote Desktop/Terminal Services client. A little bit like the older MMC based Terminal Services client, but much better for usability. It allows groupings, favorites, and password caching. Great for when you have more than session open and need to switch back and forth quickly.
Of all the tools above, only RunIT and Terminals are free, but they are all (IMHO) well worth the small amount that I paid for them.