 |
Network Attached Storage :: To provide a NAS device that supports common LAN file sharing protocols (including SMB/CIFS, NFS and AoE/ATA over Ethernet) with a scalable storage capacity (minimum, one terabyte of storage), and at a LAN access rate of no less than one gigabit per second (1Gbps).
Project output should include hardware component information, hardware assembly instructional documentation, Linux firmware and operating documentation (if necessary). |
 |
Commercial NAS (Network Attached Storage) and SAN (Storage Area Network) solutions are unnecessarily expensive. Common off-the-shelf (COTS) hardware combined with the rich featured, stable and compact Linux OS, allows the non-enterprise consumer to develop professional and scalable NAS solutions at a fraction of the cost of equivalent commercial solutions.
Project Saturn will provide a multi-terabyte NAS device that is compatible with both Linux and Windows desktop and server platforms. Utilising the best price-to-megabyte ratio for IDE/SATA hard disk drives, Saturn will provide roughly two terabytes of storage for about US$1,000 (valued as at Q1, 2006).
To assist in the rapid development of the embedded OS, Saturn will employ the (currently incomplete) libMidnightCode software. To ensure maximum repeatability (for the reader), the project will utilise USB mass-storage hardware for its embedded OS, also guaranteeing nil disk storage capacity wastage to the host OS.
Saturn has been on the cards for quite a while, though a lack of available time has held-back initial in-roads. However, as hardware was ordered for this project on January 11, 2006, coding had to start. As at January 22, libMidnightCode had been extended to support automatic detection of the first 16 IDE devices and the first 16 SCSI devices available under a Linux 2.6 kernel - the number 16 being an arbitrary limit. Discovery information includes the Vendor, Product, Revision, Serial Number and Capacity for each drive. Further, libMidnightCode was also extended to support configuration file writing (as well as configuration file reading, which it already supported). This should allow the device to manipulate its own configuration file, leaving the user free to manage it via HTTP.
With late hardware delivery and a slow development cycle, this update (at February 20) reveals both operational hardware that runs CHAOS from a USB key as a proof-of-concept, and a libMidnightCode now capable of low level disk and interface management along with the corresponding configuration file controls. The current development effort is being put into getting libMidnightCode to interface with a HTTP user environment so that management can be enabled from user to system.
As at October 2006, version 1.2 of libMidnightCode has been integrated with a proof of concept Linux 2.6 kernel based platform and been used to USB boot the Project Saturn hardware to multi-user state. The difference between this and the February testing is that CHAOS was based on a 2.4 kernel, and was both unable to work with the Saturn SATA controllers and failed to use all of the features libMidnightCode had to offer. This week's testing has shown that the proof of concept platform with its integrated libMidnightCode software (namely init) is able to detect all of the drives in the system, be user configured via static config file, and also fall back to a default known-good state in case of a missing config file; something CHAOS has previously been able to do.
|