Network-attached storage (NAS) is a dedicated data storage technology. The NAS server provides centralized data storage, which is easily accessible to users who belong to different networks over the Internet. There are different applications that can be implemented using NAS, such as data storage and file sharing. The purpose of the NAS server that I am going to set up, is that of data storage. It is to be used to provide remote backup of the data in clientsâ€™ servers.
The Operating System
Next step I have to do is to decide on an OS to setup the NAS server, which is free and easy to use.
I came across the site http://www.openfiler.com/
Openfiler is a project for a open source Network Attached Storage (NAS) OS distribution. It was developed by Xinit Systems and provides a file-based NAS system and block-based Storage Area Networking (SAN) in a single framework. Openfiler brings together almost all storage networking protocols into a single framework.
Installation via VMware :
Openfiler is a standalone Operating System, which requires access to all system resources in order to function. I got confused on how to install it remotely. Then I came to know that it can be installed in a virtual machine environment such as VMware. I decided to try out first in a test server which had a 40GB hard disk.
A VMware Server installs on any existing server hardware . It partitions a physical server into multiple virtual machines, and provides for more hardware utilization and flexibility. So my first task was to install the VMware server.
The following packages needs to be installed in the remote server â€“ The VMware Server itself and also the Management Interface. Also install the VMware Server Linux client package, both in the server and your local machine. The rpms for the packages can be downloaded from the VMware site and the installation steps too are documented there. The installation guide can be obtained fromhttp://pubs.vmware.com/server1/wwhelp/wwhimpl/js/html/wwhelp.htm
Once the VMware installation is complete, you need to connect to the server remotely using the VMware Server client package. Login using the IP address of the server and root password.
Once you are connected to the VMware server, you need to create a new virtual machine. It would create a set of files that represent a new computer, with a blank, unformatted hard disk, onto which the new operating system can be installed. The virtual disk by default has its disk space preallocated at the time of creation. I created a virtual disk of about 20GB size. The virtual disks are physically located in the folder /var/lib/vmware/Virtual Machines/ .
Now I have to obtain the iso image for the Openfiler OS. I got the latest one, Openfiler 2.1, from http://sourceforge.net/ The Images of CD-ROMs are usually .ISO files. The .iso image was downloaded to the folder that was created for the virtual disk in the remote server, using wget command in SSH. Now, use the virtual machine settings editor to connect the virtual machineâ€™s CD-ROM drive to the .ISO image file, then Power ON the virtual machine. The Openfiler OS would start installing, and you would get a graphical installation screen as per the steps given here:http://www.openfiler.com/docs/install/graphical_install.html Once the installation is complete, you can start configuring Openfiler by pointing your browser at the host name or IP address of the Openfiler system. The interface is mounted on https port 446. e.g. https://test.myserver.com:446.
Installation via Installer :
Now that everything went fine in the test server, I decided to give a try in the real server. But the actual server had a 2 TB hard disk, which made my task difficult. I was not able to use VMware, as the hard disk size was really huge to create virtual disks. So, I started thinking of other options. There was still the restriction of no physical access to the server.
Luckily, I got IPMI access to the server. The Intelligent Platform Management Interface (IPMI) specification has a set of common interfaces to computer hardware which can be used to monitor system health and to manage the system remotely. The IPMI provided a Text console, which I could make use of in the installation purposes.
But the server wasn’t configured to show the grub menu over the serial console. This would prevent us from selecting alternate kernels during the boot process. I could find that, for grub to work with IPMI, it has to be enabled for the serial console. Follow the steps given below to do this.
Find the serial port number and speed used on your server:
# grep agetty /etc/inittab
On my server the console is connected to serial port 1 with a speed of 19200:
co:2345:respawn:/sbin/agetty ttyS1 19200 vt100-nav
Now open /boot/grub/grub.conf, and add the following lines below “hiddenmenu”:
serial --unit=1 --speed=19200 terminal --timeout=80 console serial
Replace the port number , timeout and speed if necessary.
To test this out, reboot your server and then connect to the serial console as soon as possible using IPMIView. Eventually, after a minute or so, you should see the following message repeating:
Press any key to continue. Press any key to continue. Pressing a key at this point will launch GRUB on the serial console.
First off, you would need to download the network installation image for the Openfiler OS that you want to install. I was able to download one boot.iso for Openfiler from
I downloaded the boot.iso image to the server itself, using the wget command. Next, you need to create a temporary directory in which to mount the ISO image to get the files out of it:
You also need to create a directory in your /boot directory . The /boot should be on a partition of its own. Copy the boot files from the iso image to the folder created.
Next you need to find the appropriate initial RAM disk and kernel files amongst these boot files. These will generally be called “initrd-xxxxx” and “vmlinuz-xxxxxx” respectively. Now that you have the boot files in the boot partition, you need to configure GRUB to allow you to boot into the installation.
title NAS install root (hd0,0) kernel /nas/isolinux/vmlinuz console=ttyS1,19200 initrd /nas/isolinux/initrd.img
This assumes that your boot partition is /dev/sda1 (or /dev/hda1) as indicated by the “(hd0,0)” part. If your /boot partition is different, you can alter the device accordingly. The “console=ttyS1,19200″ part is very important as it tells the installation program to use the serial console accessible through the IPMI View program for the installation.
Now, you should get the iso image for the openfiler as mentioned earlier. I had a second hard disk of 50GB, in the server. I mounted that as another partition and downloaded the iso image for openfiler to that partition.
Now, reboot the server and choose the NAS install from the grub menu. The installer would start running. Fill in the details appropriately. The installer gives different options for installing the OS, such as NFS, FTP, HTTP, Hard Disk, CDRom etc. I elected the Hard Disk option as my OS image was on the second hard disk. I selected the appropriate hard disk and gave the path to the iso image. Please note that Openfiler does not exist with any other Operating System. The installer would format the entire drive on which its being installed, before installing the packages. The installer successfully completed installing the Openfiler in the 2TB drive of my server in about 4-5 hours. The installation steps are the same as given earlier,http://www.openfiler.com/docs/install/graphical_install.html. Only difference that it would be text based and not graphical in this case. You can partition the drive manually or automatically, as you prefer. Once the installation is over, Reboot the server and you would be able to get a new server with Openfiler OS installed.
Login to the Interface and configure the Openfiler as per your requirements. A very good manual is available here : http://www.openfiler.com/docs/manual/
The installation process was a Trial and Error method which took up a lot of my time . There may be other effective methods and there are other OS distributions available for NAS. The steps given above depict the way I set up my server .