Building a low power file server

Joined
May 22, 2006
Messages
3,270
I've got a trio of Seagate 7200.10 SATA drives that I want to build a low power file server around. I'll be using Debian

As of now, I've been looking at getting a Pentium M 730 CPU (runs at 27W) with the following MSI motherboard.

http://www.msicomputer.com/product/p_spec.asp?model=915GM_Speedster-FA4R&class=mb

I'll then use a pair of 5400RPM IDE drives to use in RAID 1 for the OS and the 3x500GB drives in RAID 5.

Are there better alternatives out there? My biggest priorities are to keep power consumption to a minimum without spending a fortune on hardware.

Ideally I'd like to limit the cost of the CPU, mobo, and memory to $200 or less.
 
For your budget, a RAID 5 server will give very limited performance as you will be only limited to onboard software RAID 5.

I suggest you use the RAID 1 for the OS and the remaining 3 HD as separate storage drives w/o raid. Most low profile cases have a small PSU that is not designed for 24/7 operation, you may also want to check on that first.
 
You can always get the Terminator C3 (runs at 11w) on the egg for $75 and perhaps add in a 3 in 2 drive cooler so you can put 5 drives in there :)


Ditch the RAID 1 on the main system drives, just run the drives all single, for such a budget and such a setup, you want to get all you can out of your storage.
 
I want to run RAID 5 on my 3x500GB drives to prevent data loss. I backup as much as I can to my HTPC but I'd rather not lose anything to a hard drive failure on the file server.

And I'm not concerned about the software RAID so long as it can sustain 30MB/s transfer rates over my Gb ethernet.

I've ordered a Pentium M 730 which I'll underclock to save power, an MSI mobo with 4 onboard SATA ports and video onboard, and a single 512MB stick of DDR333.

I probably will forgoe the RAID 1 for the OS drives simply because I don't have the spare IDE drives to do it.
 
Software RAID will not sustain 30MB/s under any circumstance. You are looking at speed that is much lower than 10MB/s with heavy CPU hit. Also, recovery using software RAID 5 solution is very slow and problematic. The majority of the forum users here will recommend that you stay away from Software RAID 5 altogether
 
can u do Raid 1 on the onboard IDE connector?

btw, how big will ur OS file be? if its small, u might wanna get a IDE-Dual CF adapter and use 2 x 2GB CF cards for OS to reduce power consumption
 
Software RAID will not sustain 30MB/s under any circumstance. You are looking at speed that is much lower than 10MB/s with heavy CPU hit. Also, recovery using software RAID 5 solution is very slow and problematic. The majority of the forum users here will recommend that you stay away from Software RAID 5 altogether
software raid can easly do 30 mb/s , i used to have 7 disk raid 5 array using geom software raid 5 and it could write files at over 40mb/s and read even faster
 
Speed is the biggest reason I'm building this thing.

Right now my 3x500GB drives are installed in my VMWare server through the Dell 2610SA SATA card in RAID 5. I've formatted them with VMFS and given them to a virtual machine to share and the best speed I can get over my Gb network is 10MB/s. VMWare just isn't good at I/O speeds for file sharing.

Other PCs sharing back and forth can get 30MB/s or higher.

Unless I'm missing something with VMWare, I think I need to have a separate machine sharing files. If Linux and FreeNAS software RAID 5 can sustain 30MB/s over my network, I'll happily go that route.
 
I was planning on turning my old Pentium M desktop into a media server soon enough. The nice thing is that you can activate speedstep through NHC and undervolt it so to uses less power. I don't know if there's a similar way to control the Pentium M in Linux though.

Anyway if you can figure a way to undervolt and run speedstep in Linux; you should look into a software based fan control as well. When the processor is idling at it's lowest multiplyer it doesn't need any active cooling. If you plan on keeping the server on 24/7 it would keep it cleaner and quieter. Not to mention saving a little money on the electric bill.
 
I was planning on turning my old Pentium M desktop into a media server soon enough. The nice thing is that you can activate speedstep through NHC and undervolt it so to uses less power. I don't know if there's a similar way to control the Pentium M in Linux though.
http://gentoo-wiki.com/HOWTO_Undervolt_a_Pentium_M_CPU
Not to mention saving a little money on the electric bill.
Sure, but I'm not sure there's all that much room for improvement - P-Ms clock down while idle, and can go as low as 7 watts. And if you're loading it more, it will draw more power and there's not much you can do about that.
 
Software RAID will not sustain 30MB/s under any circumstance. You are looking at speed that is much lower than 10MB/s with heavy CPU hit.

I'm using a four disk software RAID-5 in Linux right now that gets 105 MB/sec writes in real-world use (not a benchmark). CPU usage for the parity calcs fluctuates between 7 and 10 percent on a Core2Duo 6400.

Child of Wonder said:
If Linux and FreeNAS software RAID 5 can sustain 30MB/s over my network, I'll happily go that route.

I believe you won't have any performance issues with a P-M based file server. You should be aware, though, that while a new, dedicated file server will definitely beat the speed of the virtual machines, it most likely won't help the other network hosts. 30MB/sec or so seems to be a typical transfer rate for Windows boxes over Gigabit.
 
My Linux boxes can reach 45 MB/sec with Samba shares mounted with the SMB kernel driver (CIFS is about the same). That is like the light speed barrier for Samba file sharing on my network; no matter what I do, I can't go any faster.
 
My Linux boxes can reach 45 MB/sec with Samba shares mounted with the SMB kernel driver (CIFS is about the same). That is like the light speed barrier for Samba file sharing on my network; no matter what I do, I can't go any faster.

Cool. Now that gives me something to shoot for with a new Linux server I'm building.

So Child of Wonder, how did things work out with the server?
 
30MB/sec or so seems to be a typical transfer rate for Windows boxes over Gigabit.

That's a typical single drive figure -- single drive to single drive. In some cases, you can do much better under Windows. (Using RAID, pushes more likely than pulls; pushes to 2003 or later OSs more likely than XP/2000). In fewer cases, you can practically saturate gigabit using Windows file transfers (Vista to Vista, RAID to RAID, /bugs = off).
 
Disk limitations are obvious, and that's not what I'm talking about. Something about the CIFS protocol, or its implementation in Samba, limits the transfer rate. I can saturate my gigabit network with 80++ MB/sec netcat transfers, for example, but Samba transfers never approach that level of performance for some reason. And we are discussing Samba transfers specifically because the OP stated he is using Debian.
 
Disk limitations are obvious, and that's not what I'm talking about. Something about the CIFS protocol, or its implementation in Samba, limits the transfer rate. I can saturate my gigabit network with 80++ MB/sec netcat transfers, for example, but Samba transfers never approach that level of performance for some reason. And we are discussing Samba transfers specifically because the OP stated he is using Debian.

I guess I don't understand your earlier statement then:

30MB/sec or so seems to be a typical transfer rate for Windows boxes over Gigabit.

By "Samba" do you include Windows SMB transfers? Because that's what I was talking about.
 
My file server is built and is just waiting for the SATA drives from my VMWare server to be transplanted into it.

Again, my biggest reason behind making this box is because my VMWare ESX server only seems capable of copying at 10MB/s while my Windows boxes can all talk at 30MB/s or more.

I'll be setting this box up using Debian 4.0.

I should have this thing file serving in the next couple days (I'm also working hard on finishing my basement).

I'm going with software RAID 5 and will see how that runs. If it can give me the speeds I want (30MB/s) then I'll be selling my 2610SA.

Once it's running I'll post performance stats and power usage.
 
By "Samba" do you include Windows SMB transfers? Because that's what I was talking about.

I was referring to transfers where one of the hosts is running Samba. I don't have any good numbers for Windows -> Windows with "consumer grade" hardware, as my home network has only one Windows box to test with. The 30 MB/sec figure I stated is anecdotal, based on some other postings I've seen here and other places on the Internet, and experience with my own network. When the OP mentioned his transfers of 30 MB/sec, I was struck by how that agreed with a lot of what I've heard elsewhere.

Child of Wonder said:
Once it's running I'll post performance stats and power usage.

Please do. I think a lot of people here are interested.
 
fyi just using hdparm on my software 4 disk raid 5 gives me about 100-130MB/sec. I'll get some system to system transfer numbers when I get home. I'm also getting another 500gb WD re2 to add to the mix, and should have that installed in a day or two, and will see how another drive changes my speed.
 
Why not run the OS itself on a flash drive? I'm running a Smoothwall router box that way. Is there a problem with performance on a fileserver doing this? I'm sure you'll save some juice doing this...
 
Software RAID will not sustain 30MB/s under any circumstance. You are looking at speed that is much lower than 10MB/s with heavy CPU hit. Also, recovery using software RAID 5 solution is very slow and problematic. The majority of the forum users here will recommend that you stay away from Software RAID 5 altogether

No, this is no longer true. With write caching and/or good disk count + stripe size matching, you can get very good sequential write performance with on-board / software RAID 5 these days. You could see the following thread and its links for more on this topic: http://forums.storagereview.net/index.php?showtopic=25786

E.g. from my logs -- a transfer from Vista to XP-64, 3-drive nVIDIA RAID 5 to 3-drive Intel RAID 5, both using 32k stripes.

E:\tools>dir n:\test\test0\10.gb
Volume in drive N is nvr533264
Volume Serial Number is BC8B-9694

Directory of n:\test\test0

08/24/2006 06:01 PM 10,000,000,000 10.gb
1 File(s) 10,000,000,000 bytes
0 Dir(s) 557,842,694,144 bytes free

E:\tools>time 0<nul
The current time is: 23:22:42.11
Enter the new time:
E:\tools>xcopy /y n:\test\test0\10.gb \\intel-xp64\n\test\test9\
N:\test\test0\10.gb
1 File(s) copied

E:\tools>time 0<nul
The current time is: 23:24:08.88

That's 10 GB / 86.77s =~ 115 MB/s.
 
Update:

I found a 2GB flash drive for $7 so I'll be using that as my OS drive.

I don't think I mentioned before but my CPU is also using passive cooling and I'm planning on underclocking the Pentium M 730 down to 800MHz and around 1.0V if it can handle it.
 
No, this is no longer true. With write caching and/or good disk count + stripe size matching, you can get very good sequential write performance with on-board / software RAID 5 these days.

Agreed. While not necessarily as tweaked as Madwand's setup, my transfer from desktop to server (gigabit networking (computer to computer, no intermediary hardware), single WD Raptor to 8-drive software RAID5) sustains more than 30MBytes/s.

Desktop: tar -cv sourcedir/ | nc -q 0 [serverIP] 2342
Server: time nc -lp 2342 | tar -C destdir/ -xvf -
Time:
real 3m22.371s
user 0m2.488s
sys 1m12.601s

Files transferred totaled 7.1GBytes (mix of small text files and large video files), so that's an average of ~36MBytes/s for default stripes/non-jumbo frames. What's more, the CPU (1.9GHz AMD Brisbane) was barely struggling until I turned compression on, which slowed the transfer down anyway so I'm not gonna use it.
 
Quick update:

I hooked up the box to my Kill-A-Watt meter this morning and it draws 50 Watts at idle right now with the CPU at 1.6GHz.

Right now the system just has a 40GB IDE drive with Debian installed and a DVD-RW in it.

I installed powernowd while SSHed in this morning.

I'm anxious to see how the power usage is now that I have the CPU running at 800MHz, 1.0V and once I get the 2GB Flash drive installed with Debian.

I'm guessing 30 Watts plus the 3x500GB drives will be the final verdict.
 
You said 50W. Most PSU's at that power level start going back the other way on efficiency curve. I wouldn't be suprised if you are only getting 70% or less. The hard part of lower power systems with a typical PSU is bad efficiency :(
 
I'm anxious to see how the power usage is now that I have the CPU running at 800MHz, 1.0V and once I get the 2GB Flash drive installed with Debian.

If you keep the CPU at 800Mhz, you can lower the voltage even more. I keep my laptop's Pentium M at 800Mhz @ .732V. It's stable as a rock.
 
Maybe someday I'll splurge on an >80% PSU but right now the couple of watts it would save isn't worth it.

Right now it's pulling 44W after knocking the CPU down to 800MHz, 1.0V.

Any good undervolting guides for Debian Etch?
 
Most people can get down to 0.700v on the lowest multi with the Pentium M's.

My desktop is overclocked so that even at the lowest mulitplyer (6x) I'm running 960Mhz, (up from 600Mhz) perfectly stable with only 0.700v. I've tested that voltage and multiplyer up to 1Ghz stable it's just that at 15x (2.5Ghz) it needs more than stock voltage. It's crazy because @ 2.4Ghz (15x) it's happy with just 1.180v.

Of course YMMV because I'm using a Pentium M 715

I did a quick search and found these results for a PM 730 on a german site:

0,80 GHz 6x @ 0.732V
1,06 GHz 8x @ 0.796V
1,20 GHz 9x @ 0.844V
1,33 GHz 10x @ 0.908V
1,46 GHz 11x @ 0.972V
1,60 GHz 12x @ 1.036V

so it does look like you need to keep the Sonoma vcore a little higher @ each multi but that makes sense since theain the 7X0 is rated at
27W / 11W
and the 7X5 is rated at
21W / 8W
 
Got the USB flash drive today and installed Debian too it.

System idles at 36W.

However, I still need to find a way to undervolt the CPU a bit.

The only thing I've been able to find it linux-phc and recompiling the kernel but I'd rather not do that on a USB flash drive if I don't have to.

Does anyone know of any good undervolting guides for Debian 4.0?
 
System idles at 36W.

However, I still need to find a way to undervolt the CPU a bit.
I'm running Debian lenny on my laptop, and it underclocks, although I'm not sure it undervolts it as well, it by default. Run 'cat /proc/cpuinfo' to see.

My machine reports that it draws about 13 watts.
The only thing I've been able to find it linux-phc and recompiling the kernel but I'd rather not do that on a USB flash drive if I don't have to.
Are you running a live version, or is the root filesystem directly on the disk? I'm running Debian from flash as well, using "live-helper" to build a squashfs to both fit more data and prevent wear on the flash drive. It's rather slick, and it doesn't take much work to get it to work. Run "lh_clean" to get rid of temporary files before you try to build the second time - I had a hard time figuring that out.
 
There should be a daemon alternative to get the system to lower the voltage to the CPU. I'm just not aware of one.

I'm running the root filesystem encrypted off the flash drive without swap and all logs, etc. written to tmpfs.
 
There should be a daemon alternative to get the system to lower the voltage to the CPU. I'm just not aware of one.
I don't see why. The kernel is the only thing allowed to interact directly with the hardware, so one needs a kernel module to perform the "change CPU state" operation.

Recompiling a kernel isn't all that difficult. Download and unpack vanilla sources (and patch them with linux-phc), copy /boot/config-* to .config, run "make oldconfig", run "make", run "make modules_install". At this point everything is built, and we just have to put it where GRUB will find it next time you boot. "cp arch/i386/boot/bzImage /boot/vmlinuz-mykernel", then run "mkinitramfs -o /boot/initrd.img-mykernel <My Kernel Version>". Copy .config to /boot/config-mykernel so you'll have it if you need it later. Finally, edit /boot/grub/menu.lst and add an entry like the other ones except with the proper kernel name and initrd name.
I'm running the root filesystem encrypted off the flash drive without swap and all logs, etc. written to tmpfs.
Okay, that works. I was just wondering how you went about it.
 
Back
Top