EON ZFS Storage (Embedded Operating system/Networking)
EON is a small Solaris ZFS NAS (network attached storage) image based on opensolaris. This is a RAM based live/install image which runs from CD, USB or CF (compact flash) or Disk on Module. The appliance image provides a high performance 32/64-bit storage solution built on ZFS using cost effective disks. A build script provides the basis for building your own network attached storage appliance on x86 hardware from the Solaris Express Community Edition CD's.
Requirements to test/install the pre-built iso (updated):
- A blank CD to burn, demo and install the iso (eon.iso).
- A bootable USB drive, 128 Mb or larger (256 Mb or higher recommended).
- An IDE to compact flash adapter and 128Mb or larger compact flash drive (CF install).
- A x86 machine capable of booting from CD and USB.
Requirements to create your own iso:
- A standard working opensolaris installation, B72 or higher.
- Solaris Community Express Edition CD's (a.k.a Opensolaris) or ISO images, B84 or higher.
- EON build scripts (imgsol.sh) and root access on the working Solaris installation.
Tested Solaris Community Express versions :
- Solaris Community Express Edition B84 - B89.
- Simple and Secure CLI (command line interface) administration. Web-based GUI/BUI possible as a future development port of the Freenas web admin
- Supports ZFS, iSCSI (target and client initiator), NFSv3, NFSv4, CIFS (Sun Microsystems Implementation) or Samba, SFTP, SSH, NTP, IP filtering, rsync
- Supports RAID levels:
RAID-Z (similar to RAID-5 with variable-width stripes to avoid RAID-5 write hole, requires 3 or more disks)
RAID-Z2 (RAID-6, double parity, requires 4 or more disks)
- Supports client OS, Windows 2000/XP/2003/Vista, Mac OS X, Unix and Linux
- provides transparent and dynamic filesystem compression (using zlib or gzip) to save space
- Capable of expanding the zpool by expanding each disk in the pool (since snv_117)
- allows thin provisioning (green) file systems
- unlimited files, links, directories and snapshots(version-ing)
- link aggregation
- IPfilter module and application to control/restrict access to the appliance/device
- DTrace, Perl and PHP
- multi-cast DNS client and server (since version 0.59.3)
The development of the busybox and squashfs project will help to further reduce the memory footprint and performance of the image. Further possible enhancements include using mkisofs to create iso images of a binary set. This binary set could be compressed and later mounted to the opensolaris storage appliance image (eg /usr/local) via lofiadm using gzip compression/decompression.
After the image (eon.iso) is burned to a CD and booted. Login as root.
user: admin pass: eonstore
user: root pass: eonsolaris
Type and run the following. This script prompts the user through configuration questions like hostname, IP/DHCP, netmask, domain name and more. This step will ask questions to configure the image for live image use.
This step is optional and requires a destination USB (inserted) or CF drive attached. The command will format and install the live image to a USB or CF drive.
This step should be done after install.sh or, to preserve configuration changes made to the image. This preserves the original image to /boot/x86.eon.orig (bootable by the OEM choice from GRUB) and saves a new default boot image to /boot/x86.eon. It will move the live image to x86.eon.1, x86.eon.2 and so on each time it is run.
For size considerations, the network driver built into the image is intended solely for the machine the image will run on. This submitted image may or may not match the interface in your testing machine. In the submitted image, the test hardware (Dell Optiplex GX 280, 520, 620 745) had broadcom and intel cards so the driver (bge, iprb) package (SUNWbge) was installed. The user can substitute a suitable driver by building their own EON live/install image.
Build package command description:
- imgsol.sh: The script to build your own live storage image. It does this using Solaris Community Express Edition CD's.
- stripbnl.sh: This script strips binaries and libraries to reduce the size and RAM footprint of the image
- trimpkg.sh: This processes the del-SUNWxxx package files and removes any file not commented. The del-SUNWxxx package files a created using pkgchk -vn SUNWxxx > del-SUNWxxx 2>&1.
- chkdev.sh: This script automounts CD's, USB and CF drives.
- makecd.sh: This script creates the CD iso image at the end of the build.
- example.imgsol.sh: Is an example answer key output of imgsol.sh used to build the submitted EON live image
Open bug(s) and other errors:
*1 - CIFS via Samba only for now, because the solaris CIFS kernel module is not running on a ramfs. The /devices/pseudo/smbsrv@0 device entries do not get created. Last working version is on B84. This seems broken since B85, bug id CR #6700070 (http://bugs.opensolaris.org/view_bug.do?bug_id=6700070), thread (http://www.opensolaris.org/jive/thread.jspa?messageID=243767𻠷)
*2 - The "WARNING: add_spec: No major number for nv_sata, ahci, si3124, marvell88sx" at boot are harmless. CR #6486493 (http://opensolaris.org/os/community/on/flag-days/pages/2008030601/)
*3 - Multiple cpu cores not being shown by psrinfo. Noticed since B87. Last noted working in B84.