Creating a NAS Box Using OpenFiler
In a recent walkthru we outlined the steps for taking an existing server and converting it into a NAS box. That article assumed that you already installed Linux on the server and you will maintain that installation (i.e. updates, security, etc.). This article takes examines an alternative: a dedicated NAS distribution called OpenFiler that allows you to very simply create a stand-alone NAS box that can be administered over the web.
In a recent article we saw how easy it is to take an existing server and enable NFS, effectively turning it into a NAS box (See Creating a NAS Box with an Existing System). The steps are fairly simple and nearly all Linux distributions come with NFS (excluding some of the embedded or specialized distributions). However, implicit in this approach is that you have to maintain the server distribution by keeping it up to date, making sure it is patched, and implementing your own security on the system. This can include many packages installed on the server that have nothing to do with NFS or NAS.
An alternative approach is to use a dedicated NAS appliance distribution that uses only the packages necessary for a NAS box. This would reduce the number of packages that you need to keep up to date or even monitor for security problems. This article examines one popular NAS distribution, OpenFiler.
Introduction to OpenFiler
OpenFiler is a NAS distribution that is created using rPath and is licensed under GPLv2 by Xinit Systems. While an open-source project, Xinit provides fee-based support as well as specialized versions and an administrators manual which you have to purchase.
OpenFiler started as a simple NFS distribution with simple administrative tools but it has grown to become much more than that. Currently it supports the following network protocols:
- NFS (currently NFSv3)
- iSCSI (both initiator and target).
In addition, it has a number of features that are briefly summarized below (see this article for a comprehensive list).
- Support for hardware RAID devices (if Linux supports them)
- Support for software RAID (md devices)
- Support for Fibre Channel (FC) drives if Linux supports the hardware
- Logical Volume Manager (LVM)
- Point-in-time snapshots (presumably using LVM)
- On-line volume/filesystem expansion
- Support for ext3, reiserfs, and xfs as of version 2.3 and the writing of this article
- Synchronous/asynchronous replication of data
- Flexible quotas for various situations:
- Per-volume group-quota management for space and files
- Per-volume user-quota management for space and files
- Per-volume guest-quota management for space and files
- User and group templates support for quota allocation
- SMC/CIFS support (presumably via Samba) with several significant features:
- Shadow copy for snapshot volumes
- Support for auto-created SMB home directories
- Web based GUI (actually quite a good one as we’ll discover)
- Authentication via Kerberos 5
It also supports several network directory services for user accounts.
The system requirements for OpenFiler are pretty modest. At a minimum it requires:
- 500 MHz CPU
- 256 MB of RAM
- 1.2 GB hard disk space
- An optical drive (for local installation)
- Ethernet like network interface
Even the recommended system requirements aren’t too demanding.
- 64 bit processor at 1.6 GHz or faster
- 1GB of RAM
- 2GB of hard disk space
- Hardware RAID disk array controller
- Ethernet interface
This is a fairly modest list of requirements and pretty much any reasonably modern server can meet them. On the other hand, Linux users sometimes like to drag out some really old hardware and re-use it. So be sure to check your hardware against these requirements.
To further investigate OpenFiler, a simple test system was used to represent a stand alone NAS box.
The following details summarize the basic configuration of the test system.
- OpenFiler 2.3
- AMD Phenom X3 8400 CPU (2.1 GHz)
- 3GB of memory
- Single Seagate ST3500418AS (500GB, 16 MB cache, SATA 3.0)
- GigE Ethernet port (uses Nvidia chipset)
Next: Using OpenFiler (A Visual Guide)