Embedded Network Storage

freeNAS live on ebox-2300

ebox-2300 with USB storage

FreeNAS live on ebox-2300

FreeNAS live on ebox-2300

There are two technologies on how to centralized data access storage to heterogeneous network clients (as network storage): (1) NAS (Network-Attached Storage) and (2) SAN (Storage Area Network). In this article (written in the middle of 2006), i will dig the possibility to implement these technologies on embedded platform as a sell-able product.

About NAS and SAN

There are two approach use in data storage server:

  1. NAS (Network-Attached Storage) as defined in wiki and here.
    NAS uses file-based protocols such as NFS or SMB/CIFS where it is clear that the storage is remote, and computers request a portion of an abstract file rather than a disk block.). A such project using this approach is FreeNAS.
  2. SAN (Storage Area Network)
    SAN attaches remote computer storage devices such as disk array controllers, tape libraries and CD arrays to a servers in such a way that to the operating system the devices appear as locally attached devices. A such project using this approach is openfiler.

In this writing, i refer network storage to both NAS and SAN. A good reference about network storage in Bahasa, can be found at “trend-pasar-bagi-storage-area-network-12-2000.rtf” file and storage-area-network-apakah-itu-12-2000.rtf.

Who Will Need This Network Storage

To identify requirement of our system, we must ask ourself who is targetting users and define what actually they need and what for

The typical applications of network storage are:

  1. Store multimedia (audio, video, image) files and give interface to user to play them in streaming (multimedia storage system). Combined with client (embedded board) playing GeeXboX will become a complete Home Theater System
  2. Digital library system (references, journal, paper, e-books)
  3. Document archiver system (*.doc, *.xls) to be used in thinclient-based system
  4. Backup storage system. NasBackup (http://www.nasbackup.com) and Unison client are the opensource backup client under windows. It is a high-performance, enterprise-grade system for backing up MS Windows desktop PCs, laptops and servers to network disks
  5. SQL database storage system. This will have wide range implementation.
  6. Presentation server (this system will serve control request from networked client that need to display his
    presentation. although it’s out of network storage intention, but i think it can be built using this technology)
  7. Internet cache storage for proxy server
  8. Distro repository
  9. Asterisk IP-PBX system, with sounds, music-on-hold and voicemail files are in shared mode, can be accessed from network with authentication

How to Compete with Existing Products

There are network storage products currently, such as Linksys NSLU2 Network Storage Link USB2. It’s fairly cheap in price about US$101 for quantity 1. So, how our product will compete with that such cheap products?

  1. Collect all user requirements around the use of this storage technology for example
    • database system integration
  2. Application oriented storage. It’s the way to battle with the mass products
  3. Build own customized hardware. Refer to this products used in openwrt.

Using FreeNAS

This describes how to use FreeNAS. Read the FreeNAS Setup and User Guide found here. Read also FreeNAS tutorial from here.

Install for The First Time

  1. Download FreeNAS iso from here and burn the image to CD
  2. Boot PC x86 from CD
  3. Set appropriate setting, including the IP number
  4. Point your browser to that IP number: http://_ip_number_/ , and enter admin as the username and freenas as the password
  5. If you want to install FreeNAS to CF or harddisk select the installation menu

FreeNAS Services

The services provided by FreeNAS listed here:

  1. CIFS (Samba)
    CIFS is the protocol used under Microsoft Environment. It’s this protocol that is used when you
    select ‘Network neighborhood’ under Windows.
  2. FTP
    File Transfer Protocol is used to connect two computers over an IP network so that the user of one computer can transfer files and perform file commands on the other computer.
  3. NFS
    NFS is the CIFS equivalent for UNIX/Linux World. If you have a Linux machine that needs access to FreeNAS, it’s the protocol to be used.
    RSYNC is a multi-platform incremental copy over network utility that can be used for backup. If you want to backup some of your files regularly, it’s the protocol to use: The incremental sync process permits a copy of the differences in the files across the link, from the last backup. RSYNCD setting mode are as Server, Client and/or Local synchronization.
  5. SSHD
    SSH (Secure Shell) permits an alternate and highly secure form of FTP access to the FreeNAS storage. SSH is enabled via the Services/SSHD page. It will permit the use of:

    • SFTP file transfer
    • SCP File transfer
    • SSH access and remote commands execution
  6. Unison
    Unison is a multi-platform file-synchronization tool. Unison can synchronize changes to files and directories in both directions simultaneous, there is no ‘source’ and ‘destination’ and at the end of the process both sides should be in the same state.
  7. AFP
    AFP permits Apple MacOSX users to access the storage resources of FreeNAS.
  8. iSCSI Target (since 0.685b version)
    You must have a minimum of 256MB of RAM for using iSCSI-target.
  9. Dynamic DNS (since 0.685b version)
  10. UPnP
    UPnP enables the UPnP file server (Works great with the media player GeeXboX for example)

Upgrade FreeNAS to 0.685b-nb20070510

In FreeNAS-0.684b, i found a bug in NFS service when configure it
using webGUI configuration. It doesn’t provide (+) sign to add Authorization network, so it will complain with error. Oliver suggest me to use FreeNAS nighty build version with fixed such bug.

FreeNAS upgrading can be done via the Firmware Update page in webGUI configuration. It needs an .IMG file to be used for upgrading.

In this case, i will just reinstall the FreeNAS with newer version from CD. Burn the .ISO file to CD and install them to Compact Flash.

Running FreeNAS on eBox-2300

After reinstall newest FreeNAS (0.685b-nb20070510) on Compact Flash 256 MB, i tried to run it on eBox-2300. eBox-2300 runs on 200 Mhz Vortex86 System-On-Chip. eBox-2300 specifications and user manual are here and here respectively.

Setting FreeNAS for the First Time

The first setting to be done is mainly to set the IP address.

  1. Connect VGA port to monitor, just to see FreeNAS menu option
  2. Select 2, to set IP address. In this case, I set this to that reachable from our network
  3. Using other PC client, point the browser to this address: Enter admin as username and freenas as password. Here is the snapshot.

Configuring Hard Drive

This tells you how to add storage device(s), format and mount the disk(s).

  1. I inserted 128 MB USB flashdisk to be used as the storage. FreeNAS will automatically run hotplug to detect this type of device, as seen at Diagnostics->Logs:System. It’s detected as da0 device.
    FreeNAS  detected disks

    FreeNAS detected disks

  2. Add Disk by selecting Disks->Management and click the (+) sign to add the disk to the disk list need for network storage as shown at the right figure
    FreeNAS disks management

    FreeNAS disks management

  3. Select detected USB disk (i.e da0) and set the disk parameter. I select ‘FAT32‘ in Preformat FS dropdown menu (it’s an information field that don’t impact the comportment of FreeNAS). Click add button and then apply button to save the disk setting. You should have disk list as shown at the attached figure. We can then use this disk as our network storage.

    Disk Management:Add

    My Disks list

    My Disks list

  4. If you want to format the disk, select Disks->Format menu. I myself need this disk formatted. I selected UFS (FreeBSD native file format) as the File system format, instead of FAT32, as recommended in FreeNAS user guide. Disk initialization log detail will appears.
    Format settings

    Format settings

    Format response

    Format response

  5. To use it, we must mount it. Select Disk->Mount Point, click on the (+) sign. I’m using USB128M as Share Name and left the others as default. Then click Apply changes button to take effect of the changes.
    Disk mounting

    Disk mounting

Use the Services

To be able to access the NAS shares, we must enable services on the freeNAS server over which we can connect to the shares. Users then can access the shares using his preferred service, either from windows or from Linux, by using smb, neighborhood, ftp or any else way that supported by FreeNAS. All accessed data is unity, that means they don’t depend on which service they come.

  1. To enable CIFS service, select Services->CIFS and check the enable checkbox. I just left the settings default as the following. Click Save and Restart button. We can then access (write, read and modify) the shares from Linux using SMB or from Windows explores as shown here and here.
  2. To enable FTP service, select Services->FTP and check the enable checkbox. I used the ftp settings as follow. I enabled anonymous and local user login (to be used if you want to create local user with Access->Users and Groups menu). Click Save and Restart button. Here is the snapshot when i accessed the share with Konquerer ftp.
  3. To enable SSH service to allow SFTP, SCP and SSH access and remote command execution, select Services->SSHD and check the enable checkbox. I used the sshd settings as follow. I enabled Permit root login because there is only this one user in my system (if you want to create another user instead of root user, go to Access->Users and Groups). Click Save and Restart button. The snapshot when i make ssh to that server and make transfer via SFTP are shown here and here.
    SFTP will use $USERDIR as its default current directory, so if you want copy/access files on another location (mounted disks), you must change the targetted directory by yourself.
  4. To enable NFS service, select Services->NFS and check the enable checkbox. I just left the settings default as follow. Click Save and Restart NFS button. Error found in version 0.684b when activating this services that tells about ‘No networks declared’ has been fixed in this nighty-build version. I tried to write a file in nfs-mounted storage, as shown here.
  5. To enable RSYNCD service, select Services->RSYNCD, select the server type tab and then check the enable checkbox. I activated RSYNCD Server with default setting as follow. Click Save and Restart button. This is the snapshot how i synchronize local changes to the remote. I created local and remote directory named rsync. Then i make changes to the file inside rsync local directory and synchronize it to remote
  6. To enable Unison service, select Services->Unison. I set the Unison as follow to use USB128MB share on Flash disk device. Click Save and Restart button.
  7. To enable uPnP A/V Media Server service, select Services->uPnP. I add shared directory (i.e /mnt/USB128M/mmedia) that will be used to store multimedia files in the settings as follow. You must create directory manually if it didn’t exists yet. Click Save and Restart button. Notes: New added files on the share are not updated automatically. You must restart(disable/enable) this service to rebuild the new file list.

Design Requirement

Design consideration are as follow:

  1. Capacity
    • How big is the storage
  2. Performance
  3. Availability
  4. Scalability
  5. Cost

Action Plan

    [ ]:Todo,   [X]:Has done, [V]: Partially done, [-]:Tried, but failed

[V] Getting information about NAS and SAN
    [X] What is NAS and SAN
    [X] Get information about NAS-like and SAN-like products have been already in market, especially in Indonesia
    [ ] How to measure NAS and SAN performance
        [ ] Functionality

[V] Trying freeNAS
    [X] Download freeNAS from here
    [X] Install FreeNAS-0.684b on Compact Flash
    [X] Run compact flash disk on embedded board EBOX
    [X] Update to FreeNAS-0.685b-nb20070510
    [V] Explore all FreeNAS capabilities (based on services it provides)
        [X] CIFS (Samba)
        [X] FTP
        [X] NFS
        [V] RSYNCD
            [X] Server
            [ ] Client
            [ ] Local
        [X] SSHD
        [X] Unison
            [ ] Trying Unison synchronization
        [ ] AFP (optional, as i don’t have Apple’s)
        [X] UPnP for GeeXboX
             [ ] GeexBoX trial
    [ ] Development system, can be found here
    [X] Get all FreeNAS Documentation
    [X] Hardware used, can be found here 
    [ ] Define physical storage capacity and type

[ ] Trying Openfiler
    [ ] Download Openfiler from here

[ ] Develop freeNAS
    [ ] High Availability
    [ ] Database storage
    [ ] Add distro repository module
    [ ] Implement RAID
    [ ] Add asterisk system
    [ ] Add LCD to the box
    [ ] Create multimedia home system
         [ ] Develop GeexBox
    [ ] Create backup solution system
         [ ] Using Rsyncd and NasBackup client
         [ ] Using Unison and its client

[ ] Develop Openfiler

[ ] Testing freeNAS
    [ ] Determine freeNAS testing objectives

[ ] Testing Openfiler
     [ ] Determine Openfiler testing objectives


  1. The Free NAS Server Wiki
  2. Low Cost SAN Solutions
  3. Network Storage Link for USB 2.0 Disk Drives from Linksys
  4. Buffalo network-attached storage series
  5. Openslug
  6. UnSlung
  7. Trend Pasar bagi Storage Area Network (SAN). Onno W. Purbo. It can be download from here
  8. Storage Area Network – apakah itu?. can be downloaded here
  9. Indonesian Linksys Prices and in pdf
  10. Network-Attached Storage with FreeNAS tutorial

22 Responses to “Embedded Network Storage”

  1. pak didik harga box-nya berapa tuh .. pengen nyoba nih…

  2. Kalo di Indonesia dijual dimana?

  3. Pak didik, apakah kecepatan prosesor dan lan card,berpengaruh thdp kinerja freenas,dan router lain secara umum?kok aku amati bnyk router embedded semacam freenas atw mikrotik,pake prosesor kelas p1 233,walau ada jg skrg yg sekelas p3 800mhz, ngaruh enggak sih prosesor,juga lan card ukuran 1000mhz,

  4. It’s an remarkable paragraph designed for all the web users; they will take advantage from it I am sure.

  5. Your own write-up provides confirmed useful to me.
    It’s very educational and you’re simply obviously really well-informed in this region. You possess popped my own sight to be able to varying thoughts about this matter using intriguing, notable and solid articles.

  6. This post is actually a pleasant one it helps new web viewers, who are wishing in favor of blogging.

  7. I’ve read some excellent stuff here. Certainly price bookmarking for revisiting. I surprise how a lot effort you put to create any such wonderful informative site.

  8. You need to take part in a contest for one of the most useful sites on the internet.
    I am going to highly recommend this website!

  9. What’s up Dear, are you truly visiting this web site regularly, if so then you will absolutely get fastidious experience.

  10. An impressive share! I’ve just forwarded this onto a colleague who was doing a little homework on this. And he in fact bought me dinner simply because I found it for him… lol. So let me reword this…. Thank YOU for the meal!! But yeah, thanx for spending some time to discuss this matter here on your web site.

  11. Every weekend i used to pay a quick visit this site,
    because i want enjoyment, for the reason that this this web page conations genuinely
    good funny information too.

  12. I for all time emailed this weblog post page to all my contacts, because if like
    to read it afterward my links will too.

  13. I am regular reader, how are you everybody? This piece of writing posted at this web page is truly pleasant.

  14. I think that what you said made a ton of sense. However, think about this,
    suppose you were to write a killer title? I ain’t saying your information is not solid., however what if you added a title that grabbed a person’s attention?

    I mean Embedded Network Storage | :: Eko Didik Widianto
    :: is a little vanilla. You ought to peek at Yahoo’s home page and note how they create news titles to grab people to open the links. You might try adding a video or a related pic or two to grab readers excited about everything’ve written.
    Just my opinion, it might make your posts a little livelier.

  15. What’s up, yup this paragraph is really good and I have learned lot of things from it on the topic of blogging. thanks.


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )


Connecting to %s

%d blogger menyukai ini: