What hardware combination should I consider for a 20TB file server?
Interesting project. You need to nail down your requirements and your budget, and that will help you nail down what hardware you need for your design.
Step back from the "1TB drive" decision for the moment; a year or two from now that will seem rather limited. Also consider how badly you want the ability to use 20 drives in this system -- that's a lot of power. The number of spindles your plan calls for will impact your case and power supply choices.
20 SATA connections will be tough to find on a single controller, but there are some options. You can get motherboards that provide 6 or 8 SATA ports, then add PCIe SATA controllers for another 6 or 8 SATA ports per card.
The other option is to use a special port multiplier backplane to turn one SATA port into many. Read through the Backblaze pod architecture that Journeyman Geek's answer links to for an example use. They caution that SATA port multiplication can be tricky, and that their solution works well because they use Silicon Image chipsets on both the backplane and the PCIe cards.
SAN is one tech design; NAS is another. In a nutshell, NAS provides file sharing; SAN provides block storage (see SAN vs NAS for some of the gory details). From a computer's point of view, NAS provides file shares across (your existing) network, while SAN provides hard disks across (a separate) network. See the difference? The computer can't partition or reformat a NAS share, but SAN storage acts just like local drives.
SAN equipment is typically very expensive because they use enterprise-level components -- 10k or 15k RPM drives, using superfast Fibre Channel or SAS interconnects. Building your own SAN is not for the faint of heart, and probably not a good starter project for someone new to computer hardware.
On the other hand, building a NAS-style server can be done on the cheap, with consumer-grade equipment, and will be a good introduction to system building.
Yeah, no. Just don't. USB isn't a real solution here. A USB bus can handle that many devices connected, but performance will crawl if you try to access more than one or two drives at a time. If you want to play around with the laptop and a couple of USB drives, just to try setting up a very basic network file server, feel free -- I guarantee you'll learn something. But that's completely different project than the project you've outlined above.
Well this is a LITTLE bigger than what you want, but the design/architecture, on the hardware side would be close to what you need. Finding a 20 drive, or even a 15 drive case is gonna be tricky though
1 TB drives are pretty much history when it comes to mass storage (and i mean MASS storage :), 1.5 TB is currently the sweet sport for cost per GB and 2 TB drives aren't too far off either.
Get yourself some rack-mounting enclosures (like the one below, it can hold 5 3.5" HDDs), you can populate them as your collection grows.
if you prefer good looks
and here's a (industrial) Rackmount Chassis for 20x hot-swappable SATA drives ($350):
Here's an excellent illustrated review at WeGotServed.com that you may find helpful.
This solves the problem finding a "motherboard with "20 SATA connections" (the transfer rate up to 6 G will certainly suffice :) and you can connect them to any regular computer you wish to use as your Home/NAS server.