Storage
The biggest issue you'll run into is free space. How do you continue to grow the storage space easily. The other issues is how do you support redundancy. After all you wouldn't want terabytes of files to simply disappear, especially after going through the trouble of getting the files on there. So now you're looking into raid, but raid controllers have some issues. First they are extremely expensive especially when you're talking about 8+ SATA ports. Secondly, increasing storage space is a real PITA. They usually require a rebuild of the entire array and if you have 5-6 terabytes, plan for a vacation while it's rebuilding. But forget how long it takes, did I mention how freaking expensive the controllers are?
The solution for all these problems is called unRAID.
* Any combination of IDE and SATA hard drives may be used.
* All the hard drives do not need to be the same size or speed.
* Hard drives not being accessed may be spun down.
* Can rebuild any single failed hard drive.
For $119 bucks you get the Pro version which supports up to 20 drives. You can get the free version which supports up to 3-4 drives so you can test it out.
unRAID basically gets copied onto a USB flash drive (I recommend a fast flash drive for quick boot-ups, though it will always be up anyways). While it's Linux based, don't worry it's extremely easy to use as it's all self contained. The most you'll ever really do is maybe modify some config files if you're installing any of the community addons. The way it works is that 1 drive is set as a parity drive (it needs to be as big as the largest drive) The rest of the drives are data drives (can be different sizes). You can have something called a cache drive, but I don't really use one. The parity mechanism is fairly simple, but I won't get into the details (just look on their wiki). I'll just tell you what matters. If you lose the parity drive, you just replace it and rebuild the parity info. If you lose a data drive, you replace it and rebuild the data based using the parity and the data on the drives. If you lose more than 1 drive, well all is not lost like in standard raid. You see the files are actually stored whole on the drives and are simply spread across the multiple drives. So if you lost more than 1 drive, while it won't be able to rebuild it, you will still have the data that is on the other drives. So for example if you were storing movies, you would only lose the movies on the dead drives. It has a configuration for the shares where you can basically tell it to spread the folders (in this example the folders are the names of the movies) across the drives, but keep all the files within that folder together. In the end what you'll have is a NAS that is exposing shares for your media (movies, music, pictures, television, etc...)
As for the addons, the community is pretty good. They have some nice web interfaces that they are working on. There are notifications scripts that will email you if there is a problem with a drive and health of the drives. I get a health report once a day.
This is a SS of one of the custom web interfaces that someone created. The unRAID team is working on an API to make it easier, but without it people have still put together some nice stuff.

From the front you can see the cages that use 120mm fans (very quiet). Each cage can hold 4 drives each.


Here is the front with the bezel on. The 5.25 plates in the front bezel are all perforated and have some cheap filter material, but it definitely keeps the air flowing.

HTPC Software
For the HTPC, the main issue is of course how to play the media from the server on your TV. Well for the OS I just installed Vista and configured it to autologon.
Media Player - XBMC
As for the media software I'm using something called XBMC.

It's a 3rd party media center that was created back in the days of the original xbox (well a hacked one that is). Since then they've ported it to Windows, Linux, and Mac to run as a standalone media center. Let me tell you it runs awesome. The thing can play anything you throw at it except for an actual Bluray disc as there aren't any open source Bluray C++ libraries available yet, but I believe people have it opening using a commercial software Bluray player for windows. I have a standalone BD player so it's a none issue for me.
One of the best features is the built in web scraper engine. Basically it can scrape sites like IMDB, Amazon, TVDB, etc... to pull down movie info (plot, actors, etc...), thumbnails, fan art, etc...which it stores in its libraries. This way when you are scanning your movie/tv library, you can see poster images as you go through the lists.



Another nice thing is that you don't have to worry about organizing your media too much as it has a library mode which lets you list movies by title, genre, actor, etc... It does treat Movies and Television differently since television shows have episodes. It even has a built-in screen saver that uses the fan art that it's downloaded.
You'll have to check out some of the sample screen shots so you can see how it nice it really looks. They have shots of the home screen, listing 24 and Soprano episodes, music albums, weather, browsing movies using the artwork, etc...
http://www.flickr.com/photos/29133065@N05/
HTPC Hardware
The actual HTPC is very simple. I just have a motherboard with CPU,F/HS,Memory and a hard drive with Vista installed. I didn't bother with a DVD/Bluray as I have no need for one. If I do, I can just plug a USB DVD or just share own over the network. The Motherboard has onboard NVidia with an HDMI output that goes into my AV receiver.


Media
As for getting media onto the unRAID server, well there are various options. One that I can recommend is using AnyDVD + CloneDVD to deal with getting the DVD files on disk as either an ISO or VOB. When you rip them you do not want to compress them any further. You want to rip them 100%. Then you have a couple options. You can either keep the mpeg2 versions just as they are and copy them over to the unRAID server or you can use something like Handbrake which can create mpeg4 versions which take up less than half the space of the original DVD format. It's basically a space vs. time issue. Ripping the DVD only takes like 4-5 minutes, but converting it to mpeg4 takes another 4-5 hours. While Handbrake can convert straight from the DVD, because of the amount of time it takes its recommended to rip it first, otherwise you're putting a lot of strain on the DVD drive for 4-5 hours. I've tested various conversion software and Handbrake is by far the easiest to use and is well documented. It's also free. One thing you can do is rip several DVDs and then you can queue up to conversion for each one. So for example, rip 4-5 DVDs and you have 24 hours worth of conversion that you can schedule. I have a seperate Windows server where I can do this from. Otherwise, just use your desktop and convert while you're sleeping.