unRAID: Moving from a server and desktop to one machine

Introduction:

Recently, I discovered unRAID. unRAID is this amazing platform that allows for users to run a NAS with virtualization and dockers. It has a functional and beautiful web interface that makes managing your server as easy as possible. Building this setup was a bit of a task, but it was all worth it in the end. This made leaving the world of ESXi an amazing experience. I can’t guarantee that the results I had will yield the same for you or near them, but hopefully my overview can provide a bit of insight as to why I’m so impressed with this setup and what I plan to do with it in the future.

Specifications:

Motherboard: ASRock 970 Extreme3 R2.0
CPU: AMD FX-8320E Eight-Core
Memory: 2 x 8GB + 2 x 4GB
Storage: 2 x 4TB WD Red’s + 2 x 2TB Seagate Barracuda + 1 x 120GB Samsung 840 EVO SSD + 1 x 250GB Crucial BX100 SSD
Flash Drive for OS: Cruzer Fit 8GB (Cheap, small, and it works great)
Video Card(s): AMD HD5450 (Primary for unRAID + VMs) + AMD HD7850 (Gaming VM)
Case: NZXT H440 Black Windowless

Why?

So you’re probably wondering, why in the world did I move to unRAID and consolidate all my needs into one box? The answer is efficiency. We all know that the majority of gaming machines (for your average gamer) are under utilized a good portion of the time. This lead to the thought of taking my server which consisted of just a few virtual instances, my desktop which for the most part is just used for casual gaming, and moving them into one box. I was wasting power and not maximizing the hardware on both of the machines to their true potential.

Gallery:

Disk Layout:

The layout was pretty straightforward, I utilized one of the 4TB WD Red’s as the parity drive for the array and then the other as disk 1. For disk 2 and 3, I used the 2 Seagate Barracuda’s. For cache, I utilized the 120GB Samsung 840 EVO SSD. I plan on adding a secondary cache to prevent the loss of data from a day of caching. For my Windows VM, I used the 250GB Crucial BX100 SSD. For the Windows VM, it was outside of the array. The way I accomplished mounting this and keeping the QEMU KVM image on it was through the use of the plugin known as Unassigned Devices. Unassigned devices allows you to mount USB Flash Drives, internal hard drives, and external hard drives outside of your unRAID array. Using it was so painless that it almost felt like I wasn’t doing something right. The tool even allows you to mount other drives as Samba shares so you can pull data and move it around as necessary.

Disk Performance:

I/O was at least DOUBLE what I thought it was going to be. While the cache is probably to thank for this, I think the results were definitely satisfactory considering the setup. All of these drives are running btrfs rather than the default of XFS since I’ve heard great things about btrfs.

Read (Array): 120MB/s
Write (Array): 141MB/s

Dockers:

For Dockers, I’m only utilizing Transmission and Plex Media Server for now. Both seem to run flawlessly, although I originally ran into a networking issue with Plex Media Server which made it act like it was a client. This was quickly fixed by cycling it from host -> bridge -> host. Having never used Docker before, I was really surprised with the performance and ease of use/installation.

Windows VM (I can play games):

That’s right, I can play all of my games on my VM! I utilized IOMMU and AMD-Vi to create a VM and passthrough my AMD HD7850. Along with this, I also passed through 6 of my 8-cores (yes, I know my processor isn’t crazy powerful). I also had success in passing through some of my USB devices (I plan on passing a whole set of USB ports through soon) and I even got my onboard audio to work properly the first time. Like any QEMU KVM install, I did have to pass in Virtio drivers which really wasn’t difficult, especially if you’ve done it before. I haven’t done any benchmark tests yet, but I might some day.

Future improvements:

There are a few improvements I have in mind to improve the performance and future proof this for a bit of time.

  1. Get that second 120GB purchased and installed.
  2. Move to the newest generation of Intel hardware (I.E. 6th Gen I7).
  3. Upgrade the AMD HD7850 with something newer and much more powerful (I can still play most games in ultra, so not a major priority).
  4. Replace the Seagate drive’s with WD Red’s.
  5. Setup the APC UPS daemon to shutdown upon power loss. Just waiting for the USB A-to-B cable and a chance to test run it.
  6. Finalize notification settings to ensure prompt notice of if/when a drive fails or if the server is going down due to power loss.

Conclusion:

I can proudly state I don’t regret this decision. Coming from ESXi, I can say that this is a much more friendly and sustainable setup. Maintaining ESXi was a pain and having to maintain each of the VM’s I had was also not fun. Not having a Web UI was frustrating as well as it made it difficult to manage from my phone and other devices. Docker has simplified my maintenance and reduced the headache I had when I was doing upgrades and my previous NAS setup.

Raspberry Pi: Installing Motion (Webcam Monitoring)

C500What in the world is motion?! Is it my movement or sick dance moves? No. It’s not. Motion is an amazing piece of software designed for monitoring webcams and security devices linked to a Linux machine. The primary usage is for motion detection and security. Since it’s a free piece of software, it’s quite popular and widely used/supported. Nearly every single modern Linux distribution supports it. Raspbian supports it, but on occasion can have issues.

The biggest issue you may run into for the Raspberry Pi and a webcam setup is an issue with power. This is easily solved by using a USB Powered Hub. The Raspberry Pi doesn’t have enough power to spare to devices such as a webcam and it needs some assistance from the USB Powered Hub to power the webcam. Another issue for the Raspberry Pi is that it has web browser accessibility issues with certain installations and cameras. The easy solution to this is using a media player such as VLC. There are different ways around this, but the easiest is using VLC. In my personal experience, I also find it to be a better interface and it worked great on my Android phone when I used it.

In the end, you can’t beat or complain about the simplicity of motion. It’s practically perfect in every way, especially the simplicity aspect. One downside is it cannot record audio without modification. It’s basically taking images and turning them into a video stream.
If you have any questions, feel free to comment or reach out to me on Twitter or LinkedIn!

Raspberry Pi: Installing Samba (Network Drive)

Samba

Samba is the standard for integrating Linux with Windows and Mac OS X. It’s insanely simple to use and setup and it’s great for an internal network. There are a ton of really cool things you can do with it such as making a network drive, share a printer over your network, etc. Samba is a super lightweight and friendly package that makes customization and setup a breeze. There are a million guides online for using Samba and setting it up, but the best guide comes from Ubuntu.

I’ve taken their guide and made some modifications to make it work on the Raspberry Pi in a matter of minutes. The process is simple and the video will walk you through step-by-step. This assumes you have a Raspberry Pi with Raspbian installed on it and SSH enabled. If you have both of those, you will have no issues with the installation and configuration process. I’ve also attached the PDF for you to follow or print for your own records.

With a network drive, you can easily backup important files or make a local dropbox. It’s also great for if you have a web project that you’re working on and you want to avoid the constant handshake process involved with both FTP and SFTP. With this, it’s basically emulated as remote drive. You could adjust the base directory for samba to /var/www/ and ensure you have read, write, and execute permissions. Seriously, the options are endless and this is the most basic usage of Samba!

If you have any questions, feel free to comment or reach out to me on Twitter or LinkedIn!

 

Raspberry Pi: Installing RaspBMC (Media Center)

RaspBMCIn this video, I will discuss the installation process for RaspBMC. RaspBMC is a lightweight Linux Distribution that runs XBMC on the Raspberry Pi. There are other alternatives like OpenELEC, but I’ve had a lot of luck with RaspBMC in comparison. It’s extremely functional and responsive. RaspBMC is great for a media center solution and integrates with a wide range of devices, shares, and even Plex!

If you’re looking for a way to organize your digital content (Movies, Music, and TV Shows), this is the way to go. RaspBMC gives you a ton of options to customize your media center and you can even control it from your phone with the wide range of remotes available for it on the Play and App store.

Most of the media center devices out there today cost hundreds of dollars or they’re insanely limited. With the Raspberry Pi and RaspBMC, you can avoid a ton of limitations and use it to stream local and remote content. The only real issue right now is that most of the media center options for the Raspberry Pi do not support streaming services like Netflix. Plex and several other pieces of software are working on a solution to this and I’m hoping that within the next couple of months we see the Raspberry Pi become the perfect media center. I have included the presentation material below in-case you get lost at any point during the video!

If you have any questions, feel free to comment or reach out to me on Twitter or LinkedIn!

Raspberry Pi: Installing Raspbian

Raspbian

So you’re probably wondering what in the world Raspbian is. I’m here to tell you it’s this awesome Linux Distribution for the Raspberry Pi. It’s the most popular Linux Distribution for the Raspberry Pi and it’s based off of Debian and customized for the Pi. It’s great for running a desktop, basic server, monitoring your home, prototyping, etc. The options seriously are endless.

In this video, I will go over the basics of setting up Raspbian and the software/hardware needed to perform an installation. This DIS will cover several things which require Raspbian so it’d be beneficial to have Raspbian installed to perform any of the tasks/subjects mentioned in those. This applies to the Raspberry Pi B/B+. The Raspberry Pi A/A+ very drastically and should be avoided if possible. They are extremely limited and recommended for advanced users. I have included the presentation material below in-case you get lost at any point during the video!

If you have any questions, feel free to comment or reach out to me on Twitter or LinkedIn!

Raspberry Pi Workshop: LAMP Stack

MichaelRPi2

Today was an extremely exciting day. I led the Raspberry Pi workshop on behalf of AITP (Association of Information Technology) at FSU. While it was a great experience, it was also a bit sad. Today marks the last workshop I will ever be running while in AITP. This is my last semester at FSU and I can say it’s been a great ride thus far. I’ve learned so much, involved myself in so many different events/activities, and really just immersed myself in being a part of the bigger picture. In the end I can see that it’s paid off and I’m beyond grateful for all the help I’ve received along the way to get to this point in my life. Needless to say, you aren’t here to hear me be sappy and boring, you want to know more about my workshop!

The Raspberry Pi workshop we hosted today focused on the Raspberry Pi and running a LAMP Stack (Linux + Apache2 + MySQL + PHP/Perl/Python) on it.  While it wasn’t my largest workshop, it was one of the most enjoyable experiences. I explained concepts like FTP and SSH to demonstrate file transfers and command line interaction. I also explained the concept of using SFTP (SSH File Transfer) to have a more secure interaction when transferring files to and from your server. The workshop lasted approximately one hour and the results from the survey were great!

In the end, this was a great experience and I’m so glad that I had the opportunity to share one of my passions with members of AITP. It’s a really surreal experience to go in front of your peers and professors to expose your technological passion. I hope that when I depart from FSU that these workshops carry on and that someone continues to build off these workshops. I hope that they improve at every chance they get. After all, we can learn so much in a small period of time. Thanks to everyone who has been a part of AITP and to everyone who has supported the revitalization of AITP at FSU.

Raspberry Pi: Overview

It’s official! My DIS (Directed Independent Study) has begun. This semester I will be focusing on the Raspberry Pi. If you didn’t know, the Raspberry Pi is a small and affordable computer that was introduced on February 29, 2012. Two days after my birthday! What a coincidence. This device is capable of providing a solution to many projects or creations. It runs Linux, can be used as a media center, can be used for automation, and it has loads of other practical uses! This video will give you a brief overview of the Pi and some of the features on this credit card sized computer!