Monday, December 21, 2009

EON ZFS Storage 0.59.9 based on snv 129, Deduplication release!

Embedded Operating system/Networking (EON), RAM based live ZFS NAS appliance is released on Genunix! This is the first EON release with inline Deduplication features! Many thanks to Genunix.org for download hosting and serving the opensolaris community.

EON Deduplication ZFS storage is available in 32 and 64-bit, CIFS and Samba versions:
tryitEON 64-bit x86 CIFS ISO image version 0.59.9 based on snv_129
tryitEON 64-bit x86 Samba ISO image version 0.59.9 based on snv_129
tryitEON 32-bit x86 CIFS ISO image version 0.59.9 based on snv_129
tryitEON 32-bit x86 Samba ISO image version 0.59.9 based on snv_129

tryitEON 64-bit x86 CIFS ISO image version 0.59.9 based on snv_129 (NO HTTPD)

tryitEON 64-bit x86 Samba ISO image version 0.59.9 based on snv_129 (NO HTTPD)
New/Changes/Fixes:
- Deduplication, Deduplication, Deduplication. (That only used 1x the amount of storage space)
- The hotplug errors at boot are being worked on. They are safe to ignore.
- Cleaned up minor entries in /mnt/eon0/.exec. Added "rsync --daemon" to start by default.
- EON rebooting at grub(since snv_122) in ESXi, Fusion and various 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"

Thursday, December 3, 2009

EON ZFS Storage 0.59.5 based on snv 125 released!

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

EON ZFS storage is available in 32 and 64-bit, CIFS and Samba versions:
tryitEON 64-bit x86 CIFS ISO image version 0.59.5 based on snv_125
tryitEON 64-bit x86 Samba ISO image version 0.59.5 based on snv_125
tryitEON 32-bit x86 CIFS ISO image version 0.59.5 based on snv_125
tryitEON 32-bit x86 Samba ISO image version 0.59.5 based on snv_125
tryitEON 64-bit x86 CIFS ISO image version 0.59.5 based on snv_125 (NO HTTPD)

tryitEON 64-bit x86 Samba ISO image version 0.59.5 based on snv_125 (NO HTTPD)
New/Changes/Fixes:
- removed iscsitgd and replaced it with COMSTAR (iscsit, stmf, itadm)
- added SUNWhd to image vs being in the binary kit.
- added rsync to image vs being in the binary kit. Updated version of rsync supports IPv6.
- added nge, yge and yukonx drivers.
- added (/etc/inet/hosts, /etc/default/init) to /mnt/eon0/.backup (TIMEZONE and hostname change fix)
- fixed error entry /mnt/eon0/.exec. Changed "zpool -a" to "zpool import -a"
- eon rebooting at grub(since snv_122) in ESXi, Fusion and various 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"

Friday, November 20, 2009

Using napp-it webadmin with your EON ZFS storage

Many have asked for a web interface to administer their EON ZFS storage. I started a FreeNAS interface port a while back but time and keeping pace with their development proved unsustainable. I shared it in the download section as Freon for someone with better PHP resources to complete. I also posted a webmin howto a while back. The webmin web user admin, lacks only a ZFS and a CIFS module. It contains a Samba module which may be easy for one of you Perl guru's out there to extend as a CIFS module.

Prerequisites: This exercise assumes the binary kit is installed, for unzip. Or unzip with winzip and drag the folder into a CIFS share onto the storage, then run the following within the napp-it directory to correct the proper unix carriage return:
find . -type f -print | xargs -I {} dos2unix -ascii {} {}
Another option, written by Alka Guenther for nexenta, called napp-it was extended to work with EON. He has a running thread on opensolaris.org. Here are the steps I took to get it running on my ZFS storage after downloading napp-it v 0.210. I transferred it to /tmp/napp-it-0.210.zip. Then
cd /var/apache2/2.2/cgi-bin
unzip -aa /tmp/napp-it-0.210.zip
chown webservd:webservd napp-it
cd napp-it
chmod -R 755 ./*
Next we vi/edit admin.pl and comment (line 42 in v 0.210) the following
use CGI::Carp qw (fatalsToBrowser);
to
#use CGI::Carp qw (fatalsToBrowser);
And that's pretty much it. We point the browser to http://EON_ZFS_IP/cgi-bin/napp-it/admin.pl and you should be greeted by a login with no password, which you can immediately change. It is very configurable and I really liked the console command feature. So give it a try and help improve it.





Friday, November 6, 2009

How is EON ZFS storage working for you?

For release 0.59.5 based on snv_125 I am thinking of adding 2 more images. A 64-bit CIFS and Samba version without any embedded web server. These images would be able add a web server based on lighttpd, if needed. I'd like to hear your thoughts on this? With the great news that ZFS de-duplication is complete, we can hope to see a SXCE release. Many thanks to Jeff Bonwick, Bill Moore, Mark Maybee, Matt Ahrens, Adam Leventhal, George Wilson, Robin Guo and all the engineers who made this happen.

I would also appreciate your feedback/review in format(pros:, cons:, and other thoughts:), to understand how EON ZFS storage is filling/failing your storage needs, thus far. I may not be able to address all needs but it would be great to understand how EON is working with you, whether it's good, bad or indifferent.

Update for future releases based on feedback:
- shift SUNWhd, S.M.A.R.T and rsync to the core image, instead of the binary kit.
- attempt to add more intel, broadcom nic drivers. (Note: not all drivers can be added because of image size contribution. Also I have no way of testing with certain hardware. There is a mechanism to add your own drivers)
- add 2 new 64-bit CIFS and Samba versions, with NO HTTP service. Will rely on external lighttpd, if HTTP service is needed.
- add COMSTAR, to replace iscsitgtd.
- documentation to help new to opensolaris, beginners and less technical audience. It would help greatly if you, the user would document or do write-ups, based on your experiences and challenges with EON. I could add the write-up to the wiki to help others. Proper credit will be given for your work.

Monday, October 19, 2009

EON ZFS Storage 0.59.4 based on snv_124 released!

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

EON ZFS storage is available in 32 and 64-bit, CIFS and Samba versions:
tryitEON 64-bit x86 CIFS ISO image version 0.59.4 based on snv_124
tryitEON 64-bit x86 Samba ISO image version 0.59.4 based on snv_124
tryitEON 32-bit x86 CIFS ISO image version 0.59.4 based on snv_124
tryitEON 32-bit x86 Samba ISO image version 0.59.4 based on snv_124
New/Changes/Fixes:
- initialization of ntpd, nscd at boot time, moved to /mnt/eon0/.exec
- added /mnt/eon0/.disable for K99local stop for a cleaner shutdown
- added /mnt/eon0/.purge to allow removing drivers and binaries not needed by your image
- new version of install.sh. Fixes a bug for virtual disks, multiple runs and improved error checking of stages
- new transporter.sh CLI to automate upgrades, backups or downgrades to backed-up versions
- eon rebooting at grub(since snv_122) in ESXi, Fusion and various 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"

Friday, October 16, 2009

A new and simpler way to upgrade EON ZFS storage

There is a new and simple way to upgrade your current EON ZFS storage to the newest version. I've added a tool, transporter.sh which allows you to backup, upgrade or restore(NOTE: restore only works if you have a backed-up version) your EON ZFS storage version. Here is a usage output:
transporter.sh 
usage: transporter.sh -i /path/eon.iso -b /path/backup -d /mnt/eon0
transporter.sh -i /tmp/eon-0.593-122-64-smb.iso -d /mnt/eon0
transporter.sh -i /tmp/eon-0.593-122-64-smb.iso -b /pool/backup -d /mnt/eon0
transporter.sh -r /pool/backup/0.59.3 -d /mnt/eon0

-i path to the source ISO
-b path to the backup destination [optional]
-d path to the upgrade destination
-r path to the restore source [optional]
Here's an example run without backup options. It is always wise to have a backup. I cannot stress this enough. There is no backup in this example because I have a previous backup in /abyss/eonback/0.593.
transporter.sh -i /tmp/eon.iso -d /mnt/eon0
OK: lofiadm -a /tmp/eon.iso /dev/lofi/1
OK: mount -F hsfs /dev/lofi/1 /tmp/upgrade
removing /mnt/eon0/boot
copying /tmp/upgrade -> /mnt/eon0
x ., 0 bytes, 0 tape blocks
x ./boot, 0 bytes, 0 tape blocks
x ./boot/amd64, 0 bytes, 0 tape blocks
x ./boot/grub, 0 bytes, 0 tape blocks
x ./boot/grub/bin, 0 bytes, 0 tape blocks
x ./boot/grub/bin/grub, 180380 bytes, 353 tape blocks
[...]   excerpt clipped
./boot/platform/i86xpv/kernel/amd64, 0 bytes, 0 tape blocks
x ./boot/platform/i86xpv/kernel/amd64/unix, 2084984 bytes, 4073 tape blocks
x ./boot/platform/i86xpv/kernel/unix, 1544152 bytes, 3016 tape blocks
x ./boot/x86.eon, 49523134 bytes, 96725 tape blocks
x ./.backup, 1454 bytes, 3 tape blocks
x ./.catalog, 2048 bytes, 4 tape blocks
x ./.disable, 137 bytes, 1 tape blocks
x ./.exec, 1383 bytes, 3 tape blocks
x ./.remove, 3264 bytes, 7 tape blocks
unmounting /dev/lofi/1
OK: umount /dev/lofi/1
releasing /dev/lofi/1
OK: lofiadm -d /dev/lofi/1
Please report any inconsistent findings.

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

Tuesday, August 25, 2009

Using the binary kit with your ZFS storage

With this release some binaries like top, rsync and less, were requested. Update: Transmission torrent cli and web admin added since binary kit 124. I attempted to do so in the form of a binary kit. This provides the controls to build your own binary package. The kit was built using the pkgadd and then tar-ing and gzip-ing the bin, sbin, and lib directories. This method will not work for every package but it's an attempt to fill a gap for certain binaries.

So, how do you use the kit? First upload a binary kit from here to your zpool storage (/zpool name is /abyss in this case). Then unpack the kit using (updated: Since bin-124.tgz):
cd /abyss
mkdir local
cd local
gzip -dc bin-124.tgz | tar -xvf -
Then make the /mnt/eon0/.exec entries
(cd /usr ; ln -s ../abyss/local .)
(cd /usr/lib ; ln -s ../../abyss/local/lib/smedia .)
Proper forking between 32/64-bit binaries is not working (example: top, powertop) because it relies on hard linking /usr/lib/isaexec and that requires being on the same filesystem (Hmmm). For now I recommend symlinking the respective 32 or 64-bit binary, /pool/local/bin/i86/top or /pool/local/bin/amd64/top to /pool/local/bin/top as needed.

Wednesday, August 5, 2009

EON ZFS NAS 0.59.2 based on snv_119 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 32 and 64-bit, CIFS and Samba flavor
tryitEON 64-bit x86 CIFS ISO image version 0.59.2 based on snv_119
tryitEON 64-bit x86 Samba ISO image version 0.59.2 based on snv_119
tryitEON 32-bit x86 CIFS ISO image version 0.59.2 based on snv_119
tryitEON 32-bit x86 Samba ISO image version 0.59.2 based on snv_119
New/Fixes:
- xntpd retired (R.I.P) by ntpd v4
- fixed a curpsinfo, libz.so.1 DTrace bug
- added /usr/local path for symlinks to pool/bin, sbin, lib for user's binaries
- added binary package containing: rsync, top, powertop, unzip, zip, less, wget (requires a hardlink to /usr/lib/isaexec for top and powertop for proper 32/64-bit call)
- added symlink preservation to updimg.sh, so users can add custom links.
- added drivers: si3124, ,sfe, rge, yukonx
- autoexpand disks which allows upgrading individual disk one at a time since snv_117 (for more: zpool get all pool)
- added power management but not all states tested
- added iSCSI client initiator (see discuss, post feedback)

Tuesday, May 26, 2009

EON ZFS NAS 0.59.1 based on snv_114 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.1 based on snv_114
tryitEON 64-bit x86 Samba ISO image version 0.59.1 based on snv_114
tryitEON 32-bit x86 CIFS ISO image version 0.59.1 based on snv_114
tryitEON 32-bit x86 Samba ISO image version 0.59.1 based on snv_114New/Fixes:
- fixed multi-cpu support
- ssh keys and config files added to backup list
- backup list separated from updimg.sh and located on USB/CF root
- added dtrace to help with future webgui/bui interface metrics
- added marvell 88sx and AHCI drivers (intel Bad Axe2 motherboard support)

You can roll your current custom changes into the new 0.59.1 version by executing updimg.sh with arguments/path to the new unpacked x86.eon image. Please read full details first on upgrading EON from an older post here.
updimg.sh /mnt/eon0/boot/x86_new.eon

Friday, May 22, 2009

EON NAS flexing on a Dell R610 16CPU, 12GB of RAM

So we unboxed a Dell R610 with dual Xeons in the lab today and for giggles I booted EON ZFS storage on this bad boy to see what would work and what would not. The sata controller and broadcom 5709 were missing so I couldn't see the drives or the 4 x 1gigE nics. Still fun none the less to see it scales well. All 16 CPU's online and ready to serve.










Thursday, May 21, 2009

EON ZFS NAS snv_114 preview

Here is a preview of EON ZFS NAS based on snv_114. This release fixes some opensolaris and EON bugs (multi-cpu support, smbadm join domain core dumping/crashing). I would also like your feedback on the addition of dtrace? Will it bring value and add use for you? The intention is to use xmlrpc and dtrace to help with display metrics and information for the future webgui/bui administration interface

Tuesday, May 5, 2009

EON ZFS NAS meets IPS packages

Adding drivers/binaries to your EON ZFS NAS presents a bit of challenge as it requires acquiring the matching SNV_xxx DVD to source the package. There is an alternative called the image packaging system. This is basically Sun's network packaging system similar to apt, RPM in Linux. I've assumed here that the network card is fully functional and internet connectivity, is working.

So assuming your nic works, a wide array of options become available with the help of IPS. This may be useful to add or run certain binaries such as unzip, ipmitool, powertop, openssl, pmconfig, etc. So how do we add pkg and other IPS goodies? First we download the pre-installed toolkit here.

Then, unzip it to a smb/cifs share somewhere on a storage pool (this example unzipped to /deep/pkg-toolkit-sunos-i386). Now let's create the packaging db in /deep/ips
mkdir -p /deep/ips
cd /deep/pkg-toolkit-sunos-i386/pkg/bin
./pkg image-create -F -a opensolaris.org=http://pkg.opensolaris.org /deep/ips
After this completes, we are ready to add packages to the /deep/ips repositories. Note, I am not adding the packages to / (root). This would store the downloaded binaries in RAM and reduce the available memory and most likely cause a crash of the OS. It would also not survive a reboot. So for now, let's use a local repository /deep/ips and lets add unzip. First, I need to know which package unzip, is a part off. So, let's try to find that
cd /deep/ips
/deep/pkg-toolkit-sunos-i386/pkg/bin/pkg search -r unzip
INDEX ACTION VALUE PACKAGE
basename file usr/bin/unzip pkg:/SUNWunzip@5.53.7-0.101
basename file usr/bin/unzip pkg:/SUNWunzip@5.53.7-0.96
basename file usr/bin/unzip pkg:/SUNWunzip@5.52-0.75
We see the package name is SUNWunzip as well as the versions available at the repository (5.52, 5.53). Let's give it a dry run without installing to see dependencies. Still in /deep/ips
/deep/pkg-toolkit-sunos-i386/pkg/bin/pkg install -nv SUNWunzip
And to install it and all its listed dependencies in /deep/ips
/deep/pkg-toolkit-sunos-i386/pkg/bin/pkg install -v SUNWunzip
This can also be used for drivers, for example the sil 3124 sata chipset driver
/deep/pkg-toolkit-sunos-i386/pkg/bin/pkg search -r 3124
INDEX ACTION VALUE PACKAGE
description set 3124 pkg:/SUNWsi3124@0.5.11-0.101
description set 3124 pkg:/SUNWsi3124@0.5.11-0.75
description set 3124 pkg:/SUNWsi3124@0.5.11-0.89
Then, simply adding this SUNWsi3124 or specifically SUNWsi3124@0.5.11-0.101 will get us the driver. One thing I note is the package naming varies slightly to the opensolaris DVD package names. I also could not locate packages SUNWzfsgu, SUNWzfsgr and SUNWmconr to attempt adding the ZFS smcwebserver GUI/BUI administration interface. Some cool pkg usage techniques can be found here at the observatory blog. A cool Hello World example.

Friday, May 1, 2009

Applications to make your ZFS NAS entertaining

Your ZFS storage is just blah without data and content. After loading your data you want access to be simple and secure. So to bridge all your important digital memories and collections with fun browsing, here are some cool open-source apps I've come across that were fairly straight forward and fun to add to EON.
Jinzora
Jinzora is a web based media streaming and management system, written in PHP.




AjaXplorer
AjaXplorer is an easy-to-install file explorer for remotely managing files on a web server. Its “rich client” layout and actions make it accessible to any end-user for a variety of purposes: file management/sharing, photo gallery, code browsing, etc. Only PHP (4 or 5) is necessary, no database needed.

MediaTomb is an open source (GPL) UPnP MediaServer with a nice web user interface, it allows you to stream your digital media through your home network and listen to/watch it on a variety of UPnP compatible devices. I've successfully compiled a 32-bit version of MediaTomb. Packaging and some integration challenges still exist and are being worked on. I will share this or the compile configurations for anyone wanting to build or download it. If anyone has successfully compiled ffmpegthumbnailer on opensolaris please feel free to share.

PS3 Media Server is a DLNA compliant Upnp Media Server for the PS3, written in Java, with the purpose of streaming or transcoding any kind of media files, with minimum configuration.


Other cool applications with less visual effects but some may find useful include using your EON ZFS NAS as a svn or git revision control system. A nice SVN howto can be seen here. Please feel free to share cool apps you've added or used with your EON ZFS storage.

Thursday, April 16, 2009

Understanding and managing NFSv4 ACLs

Using EON/Opensolaris and ZFS for storage will at some point cause you to cross paths with NFSv4 Access Control Lists. The control available through ACLs are really granular and powerful but they are also hard to manage and a bit confusing. Here i'll share my methods of handling ACLs which requires some pre-requisite reading to help understand the Compact Access codes:
add_file w, add_subdirectory p, append_data p, delete d , delete_child D , execute x , list_directory r , read_acl c , read_attributes a , read_data r , read_xattr R , write_xattr W , write_data w , write_attributes A , write_acl C , write_owner o
Inheritance compact codes:(remember i on a directory causes a recursive inheritance)
file_inherit f , dir_inherit d , inherit_only i , no_propagate n
ACL _set codes:
full_set = rwxpdDaARWcCos = all permissions
modify_set = rwxpdDaARWc--s = all permissions except write_acl, write_owner
read_set = r-----a-R-c--- = read_data, read_attributes, read_xattr, read_acl
write_set = -w-p---A-W---- = write_data, append_data, write_attributes, write_xattr
NFSv4 ACL legend (read from top, down and exit on first match)
                 owner@:--------------:-------:deny
                 owner@:rwxp---A-W-Co-:-------:allow
                 group@:-w-p----------:-------:deny
                 group@:r-x-----------:-------:allow
              everyone@:-w-p---A-W-Co-:-------:deny
              everyone@:r-x---a-R-c--s:-------:allow
                        ||||||||||||||:|||||||
           (r)read data +|||||||||||||:||||||+ (I)nherited
           (w)rite data -+||||||||||||:|||||+- (F)ailed access (audit)
              e(x)ecute --+|||||||||||:||||+-- (S)uccess access (audit)
               a(p)pend ---+||||||||||:|||+--- (n)o propagate
               (d)elete ----+|||||||||:||+---- (i)nherit only
         (D)elete child -----+||||||||:|+----- (d)irectory inherit
          read (a)ttrib ------+|||||||:+------ (f)ile inherit
         write (A)ttrib -------+||||||
           (R)ead xattr --------+|||||
          (W)rite xattr ---------+||||
             read a(c)l ----------+|||
            write a(C)l -----------+||
         change (o)wner ------------+|
                   sync -------------+
If I create a file/folder (foo) via a windows client on a SMB/CIFS share the permissions typically resemble.
eon:/deep/tank#ls -Vd foo
d---------+  2 admin    stor           2 Apr 20 14:12 foo
user:admin:rwxpdDaARWcCos:-------:allow
group:2147483648:rwxpdDaARWcCos:-------:allow
This works fine for the owner (admin) but in a case where multiple people (family) use the storage, adding user access and more control over sharing is usually required. So how do I simply add the capability needed? If I wish to modify this(above), I always start by going back to default values
eon:/deep/tank#chmod A- foo
eon:/deep/tank#ls -Vd foo
d---------   2 admin    stor           2 Apr 20 14:12 foo
owner@:rwxp----------:-------:deny
owner@:-------A-W-Co-:-------:allow
group@:rwxp----------:-------:deny
group@:--------------:-------:allow
everyone@:rwxp---A-W-Co-:-------:deny
everyone@:------a-R-c--s:-------:allow
I then copy and paste them directly into a terminal or script (vi /tmp/bar) for trial and error and simply flip the bits I wish to test on or off. Note I'm using A= which will wipe and replace with whatever I define. With A+ or A-, it adds or removes the matched values. So my script will look like this after the above is copied
chmod -R A=\
owner@:rwxp----------:-------:deny,\
owner@:-------A-W-Co-:-------:allow,\
group@:rwxp----------:-------:deny,\
group@:--------------:-------:allow,\
everyone@:rwxp---A-W-Co-:-------:deny,\
everyone@:------a-R-c--s:-------:allow \
foo
Let's modify group:allow to have write_set = -w-p---A-W----
chmod -R A=\
owner@:rwxp----------:-------:deny,\
owner@:-------A-W-Co-:-------:allow,\
group@:--------------:-------:deny,\
group@:-w-p---A-W----:-------:allow,\
everyone@:rwxp---A-W-Co-:-------:deny,\
everyone@:------a-R-c--s:-------:allow \
foo
Running the above
eon:/deep/tank#sh -x /tmp/bar
+ chmod -R A=owner@:rwxp----------:-------:deny,owner@:-------A-W-Co-:-------:allow,group@:--------------:-------:deny,group@:-w-p---A-W----:-------:allow,everyone@:rwxp---A-W-Co-:-------:deny,everyone@:------a-R-c--s:-------:allow foo
eon:/deep/tank#ls -Vd foo/
d----w----+  2 admin    stor           2 Apr 20 14:12 foo/
owner@:rwxp----------:-------:deny
owner@:-------A-W-Co-:-------:allow
group@:--------------:-------:deny
group@:-w-p---A-W----:-------:allow
everyone@:rwxp---A-W-Co-:-------:deny
everyone@:------a-R-c--s:-------:allow
Adding a user (webservd) at layer 5, 6 with full_set permissions
eon:/deep/tank#eon:/deep/tank#chmod A+user:webservd:full_set:d:allow,user:webservd:full_set:f:allow foo
eon:/deep/tank#ls -Vd foo
d----w----+  2 admin    stor           2 Apr 20 14:12 foo
user:webservd:rwxpdDaARWcCos:-d-----:allow
user:webservd:rwxpdDaARWcCos:f------:allow
owner@:rwxp----------:-------:deny
owner@:-------A-W-Co-:-------:allow
group@:--------------:-------:deny
group@:-w-p---A-W----:-------:allow
everyone@:rwxp---A-W-Co-:-------:deny
everyone@:------a-R-c--s:-------:allow
Ooops, that's level 1, 2 so let's undo this by simply repeating the command with A- instead of A+.
eon:/deep/tank#chmod A-user:webservd:full_set:d:allow,user:webservd:full_set:f:allow foo
eon:/deep/tank#ls -Vd foo
d----w----+  2 admin    stor           2 Apr 20 14:12 foo
owner@:rwxp----------:-------:deny
owner@:-------A-W-Co-:-------:allow
group@:--------------:-------:deny
group@:-w-p---A-W----:-------:allow
everyone@:rwxp---A-W-Co-:-------:deny
everyone@:------a-R-c--s:-------:allow
Then lets fix it by repeating the command with A5+ instead of A-
eon:/deep/tank#chmod A5+user:webservd:full_set:d:allow,user:webservd:full_set:f:allow foo
eon:/deep/tank#ls -Vd foo
d----w----+  2 admin    stor           2 Apr 20 14:12 foo
owner@:rwxp----------:-------:deny
owner@:-------A-W-Co-:-------:allow
group@:--------------:-------:deny
group@:-w-p---A-W----:-------:allow
everyone@:rwxp---A-W-Co-:-------:deny
user:webservd:rwxpdDaARWcCos:-d-----:allow
user:webservd:rwxpdDaARWcCos:f------:allow
everyone@:------a-R-c--s:-------:allow
This covers adding, deleting, modifying and replacing NFSv4 ACLs. Hope that provides some guidance in case you have to tangle with NFSv4 ACLs. The more exercise you get with NFSv4 ACLs the more familiar you'll be with getting it to do what you want.

Saturday, March 28, 2009

Testing/upgrading new versions of EON

Testing new versions of EON ZFS NAS with a previous USB/CF install is simple. The risk is minimal and backing out to the previous working version is simple. Simply boot the previous verion and follow the steps. This should work with USB(tested), compact flash(tested) and virtual installs(untested). First, transfer the new eon-0.590-b110-64-cifs.iso to your storage pool. You can do a transfer using a CIFS share or winSCP or via sftp. Let's say we transferred it to /pool/eon-0.590-b110-64-cifs.iso. Then we would mount the new image:
lofiadm -a /pool/eon-0.590-b110-64-cifs.iso /dev/lofi/1
mkidr -p /mnt/new
mount /dev/lofi/1 /mnt/new
Preserve your previous version
cd /mnt/eon0/boot
mv x86.eon /pool/x86.eon.backup
tar -cvf - . | gzip > /pool/boot.tgz
Transfer the new version (still in /mnt/eon0/boot, which should be empty)
rm -rf amd64 grub platform
cd /mnt/new/boot
cp -pR * /mnt/eon0/boot
updimg.sh /mnt/eon0/x86.eon
The new contents of /mnt/eon0/boot should have amd64, grub, platform and the new x86.eon. Now, replace any custom changes you had in /mnt/eon0/boot/menu.lst. Also, do not run zpool or zfs upgrade until you're satisfied you like the new version as there is no way of going back to a previous zpool (currently v14) or zfs (currently v3) version. You can now reboot into the new EON ZFS NAS. From there you can re-run setup and updimg.sh to re-id your new version or mount your previous version and transfer any customizations.

Friday, March 27, 2009

EON 64-bit 0.59.0 based on SNV_110 is 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.0 based on snv_110
tryitEON 64-bit x86 Samba ISO image version 0.59.0 based on snv_110

tryitEON 32-bit x86 CIFS ISO image version 0.59.0 based on snv_110

tryitEON 32-bit x86 Samba ISO image version 0.59.0 based on snv_110New/Fix:
- install.sh should work with vdi/vmware disks properly.
- image footprint/runtime is smaller requires less RAM.

Tuesday, March 17, 2009

EON snv_109 is alive

Here is a beta preview of EON ZFS NAS based on snv_109. Yes, it is alive. There are 2 build bugs that I am trying to resolve. A core on rtc and some manifest-import at boot time control. I will try to resolve and release this image as soon as possible. Note that with release snv_109 we get ACL shares on CIFS. ACLs on shares brings better compatibility with the Microsoft implementation and allows more control over access than the CIFS server previously supported. The "shares" file /pool/fs/.zfs/shares is shown at the end of the video. I wanted to find out why multi-core CPU support is showing incorrectly (kstat, mpstat, psrinfo) for this release but that may have to wait.

Tuesday, March 10, 2009

Customizing and optimizing EON

EON provides a method to allow customizing and optimizing your storage through a simple and easy to maintain process. There is a legacy startup script /etc/rc3.d/S99local that enables this. At boot it searches for /mnt/eon0/.exec and /mnt/eon0/.remove. This resides on the USB drive or CF and allows to automate and add your own commands at run level 3. It also allows you to reduce the RAM footprint of the image, leaving more for when ZFS gets hungry.

This was done so it was not necessary to run /usr/bin/updimg.sh everytime a simple change was needed, for example adding or modifying a script. It also allows the image to include NFS which everyone may not use. It would be a waste for that person to always have the /usr/lib/nfs binaries around, so to give back control to that person, they can simply add /usr/lib/nfs to /mnt/eon0/.remove and all those binaries will be removed at boot giving back the memory for other use. Similarly for other binaries (/usr/sfw/sbin/swat) and kernel drivers not applicable to your needs or hardware.

The thing to remember when making entries to /mnt/eon0/.exec is that it should be a non-interactive command. Commented entries are ignored. Exerpt listing of .exec
/usr/sbin/swap -a /dev/zvol/dsk/abyss/swap
/usr/sbin/ucodeadm -u /platform/i86pc/ucode/intel-ucode.txt
/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 30000
For /mnt/eon0/.remove entries you can go wild and experiment because you are erasing it from RAM so if you remove something you realize you need, simply remove the entry from .remove, reboot and all should be back. I have included a default set and commented some that I have found safe to remove in some cases. Exerpt listing of .remove
/platform/i86pc/ucode/intel-ucode.txt
#/kernel/crypto/aes
#/kernel/crypto/arcfour
#/kernel/crypto/blowfish
#/kernel/crypto/des
#/kernel/crypto/ecc
#/kernel/crypto/rsa
#/kernel/crypto/sha2
/etc/svc/repository-boot*
/kernel/drv/amd64/elxl
/kernel/drv/amd64/iprb
#/kernel/drv/amd64/kmdb
#/kernel/drv/amd64/intel_nb5000
/kernel/drv/power*
/kernel/drv/amd64/power

Tuesday, March 3, 2009

Benchmarking your EON ZFS NAS

Being able to test the performance of your storage unit is always important. Creating real world application loads and recording accurate statistics is not easy. Or is it? Sun has a great tool for this, called Filebench. Filebench is a new framework for simulating applications on file systems. So let's use filebench to test our EON ZFS NAS. There's a wide range of tests that can be performed and a detailed howto (see example varmail run) is here. Download the filebench_opensolaris-1.3.4_x86_pkg.tar.gz here Unpack it on your zpool
gzip -dc filebench_opensolaris-1.3.4_x86_pkg.tar.gz | tar -xf -
Create the necessary link
(cd /usr ; ln -s ../ZPOOL/filebench/reloc  benchmarks)
(cd /opt ; ln -s ../ZPOOL/filebench/reloc/filebench filebench)
That's it. We are ready to test.

Testing my PIII, Dell 4100, 1Ghz w 512Mb, 2Gb swap and 3x36Gb raidz1 pool royal produced the following:
::::::::::::::
copyfiles.stats
::::::::::::::
Flowop totals:
closefile2 997ops/s 0.0mb/s 0.0ms/op 11us/op-cpu
closefile1 997ops/s 0.0mb/s 0.0ms/op 19us/op-cpu
writefile2 997ops/s 15.0mb/s 0.2ms/op 230us/op-cpu
createfile2 997ops/s 0.0mb/s 0.3ms/op 304us/op-cpu
readfile1 998ops/s 15.0mb/s 0.1ms/op 109us/op-cpu
openfile1 998ops/s 0.0mb/s 0.1ms/op 113us/op-cpu

IO Summary: 6002 ops 5983.2 ops/s, 998/997 r/w 29.9mb/s,
4373uscpu/op
::::::::::::::
createfiles.stats
::::::::::::::
Flowop totals:
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
closefile1 189ops/s 0.0mb/s 0.6ms/op 19us/op-cpu
writefile1 189ops/s 2.9mb/s 34.1ms/op 229us/op-cpu
createfile1 189ops/s 0.0mb/s 44.1ms/op 367us/op-cpu

IO Summary: 149974 ops 566.2 ops/s, 0/189 r/w 2.9mb/s, 4
9326uscpu/op
::::::::::::::
deletefiles.stats
::::::::::::::
Flowop totals:
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
deletefile1 2725ops/s 0.0mb/s 3.9ms/op 140us/op-cpu

IO Summary: 50000 ops 2725.3 ops/s, 0/0 r/w 0.0mb/s,
0uscpu/op
::::::::::::::
mongo.stats
::::::::::::::
Flowop totals:
deletefile1 499ops/s 0.0mb/s 0.2ms/op 204us/op-cpu
closefile2 500ops/s 0.0mb/s 0.0ms/op 13us/op-cpu
readfile1 500ops/s 7.0mb/s 0.1ms/op 115us/op-cpu
openfile2 500ops/s 0.0mb/s 0.1ms/op 105us/op-cpu
closefile1 500ops/s 0.0mb/s 0.0ms/op 18us/op-cpu
appendfilerand1 500ops/s 4.0mb/s 0.3ms/op 292us/op-cpu
openfile1 500ops/s 0.0mb/s 0.1ms/op 84us/op-cpu

IO Summary: 7006 ops 3496.4 ops/s, 500/500 r/w 11.0mb/s,
4771uscpu/op
::::::::::::::
multistreamread.stats
::::::::::::::
Flowop totals:
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread4 2ops/s 1.8mb/s 455.4ms/op 13636us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread3 2ops/s 2.0mb/s 428.7ms/op 24988us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread2 2ops/s 1.7mb/s 473.3ms/op 27942us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread1 1ops/s 1.4mb/s 556.6ms/op 27728us/op-cpu

IO Summary: 83 ops 7.2 ops/s, 7/0 r/w 6.9mb/s, 13323
21uscpu/op
::::::::::::::
multistreamreaddirect.stats
::::::::::::::
Flowop totals:
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread4 3ops/s 2.7mb/s 348.3ms/op 16887us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread3 3ops/s 3.2mb/s 269.0ms/op 20442us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread2 3ops/s 2.6mb/s 270.5ms/op 18601us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread1 3ops/s 2.9mb/s 303.6ms/op 23271us/op-cpu

IO Summary: 128 ops 11.8 ops/s, 12/0 r/w 11.4mb/s, 8253
65uscpu/op
::::::::::::::
multistreamwrite.stats
::::::::::::::
Flowop totals:
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite4 6ops/s 5.9mb/s 160.7ms/op 8830us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite3 5ops/s 5.4mb/s 174.0ms/op 8889us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite2 6ops/s 6.0mb/s 157.6ms/op 8765us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite1 6ops/s 6.2mb/s 150.0ms/op 9035us/op-cpu

IO Summary: 248 ops 23.8 ops/s, 0/24 r/w 23.4mb/s, 332
054uscpu/op
::::::::::::::
multistreamwritedirect.stats
::::::::::::::
Flowop totals:
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite4 6ops/s 5.4mb/s 170.1ms/op 9011us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite3 6ops/s 5.5mb/s 167.2ms/op 8884us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite2 6ops/s 6.2mb/s 148.6ms/op 8877us/op-cpu
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite1 6ops/s 5.4mb/s 167.6ms/op 9260us/op-cpu

IO Summary: 249 ops 22.9 ops/s, 0/23 r/w 22.5mb/s, 347
543uscpu/op
::::::::::::::
randomread.stats
::::::::::::::
Flowop totals:
rand-rate 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
rand-read1 11269ops/s 88.0mb/s 0.1ms/op 67us/op-cpu

IO Summary: 112852 ops 11269.1 ops/s, 11269/0 r/w 88.0mb/s, 8
63uscpu/op
::::::::::::::
randomwrite.stats
::::::::::::::
Flowop totals:
rand-rate 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
rand-write1 8569ops/s 66.9mb/s 0.1ms/op 95us/op-cpu

IO Summary: 85813 ops 8569.1 ops/s, 0/8569 r/w 66.9mb/s,
1139uscpu/op
::::::::::::::
singlestreamread.stats
::::::::::::::
Flowop totals:
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqread 45ops/s 45.1mb/s 21.3ms/op 7863us/op-cpu

IO Summary: 472 ops 45.2 ops/s, 45/0 r/w 45.1mb/s, 2169
77uscpu/op
::::::::::::::
singlestreamwrite.stats
::::::::::::::
Flowop totals:
limit 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu
seqwrite 25ops/s 25.2mb/s 36.5ms/op 8801us/op-cpu

IO Summary: 280 ops 25.3 ops/s, 0/25 r/w 25.2mb/s, 341
069uscpu/op

Wednesday, February 25, 2009

EON boot chart

Bootchart is a tool for performance analysis and visualization of the boot process. With the help of some boot chart programs and process shared by Alex (1, 2), the creator of Milax I created a boot chart of EON. This shows the 32-bit CIFS version completely booted in under 28 secs. I need investigate why the CPU data on top isn't being plotted.

The original Opensolaris bootchart work was done by Erick Shrock and Dan Price in dtrace but the code was not released.
EON 32-bit CIFS Boot Chart: booted from USB < 28sec
EON 32-bit Samba: booted with 2 zpools (CPU data fixed)
EON 64-bit CIFS: booted with 2 zpools

Wednesday, February 18, 2009

EON 64-bit 0.58.9 based on SNV_104 is released!

Embedded Operating system/Networking (EON), RAM based live ZFS NAS appliance is released on Genunix! As always lots of thanks to Al and Genunix.org for download hosting.

It is available in a CIFS and Samba flavor
tryitEON 64-bit x86 CIFS ISO image version 0.58.9 based on snv_104
tryitEON 64-bit x86 Samba ISO image version 0.58.9 based on snv_104

Friday, February 13, 2009

Another way to add driver(s) to EON

This method uses a booted/running EON NAS to add a new driver to itself. Another simple method I overlooked to add a driver was to first transfer the driver binary(eg rtls, conf (eg rtls.conf) and 64-bit binary if applicable to eon. Place the files appropriately in /kernel/drv or /kernel/drv/amd64.
Test it using add_drv -v, for example I placed the file /kernel/drv/rtls
add_drv -v rtls
Current Method: Then edit /mnt/eon0/.backup entries to include the new driver files
/etc/name_to_major
/etc/driver_aliases
/kernel/drv/rtls
/kernel/drv/rtls.conf
/kernel/drv/amd64/rtls
Deprecated Method: Then edit the FILES section in updimg.sh to include this file
FILE="/etc/hosts
/etc/hostid
change to
FILE="/etc/hosts
/etc/hostid
/etc/name_to_major
/etc/driver_aliases
/kernel/drv/rtls
/kernel/drv/rtls.conf
/kernel/drv/amd64/rtls
End Deprecated Method

If the driver added is not listed in /etc/name_to_major, it (eg rtls, sfe, mega_sys)will need to be added to the last line and the number entry next to the driver incremented to a unique value. If the last line is
rtls 52
edit to be
rtls 52
sfe 53
To preserve this driver beyond reboots, run updimg.sh /mnt/eon0/boot/x86.eon

Thursday, February 12, 2009

Adding your own driver(s) to EON

Adding your own drivers to EON is possible in a couple of ways.
Method 1: This method uses another working opensolaris system to un-compress a copy of x86.eon image. Add the driver binary and driver.conf file to /kernel/drv/ and 64-bit binary to /kernel/drv/amd64 path where the image was unpacked. The image will then be repacked and transferred the back to the appliance.
/boot/solaris/bin/root_archive unpack x86.eon [path_to_unpacked_dir]
cp rtls [path_to_unpack_dir]/kernel/drv
cp rtls.conf [path_to_unpack_dir]/kernel/drv
For 64-bit EON you would also add
cp rtls [path_to_unpack_dir]/kernel/drv/amd64
add_drv -b [path_to_unpacked_dir] -n -v [driver_added_kernel_drv]
/boot/solaris/bin/root_archive pack x86-new.eon [path_to_unpacked_dir]
Method 2: On EON, enable virtual consoles and insert a pause in the updimg.sh script. Run the updimg.sh until the pause. Finally, switch consoles (ctrl+alt+FX, where X is the console number) and copy the driver binary and driver.conf to /mnt/upd/kernel/drv.
svccfg import /var/svc/manifest/system/vtdaemon.xml
svcadm enable vtdaemon
svcadm enable console-login:vt2
svcadm enable console-login:vt3
now you can use ctrl-alt-F1/F2/F3 to switch between terminals
edit updimg.sh and change:
backup_repository
undo_mnt_lofs
to:
backup_repository
echo -n "Press enter to continue after adding drivers " ; read x
undo_mnt_lofs
run (if default path_to_img=/mnt/eon0)
/usr/bin/updimg.sh [path_to_img]/x86.eon
When you see the mesg press ctrl-alt-F2, login and add your driver to /mnt/upd/kernel/drv. When done, ctrl-alt-F1 to switch back, login and press enter to complete updimg.sh. You should then have a new image with your added drivers.

Method 3: Get the current EON build kit and opensolaris DVD image and build your own appliance, including the needed drivers. This will require a working opensolaris install (snv_98 or higher, others should work) to run imgsol.sh. I will ask Al at Genunix to host these plus the 64 bit versions. I will add the rtls nic to the 64 bit image.

Monday, February 9, 2009

Using webmin to administer your EON NAS

Using webmin to administer your EON ZFS NAS is fairly simple. You can get and learn more about webmin here. The Solaris package was used in this example setup.

After being downloaded. Note this step has to be run on a system that has a working pkgtrans.
pkgtrans webmin-1.450.pkg /tmp all
This converted the package from a data stream to file system format and produced the directory containing the package in file system format.
/tmp/WSwebmin

I then created the following directories on my zpool:
mkdir pool/webmin
mkdir pool/varwebmin
then I symlinked the following:
cd /etc ; ln -s ../abyss/webmin webmin
cd /var ; ln -s ../abyss/varwebmin webmin
cd /opt ; ln -s ../abyss/WSwebmin/reloc webmin
cd /var/log ; ln -s ../../abyss/bandwidth bandwidth
finally, cd /opt/webmin (this is only needed once)
cd /opt/webmin
./postinstall
and to start
cd /etc/webmin
./start
Here's quick capture of the session:

Screenshot of running processes
Here you can see the 500MB ZFS swap
Service Management Facility