Update 2012-12-11: It seems that a new and faster version is on the horizon.


Update 2012-12-21: Yes, the new model G7 N54L is out.


Some products seem almost too good to be true and I think the HP Proliant Microserver N40L is one of them. If you are into the market for a very small, silent, efficient, yet capable home server, please take this device into consideration. I picked this device up for 200 euro's which is a bargain in my opinion.

First, take a look. As you can determine from the size of the 5 1/4 inch bay, this device is really small. The fun thing is though, that behind that door is room for four 3.5 inch SATA hard drives.

hp1

So you can put four large SATA disks into this device. It is just ideal as a home NAS, without resorting to expensive QNAP or Synology devices, which may not give you the flexibility you want.

hp2

The on-board RAID controller only seems to support RAID 0 and RAID 1. If you want to make a NAS out of this device you want to go for RAID 5. So you have two options.

  1. Buy an additional hardware RAID controller that supports RAID 5;
  2. Use Linux or BSD software RAID and don't spend a dime.

Processor

It contains the AMD equivalent of Intel's Atom processor, the Turion II Neo N40L dual-core, which runs at 1.5 Ghz. This CPU is not fast, but it is energy efficient and it helps keeping the device silent and cheap.

Memory

The device contains just 2 GB of ECC RAM. Sufficient for most tasks, but you can crank it up to 8 GB. The fact that you get ECC RAM in this device is a real plus, making this device extra reliable.

Disks

By default, a 250 GB disks is included. How they do that for this money is something I don't get. This disk takes up one of the four drive bays.

Personally, I would not use the 5 1/4 slot for an optical drive, (who uses them anyway in a server), instead, I would look into a solution where you can put the stock drive into that space, to make room for an additional disk for file storage. Useful in case you are building a NAS.

You may even install additional 2.5" disks with solutions like this.

Expansion

The microserver has two half-height PCIe slots, one x16 and one x1. It has also an esata connector at the back, so you can connect an external disks for backups or something. There are two USB ports at the back, four at the front. I wish they put four at the back and two at the front.

details

See also this page.

Environment

The device is very economic, I estimate power consumption at about 25 watt when idle. I measured 35 watt through my UPS, but there where also two external disk drives and a network switch connected to the UPS.

Noise levels are also excelent. There are just two fans. One very large fan at the back, that just seem to cool the entire device. The second fan is housed inside the tiny power supply, but although it is small, the fan makes little noise. When it is idle, you don't hear this server running.

Compatibility

I was able to install Ubuntu 12.04 LTS out-of-the-box. Is running fine. I didn't test any other operating systems.

Reason for purchase

I wanted to replace my Linux router (an old Mac Mini) with a device that can house two disk drives, so I could implement RAID 1. I use it as a Router/Firewall. But I also run a website on it, some monitoring software, so that's why I didn't want to buy a regular Linksys or Zytel embedded router.

Although this server has only one network interface, I use VLAN tagging with a VLAN-capable switch, so this is not a problem. Otherwise, I would just add a second Gigabyte half-height PCIe NIC.

Final words

It's an ideal device for any computer enthousiast who wants more flexibility than a standard NAS or embedded router can offer. It's cheap, small, silent and power efficient. Those HP engineers who created this device should get a thumbs up.


Updated October 24, 2012, see below.


This post is a description of my home network setup based on gigabit ethernet. I did a non-standard trick with VLANs that may also be of interest to other people. I'm going to start with a diagram of the network. Just take a look (click to enlarge).

home network


Update:

I now have replaced my Mac Mini with a HP N40L router based on Ubuntu 12.04 LTS. This server is now placed in the basement. The managed netgear switch is swapped with the Airport extreme.

home network

Design

I have a Mac mini running Linux that acts as my internet router. The closet that houses the cable modem is not a friendly environment for such a device and there is not a good location for it. The closet is also outside of my house, behind a door not too well protected. So this is why I keep my router inside my house.

From this closet, one UTP cable terminates in the living room, the other in the basement. This configuration has a very big problem. How do I run two different networks over one wire?

I have to connect my iMac to my 'internal' home network. However, the Mac mini must be connected to both the internet network segment (connected to the cable modem) and the home network. All through a single UTP cable.

Therefore I use VLANs. I transport both the internet network and the local home network though one cable. VLAN 10 is for internet, VLAN 20 for my local home network. For this all to work you need managed switches that support 802.1q.

How traffic flows

So let's say that the server is accessing the internet to obtain the latest Linux security updates. How does this network traffic flow through the infrastructure (click to enlarge)?

network flow

All internet traffic must flow through the router. Thus, even if the traffic from the basement travels through the switch next to the cable modem, it must first travel to the router in the living room. There the router decides if the traffic is permitted to go out to the internet and thus enter the internet VLAN.

Pros and cons

Pros:

  • Just a single cable to the living room
  • no extra USB-based ethernet adapters required for the Mac mini
  • Mac mini resides in save and computer friendly environment

Cons:

  • Managed switches supporting VLANs are relatively expensive

I wrote an article about the subject of getting beyond the limits of gigabit network file transfers. My solution is to use multiple gigabit network cards and use Linux interface bonding to create virtual 2 gigabit network interfaces. The solution is to use mode 0 or round robin bonding. I do not use a switch although this also works fine. Instead, I just connected two cabled between the two machines.

In my original article, I couldn't get pas 150 MB/s file transfer speeds so the results weren't that great. However, these poor results were due to hardware compatibility issues. Although the on board network card worked fine, the intel e1000e card in the PCIe slot didn't perform well. I replaced it with a HP Broadcom card and everything is working smooth now.

With two gigabit network cards bonded together I can achieve 220 MB/s through a single file transfer over NFS.

It would be interesting if a quad port server adapter would be able to achieve 440 MB/s network speeds, but I don't have the equipment to test this.

My Dutch ISP Ziggo provides internet access through DOCSIS cable modems. They are now capable of providging 120 Mbit downstream and 10 Mbit upstream, for an affordable price.

In a way this is mind boggling. Most people have 100 Mbit home networks that are not capable of handling full capacity. You need at least gigabit gitabit network connectivity on your router and internal network.

But there is a problem with all this bandwidth mayhem:

It is useless.

The only time I see the full 120 mbit in use is when I do a speed test, or when my mac is downloading system updates. Regular downloading (ISO's, big files from web pages), usenet, bittorrent, they cannot provide content with at the speed my connection is capable of.

The bottleneck is no longer the connection to the home. The whole internet is now the bottle neck. The content providers are the bottle neck. They cannot seem to cope with this use increase in client side bandwith capacity. They often seem to cap users at a specific download rate, that is way below full capacity. Although the connectivity is relatively cheap, if you can't use it, why pay for it? So downgrading to let's say 50 mbit until content providers are able to handle higher speeds seems the smartest thing to do.

I must say that I think that content providers are the weakest link. But I cannot be sure. It may be possible that the ISP network, especially their transit links, are the limiting factor. If anyone knows more about this, I'm interested.

This article discusses Linux bonding and how to achieve 2 Gb/s transfer speeds with a single TCP/UDP connection.


UPDATE July 2011

Due to hardware problems, I was not able to achieve transfer speeds beyond 150 MB/s. By replacing a network card with one from another vendor (HP Broadcom) I managed to obtain 220 MB/s which is about 110 MB/s per network interface.

So I am now able to copy a single file with the 'cp' command over an NFS share with 220 MB/s.

I had problems with a intel e1000e PCIe card in an intel DH67BL. I tested with different e1000e PCIe models but to no avial. RX was 110 MB/s. TX was always no faster than 80 MB/s. A HP Broadcom gave no problems and also provided 110 MB/s for RX traffic. LSCPI output:

Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express

The on-board e1000e NIC performed normal, all PCIe e1000e cards with different chipsets never got above 80 MB/s.


A gigabit network card provides about 110 MB/s (megabytes) of bandwidth. If you want to go faster, the options are:

  1. buy infiniband stuff: I have no experience with it, may be smart thing to do but seems expensive.
  2. buy 10Gigabit network cards: very very expensive compared to other solutions.
  3. strap multiple network interfaces together to get 2 Gb/s or more with more cards.

This article is discussing the third option. Teaming or bonding two network cards to a single virtual card that provides twice the bandwidth will provide you with that extra performance that you where looking for. But the 64000 dollar question is:

How to obtain 2 Gb/s with a single transfer? Thus with a single TCP connection?

Answer: The trick is to use Linux network bonding.

Most bonding options only provide an accumulated performance of 2 Gb/s, by balancing different network connections over different interfaces. Individual transfers will never reach beyond 1 Gbit/s but it is possible to have two 1 Gb/s transfers going on at the same time.

That is not what I was looking for. I want to copy a file using NFS and just get more than just 120 MB/s.

The only bonding mode that supports single TCP or UDP connections to go beyond 1 Gb/s is mode 0: Round Robin. This bonding mode is kinda like RAID 0 over two or more network interfaces.

However, you cannot use Round Robin with a standard switch. You need an advanced switch that is capable of creating "trunks". A trunk is a virtual network interface, that consists of individual ports that are grouped together". So you cannot use Round Robin mode with an average unmanaged switch. The only other option is to use direct cables between two hosts, although I didn't tested this.

Results


UPDATE July 2011 : Read the update at the top.


Now the results: I was able to obtain a transferspeed (read) of 155 MB/s with a file copy using NFS. Normal transfers capped at 109 MB/s. To be honest: I had hoped to achieve way more, like 180MB/s. However, the actual transfer speeds that will be obtained will depend on the hardware used. I recommend using Intel or Broadcom hardware for this purpose.

Also, I was not able to obtain write speed that surpasses the 1 Gb/s. Since I used a fast RAID array to write the data to, the underlying storage subsystem was not the bottleneck.

So the bottom line is that it is possible to get more than 1 Gb/s but the performance gain is not as high as you may want to.

Configuration:

Client:

modprobe bonding mode=0
ifconfig bond0 up
ifenslave bond0 eth0 eth1
ifconfig bond0 10.0.0.1 netmask 255.255.255.0

Server:

modprobe bonding mode=4 lacp_rate=0 xmit_hash_policy=layer3+4
ifconfig bond0 up
ifenslave bond0 eth0 eth1
ifconfig bond0 10.0.0.2 netmask 255.255.255.0

Bonding status:

cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.3.0 (June 10, 2008)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Active Aggregator Info:
Aggregator ID: 2
Number of ports: 2
Actor Key: 9
Partner Key: 26
Partner Mac Address: 00:de:ad:be:ef:90

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:co:ff:ee:aa:00
Aggregator ID: 2

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:de:ca:fe:b1:7d
Aggregator ID: 2
Next Page ยป

20 DISK 18 TERRABYTE NAS

Just for fun, I've build myself an 18 TB NAS based on Debian Linux, software RAID, 20 disks and a Norco 4020 case.

AD

Projects

Contact

Donate

If you find PPSS, WFS or LFS, usefull, consider a donation.

Categories

Archives