Monday, September 28, 2009

Thumper features in EON ZFS storage

With binary kit 122, the package SUNWhd (tools and driver download) used in thumper was added to EON. With this package you get the capability to tell a great deal of metrics about your disks. It gives the ability to control read and write cache. It allows to tell firmware revision, vendor, serial and very importantly, the temperature of the disks.

We know that higher temperature disks, perform less efficiently. In my DIY ZFS storage case, hdadm showed that there was insufficient cooling or air was not being moved efficiently through the cage as the temperature of the 15K rpm drives continuously inched towards the clip or shutdown temperature. The clip temperature can be seen in the output of:
smartctl -d scsi -a /dev/rdsk/cXtXdXsX
... excerpt
Device supports SMART and is Enabled
Temperature Warning Enabled
SMART Health Status: OK

Current Drive Temperature: 48 C
Drive Trip Temperature: 65 C
Manufactured in week 31 of year 2006
Re-orientation of the drives and re-positioning a 20MM fan seems to be holding at 53 degree C. I'll focus on getting temperatures down to the 36-40 degree C range. For more use see hdadm which is a wrapper script for calling the hd binary.
hdadm display

Device Serial Vendor Model Rev Temperature
------ ------ ------ ----- ---- -----------
c0t1d0p0 DNL3P68018NM FUJITSU MAX3036NC 5D03 53 C (127 F)
c0t2d0p0 DNL3P6400SDR FUJITSU MAX3036NC 5D03 58 C (136 F)
c0t3d0p0 DNL3P68018NN FUJITSU MAX3036NC 5D03 54 C (129 F)
c1t1d0p0 DNL3P6400SEE FUJITSU MAX3036NC 5D03 49 C (120 F)
c1t2d0p0 DNL3P68018BC FUJITSU MAX3036NC 5D03 51 C (123 F)
c1t3d0p0 DNL3P68018NV FUJITSU MAX3036NC 5D03 46 C (114 F)
c2d0p0 HNCF128MMG=STCB21M84025C03356C1 MG 84025C03356C1 - None
A hard drive performance test can be run using:
hdadm diskqual

Wednesday, September 23, 2009

EON + ZFS Storage + iTunes/Firefly server equals?

What happens when you combine your EON ZFS storage with Firefly's media server/mt-daapd, the opensource iTunes server? Music to everyone's ears!

I previously covered apps to make your EON ZFS storage work for you and someone stated mt-daapd would be nice. So here it is. You can download the 32-bit mt-daapd svn_1696 here (md5sum: 6aafee73058f7628cbf3fb0199a5c162). This version supports mp3, flac, oggvorbis, mdns and more. To install and start mt-daapd after transferring mt-daapd-1696.tgz to your zpool (substitute your zpool name wherever abyss is seen), repeat the following:
(cd /abyss ; mkdir media)
(cd /opt ; ln -s ../abyss/media .)
This creates the symlink /opt/media to the location for mt-daapd (/abyss/media in this case). Now let's unpack the mt-daapd-1696.tgz package. In this case my file was located in /tmp/mt-daapd-1696.tgz.
cd /opt/media
gzip -dc /tmp/mt-daapd-1696.tgz | tar -xf -
That should've unpacked the following structure in /opt/media, as seen by ls -al
drwxr-xr-x   8 admin    stor           8 Sep 23 14:54 .
drwxrwxrwx 12 root root 21 Sep 23 13:57 ..
drwxr-xr-x 2 root root 13 Sep 23 13:55 bin
drwxr-xr-x 2 root root 3 Sep 23 13:00 etc
drwxr-xr-x 5 root root 49 Sep 23 13:55 lib
drwxr-xr-x 2 root root 3 Sep 23 13:55 sbin
drwxr-xr-x 4 root root 4 Sep 23 14:15 share
Now let's start the server as user, root. This will create an additional var directory with the proper permissions:
./sbin/mt-daapd
To check and configure it, point your browser to the EON storage IP address as http://eonstorageIP:3689. You should be greeted with a login window. Enter the user: admin and password: mt-daapd. These are the default account credentials which you should change after logging in. Now, all that is left, is to go to the configuration tab, enter the path to your music library and allow the Firefly media server to rescan. This could take a while depending on the size of your music collection. You can now use iTunes and Roku Soundbridge to unleash the music kept on your EON ZFS storage. If you have zerconf or multi-cast DNS clients on your network you can optionally advertise your Firefly server to the network by running the multi-cast DNS server on EON
/usr/lib/inet/mdnsd
and to view http services on your network
dns-sd -B _http._tcp .
Browsing for _http._tcp
Timestamp A/R Flags if Domain Service Type Instance Name
22:14:01.525 Add 2 2 local. _http._tcp. Firefly svn-1696 on eon
You should see the Firefly media server listed. For now, let the music play!

Monday, September 14, 2009

EON ZFS NAS 0.59.3 based on snv_122 released!

Embedded Operating system/Networking (EON), RAM based live ZFS NAS appliance is released on Genunix! Much thanks to Genunix.org for download hosting and serving the opensolaris community.

It is available in a CIFS and Samba flavor
tryitEON 64-bit x86 CIFS ISO image version 0.59.3 based on snv_122
tryitEON 64-bit x86 Samba ISO image version 0.59.3 based on snv_122
tryitEON 32-bit x86 CIFS ISO image version 0.59.3 based on snv_122
tryitEON 32-bit x86 Samba ISO image version 0.59.3 based on snv_122New/Fixes:
- triple parity RAIDZ3, since snv_120
- added 32/64-bit drivers: bnx, igb
- Workaround fix for IP validation in setup.sh
- added /usr/local/sbin for bin kit to bashrc
- eon rebooting after grub in ESXi, Fusion and some versions of VMware workstation. This is related to bug 6820576. Workaround, at grub press e and add on the end of the kernel line "-B disable-pcieb=true"

Wednesday, September 2, 2009

Building your own EON ZFS NAS binary kit

If you wish to build your own binary kit discussed here, a working SXCE opensolaris system and the matching EON snv_xxx DVD/iso are needed. So for eon-0.592-119-xxx-xxx.iso one would need the snv_119 dvd/iso. The current binary kit is built using the following package list bin-pkg.list
SUNWopenssl-commands
SUNWwgetu
SUNWless
SUNWzip
SUNWunzip
SUNWtop
SUNWpowertop
# rmformat + dep
SUNWsmedia
SUNWrmvolmgr
# 7z + dep
SUNWlibC
SUNWbzip
SUNWp7zip
# scanpci
SUNWpciaccess
Then using the script binpkg.sh, custom binaries can be added.
PATH=/usr/bin:/usr/sbin
LOC=`pwd`
CDROM=/cdrom/cdrom0
PROD=$CDROM/Solaris_11/Product
BINKIT=/tmp/binkit
LIST=$LOC/bin-pkg.list

[ "X$1" != "X" ] && LIST=$1
for pkg in `grep -v "^#" $LIST`
do
cd $PROD ; pkgadd -d . -R $BINKIT $pkg
#sleep 5
done
Finally tar-ing and gzip-ing the (bin, sbin, lib, etc, share) directories in /tmp/binkit/usr and uploading them to /pool you have a working recipe for adding binaries from SXCE packages. Of course, this same method and package list will work using the IPS method but it would also add all the dependencies making it much larger. My main issue with IPS is not being able to override installing dependencies when using IPS to install packages.

There are limitations with packages that rely on isaexec to fork the respective matching 32 or 64-bit versions of the binary because you cannot hard link across different partitions. The workaround for now is to symlink the binary to the matching i86(32-bit).
cd /usr/local/bin
ln -s ./i86/top top
ln -s ./i86/powertop powertop
or amd64(64-bit) version
ln -s ./amd64/top top
ln -s ./amd64/powertop powertop