Top Banner
Build Your Own Atom-based NAS - Part 2 Trying Ubuntu Server In Part 1 , we got a basic Intel Atom-powered NAS up and running, using FreeNAS as its operating system. Read performance was good, write performance, so-so, but speeds were far from being limited by drive and network speeds. So, taking another suggestion from the SNB Forums, I loaded up Ubuntu Server and gave it a spin. Ubuntu Server edition might look big and enterprisey from its webpage description, but it's perfectly usable for SOHO and SMB NAS use. The key is to add two more pieces: the Webmin administration GUI; and Neil Brown's mdadm Linux RAID utility. Webmin is the Linux-world standard for GUI-based server administration. My first exposure to Webmin was years ago when I briefly set up my first Linux LAMP server for local website development. It was really a godsend to me as a Linux newbie and sure beat the hell out of editing Apache and other config files! In a similar way, mdadm is the Linux world's solution for software RAID arrays. It allows you to create, tweak, grow and reconstruct RAID arrays and supports linear and RAID 0, 1, 4, 5 and 6 arrays. Forms of combination striped and mirrored arrays (variously referred to as RAID 0+1, 1+0, 01, 10) can also be created. (I found the MythTV Wiki to be the most informative about this.) Since this isn't just a download, install and go process, I'll spend some time showing you how to put it all together. Software Installation I first downloaded Ubuntu Server 8.0.4.1 and installed it on the Atom NAS. The install did not go well with several attempts, each one eventually hanging before completion. After some Googling, I found that there is a bug related to the Realtek RTL8102EL chip driver .
17

Build Your Own Ubuntu NAS

Oct 26, 2014

Download

Documents

vagom
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Build Your Own Ubuntu NAS

Build Your Own Atom-based NAS - Part 2

Trying Ubuntu Server

In Part 1, we got a basic Intel Atom-powered NAS up and running, using FreeNAS as its operating system. Read performance was good, write performance, so-so, but speeds were far from being limited by drive and network speeds.

So, taking another suggestion from the SNB Forums, I loaded up Ubuntu Server and gave it a spin. Ubuntu Server edition might look big and enterprisey from its webpage description, but it's perfectly usable for SOHO and SMB NAS use. The key is to add two more pieces: the Webmin administration GUI; and Neil Brown's mdadm Linux RAID utility.

Webmin is the Linux-world standard for GUI-based server administration. My first exposure to Webmin was years ago when I briefly set up my first Linux LAMP server for local website development. It was really a godsend to me as a Linux newbie and sure beat the hell out of editing Apache and other config files!

In a similar way, mdadm is the Linux world's solution for software RAID arrays. It allows you to create, tweak, grow and reconstruct RAID arrays and supports linear and RAID 0, 1, 4, 5 and 6 arrays. Forms of combination striped and mirrored arrays (variously referred to as RAID 0+1, 1+0, 01, 10) can also be created. (I found the MythTV Wiki to be the most informative about this.)

Since this isn't just a download, install and go process, I'll spend some time showing you how to put it all together.

Software Installation

I first downloaded Ubuntu Server 8.0.4.1 and installed it on the Atom NAS. The install did not go well with several attempts, each one eventually hanging before completion. After some Googling, I found that there is a bug related to the Realtek RTL8102EL chip driver.

Since I was going to be using the Intel gigabit NIC anyway, I took the suggestion I found here. Once I disabled the onboard NIC, the install went as smooth as buttah! Note that when you reach the point in the Ubuntu install where you are asked which servers to install, just select the "Samba File server" option.

Installing mdadm was very easy. All I had to do was log into Ubuntu and type the following at the command prompt (with a working Internet connection, of course):

sudo apt-get updatesudo apt-get install mdadm

Webmin doesn't appear to be in the standard apt-get or aptitude databases. So you either need to add the webmin download site into the apt-get sources list or download the package from the Webmin site and install it.

Page 2: Build Your Own Ubuntu NAS

Following the Webmin Debian install instructions, I opted for the apt-get method (Using the Webmin APT repository section). So I opened up /etc/apt/sources.list in the vi editor (command summary here) and added this line:

deb http://download.webmin.com/download/repository sarge contrib

After saving the edited file, I then installed by entering:

sudo apt-get updatesudo apt-get install webmin

With everything now installed, pointed my browser to the Atom NAS' IP address like so:

https://10.168.3.249:10000/

Note that you must specify port 10000 since Webmin won't auto-forward. But if you forget to specify a secure connection, you will get an error page with a proper clickable link. When you successfully connect, you should see the Webmin home screen shown in Figure 1.

Figure 1: Webmin Home Page

Note that the install would have fit nicely on a 2 GB flash drive. But I used an old 10 GB Maxtor IDE drive that I salvaged from a long-gone system.

Setup Overview

The overview of the RAID creation process for the Ubuntu Server / mdadm / Webmin combination is similar to the one used in FreeNAS. Here is the outline, with the appropriate Webmin modules referenced (including links to the online documentation pages):

1. Partition Disks [Hardware > Partitions on Local Disks]2. Create Disks Filesystem [Hardware > Partitions on Local Disks]

Page 3: Build Your Own Ubuntu NAS

3. Create the RAID device [Hardware > Linux RAID]4. Create the RAID device filesystem [Hardware > Linux RAID]5. Create the Mount directory [Others > File Manager]6. Mount the RAID device [System > Disk and Network Filesystems]7. Configure File Sharing [Servers > Samba Windows File Sharing]

Note: If you don't see the Linux RAID module in the Webmin left-hand menu, try clicking Refresh Modules.

1- Partition Disks

You start by creating a Linux RAID partition on each of the disks that will be used in the array. Go to the Hardware > Partitions on Local Disks page, click on the drive name, then on Add primary partition on the next page to reach the screen shown in Figure 2. Select Linux RAID from the drop-down menu and click the Create button. Repeat for the other drive(s).

Figure 2: Partitioning a disk for RAID

2- Create Drive Filesystem

Now you need to create a filesystem (format) each drive. Click the disk name again to reach the Edit Partition screen (Figure 3), select New Linux Native (ext3) and click the Create Filesystem button.

Page 4: Build Your Own Ubuntu NAS

Figure 3: Creating a filesystem on each drive

Your screen will then look something like Figure 4. Repeat for the other drive(s).

Figure 4: Drive filesystem created

3- Create RAID Device

The formatted drives now must be configured into a Linux RAID device. Go to the Hardware > Linux RAID menu and use the drop-down to select the array type. Figure 5 shows a RAID0 array being created.

Page 5: Build Your Own Ubuntu NAS

Figure 5: Creating a RAID0 RAID device

After clicking the Create RAID device of level button, you should see a screen like Figure 6. If the Partitions in RAID section does not appear, you should try rebooting the server since sometimes new partitions are not recognized until reboot.

Once you get the Partitions in RAID section to appear, select the desired partitions and click the Create button. Note that I set the Chunk size to 32 kB, based on this recommendation.

Figure 6: RAID device creation

If all goes well, your screen will look like Figure 7.

Page 6: Build Your Own Ubuntu NAS

Figure 7: RAID0 array device successfully created

4- Create RAID Device filesystem

Once you create the RAID "device", it also needs to be formatted. This is the step that I usually forget and then waste time wondering why my RAID won't mount. All you need to do is click the device name in Figure 7, set the Create filesystem of type: dropdown to New Linux Native as shown in Figure 8 and click the Create filesystem of type: button. You'll get a screen that logs the results of the format and just wait a bit until it shows that the format has completed.

Page 7: Build Your Own Ubuntu NAS

Figure 8: Creating the RAID filesystem

5- Create the Mount directory

Now that we have our RAID device, it needs to be mounted so that it can be used. This means that it needs to be linked to a directory someplace in the filesystem. I spun my wheels a bit here also, because the Webmin Add mount function doesn't work as described in the documentation and doesn't automatically create mount directories.

I wanted to create a "public" directory that had read/write access for everyone without requiring any sort of login. And I didn't want to use the administrator level directory that the Ubuntu install process created under /home, so I had to create a new directory.

The easy way would have been to log in and run a sudo mkdir command to create the required directory. But I wanted a way to do it entirely in Webmin and fortunately, the Java-based File Manager module did the trick.

Page 8: Build Your Own Ubuntu NAS

File Manager is found under the Others menu and clicking it launches a Java applet that provides a Windows Explorer flavor file browser. I decided to put my mount point under the /mnt directory, using a nested directory of /mnt/raidarr/public.

Figure 9 shows that I clicked on the mnt folder in the left hand pane, then clicked the New folder icon to pop up a small window where I could enter my new folder name. Note that I had to first create the raidarr directory, then the public directory in it.

Figure 9: Creating a new directory with Webmin File Manager

Once the directory was created, I had to set its permissions. This is a bit tricky since it only works when you select the folder in the right-hand pane! But once you get the folder to appear, just click on the Info icon and set the permissions as shown in Figure 10. The full-sized image shows that I also set the folder Ownership to user nobody and group nogroup.

Page 9: Build Your Own Ubuntu NAS

Figure 10: Setting public folder permissions

6- Mount the RAID device

With the mount directory created, you use the Disk and Network Filesystems module to mount the RAID array to it. Figure 11 shows the correct dropdown selection and Figure 12 the window that results.

Page 10: Build Your Own Ubuntu NAS

Figure 11: Creating an ext3 mount

The changes on this page are circled in red. Mounted As points to the mount directory, RAID Device is set to the created RAID array and Allow Users to Mount this Filesystem is selected.

Page 11: Build Your Own Ubuntu NAS

Figure 12: Linux Native Filesystem (ext3) Mount Details

If you have set everything correctly, you won't get an error when you click the create button and will be rewarded with a screen that looks like Figure 13.

Page 12: Build Your Own Ubuntu NAS

Figure 13: RAID array successfully created and mounted

Setup Step 7 - Enable File Sharing

There are books and websites devoted to Samba, so I'm not going to try to make you (or me!) an expert. I'll just walk through the steps required to set up the previously-created "Public" folder for read/write access to anyone without requiring a login. Figure 14 shows the main screen of Webmin's Samba Windows File Sharing module. We're going to visit the Windows Networking screen first.

Figure 14: Samba main screen

The only changes you need to make in Figure 15 are the Windows Workgroup name (if it is not "Workgroup") and to disable the Master Browser function. The latter is optional, but probably a good idea to prevent Master Browser battles that can mess up Windows Network browsing. Make the changes and click the Save button.

Page 13: Build Your Own Ubuntu NAS

Figure 15: RAID array successfully created and mounted

You should now be back at the main Samba screen. Click the Create a new File Share link at the top of the page to open the page shown in Figure 16. I named the share "public" and navigated to the previously-created /mnt/raidarr/public folder.

Figure 16: Create Samba file share

Note that I have set the Automatically create directory button to No. I originally tried creating a share this way, but it didn't work. You can also enter a comment if you like. Click the Save button and your screen should look like Figure 17.

Page 14: Build Your Own Ubuntu NAS

Figure 17: File share created

But we're not done yet! Click on the share name to open the Edit File Share screen (Figure 18), then click on the Security and Access Control icon in the Other Share Options area. The changes here are to set Writable to Yes, Guest Access to Guest only. Leave the Guest Unix user set to nobody. Save the changes and the main Samba screen should now show the share security as Read/write to everyone.

Figure 18: Setting File Share Security

All you need to do now is to browse to the share. You should be able to open it and not get a login popup. Drag a file over to test writing, open it to test reading, then delete it to test, well, deleting! We're finally done! Now we can see if the switchover to Ubuntu was worth it!