Jag har viss erfarenhet av hemmabyggda filservrar och även långsammare NAS.
Jag har en Linksys NSLU2 NAS med USB-hårddisk ansluten (hårddisken är en extern 2,5-tums 250 GB Western Digital Passport). Denna NAS inklusive hårddisk drar mellan 6W och 9 W från vägguttaget (mätt med billig energimätare från Clas Ohlson). Denna ger väl max 5 MB/s i överföringshastighet på det lokala nätverket men jag har den för att säkerhetskopiera filer över internet och den klarar utan problem att maxa vår internetuppkoppling så den räcker ju till för internetkommunikation. Vi använder den för backup och då backupen endast skickar över förändrade filer så blir det inte så stor flaskhals ändå när väl första säkerhetskopian är gjord. Förutom nätverksanslutningen på endast 100 Mbit/s på denna NAS så begränsas hastigheten ytterligare av långsam processor och mycket begränsat minne.
Jag har byggt en filserver av gammal hårdvara. Den bestod av en AMD AthlonXP 2400+ CPU, 512 MB RAM, PCI gigabit nätverkskort och PCI SATA-kontroller. Den körde Linux, Ubuntu server. Hastigheterna på lokala nätverket begränsas här av att nätverk och hårddiskar delar på PCI-bandbredden. Jag körde mjukvarubaserad RAID5 och fick överföringshastighet på ca 35 MB/s med Windows Vista klient och ca 25 MB/s i WindowsXP. Detta är ju ganska OK. Med 5 stycken gamla hårddiskar i servern var strömförbrukningen ca140 W för hela datorn. Grafikkortet var ett gammalt ATI All in Wonder Radeon AGP, men grafiken utnyttjas ändå inte på en server vid drift men är bra när man konfigurerar bios och installerar OS...
Jag har nu byggt en ny server med ett AM2+ moderkort med inbyggd grafik, AMD Athlon X2 4850e och 4 GB RAM. Nu får jag hastigheter uppåt 90 MB/s (Windows Vista klient) och ca hälften med Windows XP klient. Jag kör OpenSolaris som OS på den servern. Här är SATA-diskarna anslutna till moderkortets kontroller och nätverkskortet är anslutet till PCIExpress. Så här är bandbredden på bussarna inte begränsande utan det är gigabitnätverket som sätter gränserna. Flaskhalsen kan ju vara även i klientdatorn (långsamma hårddiskar t.ex.). Nya servern har 7 stycken hårddiskar varav 2 stycken äldre samsung 250GB och 5 stycken WD green power. Tack vare att green power diskarna är strömsnåla och att jag underklockat och undervoltat processorn till 2000 MHz@1,00 Volt så drar hela servern ca 86 Watt i vila och uppemot 113 W vid filöverföringar. Moderkortet har inbyggd grafik men jag använder bara grafiken när jag måste ändra i bios eller installera OS.
Mer info om serverbygget finns i tråden om Opensolaris 2008.11 i Linuxforumet. Operativsystemet har mindre betydelse för prestandan tror jag utan det mesta är hårdvaran som står för begränsningarna.
Svar på frågor då.
1) Jag har ett 400W nätagg och det räcker och blir över. 200 W nätagg skulle nog räcka för min server som ju har strömsnåla hårddiskar. Så nej, om man inte har extremt många hårddiskar så krävs inget extremt nätagg. Men köp 80+ certifierat så sparar du litegrann på strömförbrukningen.
2) Jag valde ett moderkort med ganska många SATA-anslutningar och som är relativt strömsnålt i vila. Jag ville också ha många anslutningsmöjligheter för expansionskort så jag valde ATX-kort. Valet av moderkort kan vara viktigt för kompabilitet med visst operativsystem, som i mitt fall då jag kör opensolaris som är ganska ovanligt OS för hemmabruk. Inbyggd grafik är bra på en server eftersom det är energisnålt och ändå sällan används.
3) Jag märkte viss skillnad i överföringshastighet beroende på hur mycket jag nerklockade CPUn, men typ 1400 MHz dual core gav ändå uppåt 80 MB/s medans 2000 MHz och högre gav uppåt 90 MB/s vid filkopiering trill/från servern. I mitt fall blev servern stabilare med högre CPU-hastighet så för mitt bruk var 2000 MHz klock rätt lagom (som standard går den i 2500 MHz). Men min AMD4850e verkar räcka till och den kostade ändå bara 600 kr så man behöver ingen värsting-CPU för enbart filserver. Men om du kör massa annat också kan man förstås behöva mera. Tycker det är viktigare att välja strömsnål CPU om servern alltid ska vara igång.
4) Ledigt minne används till filcache. Jag hade en hel del ledigt minne även på Linuxservern med 512 MB RAM så minnesbehovet beror väl på vilka tjänster man kör och hur krävande OS man kör. Ska man virtualisera flera olika operativsystem samtidigt går det åt mera förstås. Minne är billigt så köp minst 2 GB så ska det räcka och bli över. Själv jobbar jag med stora videofiler på flera GB så jag köpte 4 GB RAM, men vet inte om det behövs egentligen.
5) Jag hade problem med stabiliteten när jag använde det inbyggda realtek-nätverkskortet. Hade tidigare problem med realtek-kort även på Linuxservern. Men jag har bytt mina nätverkskort mot intel gigabitkort vilket funkar bra. För bästa prestanda bör man ha PCI Express på nätverkskortet om det finns anslutning till detta på moderkortet förstås. Bör väl finnas inbyggda nätverkskort som funkar OK också, men med realtek fick jag problem och många moderkort kör ju med realtek nätverk.
Ett kort räcker väl om inte servern ska agera router eller om man vill få bättre hastigheter med multilänk-anslutning. Men gigabitnät ger ju ändå uppåt 100 MB/s vid filöverföringer vilket oftast räcker för hemmabruk tycker jag.
6) Eftersom man oftast har en NAS för lagring av filer så är det inte så noga med accesstider tycker jag. Däremot om man har någon stor databas i servern med massor av användare så kan det bli viktigare (och det brukar man inte ha på en NAS). Ska man maxa gigabitnätverk så behövs 120 MB/s i sekventiell läs och skrivhastighet i teorin. Själv har jag 5400 rpm diskar för att de är strömsnåla och hastigheten får jag upp tack vare att jag kör dem i RAIDZ, vilket är ungefär samma sak som RAID5. Vill man ha mycket lagringsutrymme så är det SATA-diskar som gäller. Nya moderkort har ju oftast bara en IDE-kontakt numera, men desto flera SATA. IDE-diskar är OK också tycker jag. USB-diskar är lite för långsamma tycker jag om man bygger en modern server, men på en gammal skrotserver kan det ju duga eftersom hastigheterna ändå begränsas av annat. Man kan köpa kontrollerkort om man saknar SATA-anslutningar.
Ytterligare en sak att nämna är att jag har märkt att om man kör Windows Vista på klientdatorn (alltså den man ansluter mot servern) så får jag bättre hastigheter vid filöverföringarna jämfört mot Windows XP eller Linux med samba som klient. Anledningen lär ska vara automatiska optimeringar i smbklienten så att gigabitnätverk utnyttjas bättre.
Länk till hårdvaran i mitt "NAS-bygge" nedan. Utöver dessa grejer hade jag två gamla hårddiskar som jag kör operativsystemet på och en DVD-enhet för att installera från.
http://prisjakt.nu/minsida.php?a=ronnylov&j=537121
Kostade mig ca 9000 kr inklusive hårddiskarna vilket gav 4 TB nätverkslagring med redundans (gör inget om en hårddisk går sönder).
Fördelen med hemmabygget är att man kan få hyffsad prestanda till en billig peng. Man får inte glömma nackdelen heller med en filserver. Det är rätt mycket jobb med att bygga ihop, installera, konfigurera och administrera och det kan vara svårt att få den strömsnål. Men gillar man att pyssla med datorer så kan det ju ses som en fördel, man får ju pilla lite...
Ett tips kan ju vara att testa lite med en gammal dator först och om det visar sig duga så kan man köra vidare med den. Man lär sig en del om hur det funkar också, särskilt om man tänkt pilla med operativsystem man inte använt innan.