Jumbo Frames, LACP, NFS

Now that my server is basically up and running for a while it’s time to get the neat stuff running 🙂 .

A to-do item on my list has always been enabling jumbo frames and LACP on my Opensolaris installation. So, let’s get this kicking!

Jumbo frames use a MTU of 9000 instead of 1500. Since I’ve aggregated nge0 and nge1 to aggr1 I can simply set the MTU of the aggr and the corresponding values will automatically be set on nge0 and nge1 (even if you don’t see them 😉 ):

ifconfig aggr1 unplumb
dladm set-linkprop -p mtu=9000 aggr1
ifconfig aggr1 plumb

Sweet stuff! Don’t forget to re-configure the address, netmask and gateway for the link. Now I want to enable LACP so I can make use of the combined throughput of the NICs:

dladm modify-aggr -L passive 1

Let’s check whether everything’s up and running as intended:

tsukasa@filesrv:/$ ifconfig aggr1
aggr1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 9000 index 2
inet 192.168.X.X netmask ffffff00 broadcast 192.168.X.X
tsukasa@filesrv:/$ dladm show-aggr 1
LINK            POLICY   ADDRPOLICY           LACPACTIVITY  LACPTIMER   FLAGS
aggr1           L4       auto                 passive       short       -----

And indeed, everything went smooth.

Now, even with this boost in performance watching HD video over the network sometimes stuttered with many concurrent connections/operations going up- and downstream at the same time. Also, the Opensolaris 2009.06’s CIFS service has the unpleasant habit of dying and refusing to come up again until I reboot, so I went the easy way and simply enabled NFS for this ZFS system (can we call this a system? Mount? I don’t know…):

zfs set sharenfs=on filesrv/video

I didn’t have to do anything else or specify explicit rw options since I already mapped all the stuff before. Now, the only thing left to do:

mount filesrv:/filesrv/video /home/tsukasa/video -t nfs -o defaults,users,noauto,rsize=8192,wsize=8192,timeo=14,intr

And guess what, no more problems 🙂 .

My NAS Part 03: Do, Did, Done.

So, my NAS is up and running. It’s feature- and hardware-complete and I’m loving it.

The Fujitsu-Siemens SAS controller worked out of the box (as predicted) and wasn’t castrated to only operate on FSC boards (nice!). The only thing I could moan about is the slot card… I had to lose one screw in order to make it fit into the PCIe slot… who cares.

Enabling SSH in a Nexenta zone can be bitchy, this should do the trick…
Add the following line to /lib/svc/method/svc-syseventd:

[ `zonename` = global ] || sleep 3600 & exit 0

Do a “dpkg-reconfigure sunwcsd” and “svccfg import /var/svc/manifest/system/sysevent.xml”. After that you should be able to enable ssh through svcadm.

Installing Java is easier, fortunately. Although aptitude install sun-java6-bin will fail, the following will work:

$ su –
# export SUN_PERSONALITY=1
# aptitude install nevada-compat
# aptitude install sun-java6-bin
# exit

Overall, there’s a little bit of tweaking necessary to get through some pitfalls of Nexenta, but it is definitively worth it.

My NAS Part 02 – It’s coming together

This series of posts will follow along as I build my very own NAS. In this second part I’ll talk about the user experience of some of the basic hardware with Linux/Solaris.

So, I’ve finally added the missing pieces, namely mainboard, memory and a CPU. I opted for an Asus P5N64 WS Professional mainboard (mainly because nForce is reasonably well supported on Solaris), some Corsair 1333MHz DDR3 RAM and an Intel Q8200 CPU. Assembling everything was no problem – and much to my rejoice the operating system didn’t make a fuss either! Currently the machine still runs the old Linux installation with Nexenta Core Platform on another disk.

Sure, I had to do some handywork before network was back: On Linux I had to force a load of forcedeth and reconfigure my interfaces through /etc/network/interfaces and added bonding. Still, not much to do, all drivers present without binkering.

Solaris didn’t play so nice in the beginning, for some reason I had to plug-in both ethernet cables in order to complete the boot. After that I simply unplumbed the interfaces, disabled nwam through svcadm, enabled physical through svcadm (allowing me to manually configure the interfaces) and finally bonded/aggregated the interfaces through dladm. I do have to say that I like the way Solaris allows configuration of network interfaces way better than the standard Linux method (mainly: fire up vim and edit everything). The nice thing: I really didn’t have to install/download/compile anything, Solaris came loaded with all necessary drivers.

Now, the good news is that all the important components (SAS controller, SATA controller, ethernet, PCI and PCI-e bridges) work fine on Linux and Solaris. Bad news: I didn’t get to test wireless LAN and sound yet, that’s not really the purpose of that machine 🙂 .

So, what’s the verdict on the P5N64 WS Pro in terms of non-Windows compatibility? It’s great, the board comes with 3 PCI-e 16x ports, 2 gigabit ethernet ports (Marvell), 2x eSATA and — much to my rejoice — a BIOS debugger. There is 1 PCI slot for your old stuff (in my case, maybe an old IDE controller or TV card) and 1 pinset for front-panel USB. A COM port slot is included in the package, which is a welcome addition. As usual Asus delivers a lot of stuff with the mainboard, unfortunately they didn’t provide a CD-ROM to restore the BIOS (AMI BIOS; which I had to do already…).

Next week I’ll plug-in the PCI-e SAS controller from Fujitsu-Siemens (which is based on LSI’s SAS1068) and get going with my JBODs 🙂 .

My NAS Part 01 – Cooking something up

This series of posts will follow along as I build my very own NAS. In this first part I’ll talk about some of the things that happened up to this point.

As clever readers of my blog probably noticed already — I like NAS systems. I was so fond of them, that my first post in 2008 basically said “I’m going to build one”. Now, one year later it’s slowly coming along.

I tested some basic hardware components over the last few weeks and received the case I opted for today. The case itself is a Sharkoon Rebel12 Value Edition, a relatively cheap, big case for ATX boards. It features a large number of 5.25″ bays, so there’s a lot of room for expansion — or is there? Unfortunately Sharkoon had to place steel guides at each bay, normally not a problem if you just want to insert a CD-ROM or DVD drive. But for a SATA backplane module, this easily becomes a lot of hassle.

I ended up cutting the steel guides with a hacksaw since I won’t need them anyway and trying to bend them was a phenomenal waste of time. Now the backplane fits perfectly into the case (just as intended) and I’ve thrown the ol’ hardware from my small fileserver into the new case to test it. I’m quite pleased up to this point, although my hands are incredibly sore now.

There is plenty of room in the case, making the mounting of the mainboard a breeze. The PSU goes in the bottom of the case, a strange decision but makes changing the darn thing very easy, so it is highly appreciated.

The only thing I will probably have to change is the front-panel fan: It blocks 3 bays – way too much. As soon as I receive the Scythe fan I ordered for the back of the machine, I’ll give this a try. The SATA backplanes do have fans as well, so I hope ventilation won’t be that much of a problem.

Next week I’ll mount the second and third backplane into the machine — unfortunately I won’t be able to use them, though. As long as I miss the new mainboard, CPU and SATA controller there’s only two SATA ports onboard. But oh well, the hardware does come from an old machine, so I’m thankful it does work after all that hack and slash I did to the case and it’s hardware.

Pictures will follow!