This third Media Server post details the server software that makes the server a server. From operating system to data protection, choices are nearly endless but the few selected below represent the easiest and most feature-filled combination I could put together.

Operating System (Windows 7)

Part of my hope for this machine was that it could be used for more than just data storage. I certainly didn't want a server to function as a daily-use desktop, but I did want to use it for the actual converting of video, transcoding video on the fly (for playback on other devices), and perhaps a few other uses. The easiest and quickest way to get this all up and running was to use a standard Windows OS. Windows Home Server was a possibility but since I had a recently decommissioned Windows 7 laptop lying around I was able to use that key and save a few bucks. Easy to setup, familiar to work with, and easy integration with everything else on the network made Windows 7 an easy choice. With the choice of OS taken care of, it was time to protect my data.

FlexRAID

To protect my data I wanted to find a Software RAID setup that was forgiving of technical screw ups. Initially, unRAID was the OS/RAID of choice for its wide use and data protection. However, after further research I decided to switch to FlexRAID because of a few key features:

  • Starting with full drives - Drives do not need to be formatted to be added to the array. This also meant if something happened to my RAID setup I could start over without affecting data.
  • Data is not striped - Failure of the array or any number of drives does not affect data on other drives, only those drives that failed (again, easier to start over if something happened).
  • Web interface - Controlling the array via the web means access from anywhere.
  • Storage pooling - Rather than referencing drives individually (from XBMC), all data can be accessed via a single virtual drive.

With the software decision complete, it was time to get it running. Though there is a Cruise Control mode which will walk through the setup of RAID and Storage Pooling, I chose to set them up individually to ensure maximum control.

RAID-F

Though FlexRAID offers a real-time RAID system for parity calculation, I like the snapshot parity calculation offered by RAID-F. Movies are infrequently added so there is no need for real-time parity. Following various guides in the FlexRAID Wiki made setup a breeze. It basically came down to creating a new snapshot configuration, specifying the number of data and parity drives, indicating where those drives are mounted, and creating the array. Creating the array and building party for the first time is easy. Maintaining the array, however, can be challenging.

There are three main actions to maintaining the RAID array:

  • Update - recalculates parity for changed data.
  • Validate - detects data changes or data corruption via checksum calculation.
  • Verify - bit-for-bit verification of the entire array.

My setup has an update task scheduled every morning and a validate task scheduled every Monday morning. Email notifications confirm these processes finished successfully or notify me of process failures. Even if an email notification indicates a successful validate, I must still check the logs to ensure that no "corrupt" data was found. I place "corrupt" in quotes because every validate I run indicates at least half a dozen corrupt files. Rerunning the validate against only those files has always indicated the files are not actually corrupt but rather something else on the machine interfered with the validate process and made the files appear to be corrupt (so far this has always been caused by my antivirus). Small annoyance to ensure my data stays healthy.

On the first of every month I manually run a verify task to perform a thorough check of my data. Unlike the validate task, a problem during verify results in instant failure. Once again, every verify task that has ever failed on me has been a result of my antivirus interfering with the process. It is worth noting that the FlexRAID Wiki indicates that exclusions should be made in antivirus software so that it does not interfere with the in-memory data that is being validated/verified but for some reason Microsoft Security Essentials still interferes and causes problems. Since the corrections are simple enough I have not yet bothered to find a replacement anti-virus.

RAID-F may be tricky when first learning all of the tips and tricks but it is wonderful once up and running. Though I have not yet dealt with an actual drive failure I am positive that when that day comes my data will be protected and I will be able to recover all of my data with ease. Though data protection was the primary reason I chose FlexRAID, Storage Pooling was a great add-on that made accessing my protected data easier than imagined.

Storage Pooling

The basic idea behind FlexRAID's Storage Pooling is that data spread across multiple drives can be accessed via a single drive letter. Take for instance the initial server hardware that included 2 data drives and 1 parity drive. The first data drive contains a single "Movies" directory and the second data drive contains a "Movies" and a "TV Shows" directory. Movies from both drives can be accessed from a single virtual drive letter regardless of which drive physically contains the file. Though I have my pool setup as read-only, Storage Pooling can be configured so that data can be written directly to the pool with FlexRAID determining on which drive that data should be stored. The best part about pooling drives is that adding another data drive only requires a single change in FlexRAID and the content of new drive will be instantly available via the pool.

The Storage Pooling feature of FlexRAID was something I initially overlooked but was absolutely thrilled to have available once I evaluated the other pooling software available. No other pooling software worked as easily or as flawlessly as that offered by FlexRAID. Though the pooling is a handy feature to use, it was really the RAID-F functionality of FlexRAID that I desired most. I did not want to sacrifice my knowledge of the Windows file system to setup a proprietary RAID system that would destroy my data if mishandled. RAID-F allows all of my data to be protected from drive failure while still allowing my occasional technology blunders to leave my data intact.

With data protected and pooled it was time to start enjoying all of the hard work. Though there are plenty of options for media playback, a few jumped out as the clear winners in terms of ease of use or features and will be discussed in a future article.