For the Love of Free: NAS Edition (Part Two)
It’s amazing what one person can learn in a somewhat short time frame. I know that three weeks ago, I said that I was looking for a NAS solution that had some specific wish list items I wanted. I also know that I said I had selected the amazingly wonderful, and the most highly touted free solution out there, FreeNAS. However, as I stated at the beginning, it’s amazing what one person can learn in a somewhat short time frame.
So, first and foremost, I was wrong when I said, “Any issue or question I had, Google had the answer. It was one of the other reasons I chose FreeNAS. Over 6 million have downloaded it, so someone has likely run into the same issues as I may have had… and fixed them.” Uh, no. Most of that is true, but you have to know what your problem IS first. Makes sense, right? So here is what happened after I wrote the last blog post.
My FreeNAS box was up and running and was experiencing some minor issues. Nothing too crazy. Some permissions issues (my fault, I’m sure), some random resetting (still couldn’t figure out why), some corrupted / dropped volume issues (this is what concerned me most), and so on. I hadn’t copied anything too critical over to the system yet since I was still doing testing, but I needed to try and talk through it with someone. I had a conversation with Scott (our Technical Fellow) since he is an encyclopedia of knowledge compared to myself. After going over what my experience was and what the system was (P4 x86, 4GB RAM, ZFS build), he winced (never a good sign) and asked if I had read up on the hardware requirements for FreeNAS utilizing ZFS. Of course I did; however, I apparently missed the part that said, “A 32-bit system can only address up to 4 GB of RAM, making it poorly suited to the RAM requirements of ZFS.” Ahhhhhh. Well, now I see where I went wrong. Since I didn’t want UFS, and really felt ZFS was better for me, so I decided to upgrade the hardware. I was also hoping (and kind of expecting) that the issues I was experiencing would go away. Not so.
After a couple of days of ordering parts and building a new system (Core i3 x64, 16GB RAM, ZFS build) I decided to go for it again. So, I spent the entire weekend installing, setting up, and testing the new box. AND HERE is where things really went horribly wrong for me. The system seemed stable and fine, until I noticed it becoming unresponsive. I later determined that the system was unstable (rebooting) and my concerns about putting data on it were growing. [Note: You may be thinking CPU overheating, memory issues, etc and I agree, but I ran all the tests, checked all the hardware and such. I know how to build a system, and I have an IT degree. Hopefully that puts your mind at ease about the problems being me (still could be though).]
I don’t know about you, but when you are looking to store your most precious memories (screen shots of gaming, pictures of my dog, etc) on a NAS device, you don’t want to feel like you can’t trust it. This is where I turned to the message boards and such, and I tried very hard to resolve my issues, but I realized one very important thing that I thought I could just skip past without being too much of a concern… I don’t know crap about UNIX CLI commands. Everyone involved with and tied to those message boards tried to help, but they all communicated in this language when it came to diagnosing and hunting down my issues. I can’t blame them, I do the same in Windows-land. The problems I had could very well have been simple and easy to solve, but I soon realized that my lack of experience with these commands would be the death of my attempt to run my entire NAS needs with FreeNAS, NAS4Free, or anything like that.
I went ahead and re-did the install of FreeNAS (new USB key) on the system. Things seemed fine, and no issues popped up for about 24 hours or so. I was on to the next project, and in short it involved me copying some sensitive data to the FreeNAS server. I had to trust this system at some point, right? Bad mistake. BAD! Long story short, at one point I couldn’t access any of my data and no volumes were showing up. Auto-import failed and just rebooted system. OMG, what am I going to do! That’s when I emailed Scott again, and begged for help. I brought the server in the next day for him to try and help me recover the data off of. Even Scott admits to seeing some bizarre behavior, but he was able to use his knowledge of BSD to help me recover the data. I brought it home, and copied the data off after struggling all night having to “zpool export” and “zpool import” a billion times. I had 16 files corrupted and FreeNAS couldn’t tell me what they were, even with the suggested “zpool status -v” command we got a kernel panic. Wow.
And that’s when I threw in the towel (not completely, but sorta). You see, time was running out and I was faced with a dilemma. I accumulate a lot of data weekly and therefore had to put my solution in place fast. I felt like I really only had three options:
(1) I could purchase another All-in-One NAS box like the two DNS-321 boxes I already had; or,
(2) Upgrade one of the current DNS-321 boxes I currently owned; or,
(3) I could take the new box I just spent money on and built from scratch and place (wait for it… wait for it) Windows 8.1 on it and run it as a home media server / NAS solution.
I choose option 3 mainly because of my ridiculous amount of knowledge when it comes to Windows systems, its permissions, its requirements, its capabilities, etc. etc. etc. I knew that I would feel more comfortable trying to fix any potential issues with a Win8.1 box than with one running FreeNAS. My Ubuntu systems can see the Windows shares, so that was all fine.
Well, at this point you are probably wondering why the title of this blog is “For the Love of Free” when Win8.1 is anything but free. However, when I started this, I had all the best intentions to go out and use a free distribution. However, do to the critical nature of things, my timing, and my lack of knowledge of FreeNAS, it is what it is and I now have what I have.
For what it’s worth, I would like to state some items worth noting so that I can end this blog post knowing that although I probably didn’t help any of the readers with anything (useless then, right?), I’ve at least done some great therapy writing that will help me out. Here are the items worth noting:
(1) My Windows-based NAS solution is a Windows 8.1 installation running on an Intel Core i3-4130 3.4GHz, 16GB of Non-ECC RAM, 500W power supply and several extra 120mm fans for cooling. I’m using dual Seagate 4TB drives set up for Mirroring (RAID 1) through Windows 8.1′s Storage Spaces. Storage spaces are virtual drives that appear in File Explorer. You can use them like any other drive, so it’s easy to work with files on them. You can create large storage spaces and add more drives to them when you run low on pool capacity. If you have two or more drives in the storage pool, you can create storage spaces that won’t be affected by a drive failure (RAID). When a mirror storage space is formatted with the Resilient File System (ReFS), Windows will automatically maintain your data integrity, which makes your files even more resilient to drive failure. So, I was kind of getting most everything I wanted.
(2) I still believe I may have a small memory issue, or motherboard issue to solve. However, the stability of the system is much more predictable now then it ever was running FreeNAS. Again, I would contribute this though to potential memory issues. I believe one of the sticks I purchased may have had errors, and I am in the process of running MemTest86+ with single sticks to hunt it down. Hopefully, I find something. If I do, I realize that all of the bad experiences with FreeNAS could very well have been due to this. Additionally, it seems to make sense to choose a board that accepts ECC memory since FreeNAS is so reliant on it. Just sayin’.
(3) You remember that P4 x86 system I mentioned above? Well, I’m turning that into a FreeNAS system after all. Why, you ask? Because I am now more motivated than ever to learn more about UNIX commands and to still learn about FreeNAS, NAS4Free and the like. I’ll just be running it with UFS instead and only as a testbed until I feel good about it. Once that happens, I’ll begin to make a decisions on going over to a ZFS system, or sticking with the ReFS instead.
(4) FreeNAS is not the enemy. I have more respect for the program now than ever before. Although they have made it as simple as possible for those who choose to implement it, I just wasn’t one of the lucky ones. I don’t blame it (and neither do the 6+ million other users of it) for my issues. I blame my ignorance of UNIX commands and the like instead. I still have more learning to do… and that’s a good thing.
And that’s it. I hope my next “For the Love of Free” post goes better than this one did. I would love to hear about your experiences with FreeNAS if you have any, or even what you thought of my decision to go the route I did. Thanks for reading.