I finally decided to build the new NAS system I have been forever talking about. I have been almost out of space on my ReadyNAS NV+ V2 for a while now. Going to go with FreeNAS and I am using Brian Moses’ 2019 EconoNAS Build as a guide. My build won’t be quite an EconoNAS build. I will call it the HexNAS due to the 5 data drives and the 1 cache drive that it will have.
I am using the same ASUS Prime B450M-A/CSM motherboard that he is using. I am using 2 sticks of 16GB DDR4 Dram instead of the 2 sticks of 4GB DDR4 Dram he used. So I have a total of 32GB of system memory with two empty memory slots. I using an old Cooler Master case that was given to me by my friend Paul. The case is very similar to the Antec NSK4100 case that Brian used. My cases has 4 external 5.25” bays, 2 external 3.5” bays, and 5 internal 3.5” bays for a total of 11 drive bays. So it has the same total number of drive bays just like Brian’s case.
I had to replace the case’s power switch which was missing its leads and was also bad. The case didn’t have any fans, so I added 5 Noctua fans to it. Two of the fans were 120mm and three of the fans were 140mm. These Noctua fans aren’t their premium quiet fans. But they are still quiet.

I am going to use a hot swap drive cage that will take up three of the external 5.25” bays and allow me to have five 3.5” drives in the same space. I was thinking about installing a DVD drive in the fourth 5.25” bay. But since I have used all of the 6 sata connections on the motherboard, I won’t be able to do that. Not that I really need a DVD drive. But if I do, then I can see about adding a card with sata connections. I also added I/O panel with two USB 3.0 ports, SD card slot, and a USB C port to the case.

For the CPU I used an AMD Ryzen 3 3200G instead of the AMD Ryzen 3 2200G used in the EconoNAS Build. For the power supply I am using a GameMax 650W 80Plus Bronze unit. For the OS Drives I am also using SanDisk Ultra Fit Usb 3.1 flash drives, but 32GB instead of 16GB.

I had been thinking about using WD Red 4TB drives, but the newer units use SMR. So with the issue of SMR rearing its ugly head I couldn’t do that. Even the new WD 6TB Reds were using SMR. Really need to use a drive using CMR especially since it seems that FreeNAS does not like SMR drives.
FreeNAS/ZFS does not like the new WD RED SMR drives.
Doing some research on the SMR issue, I found this link that with a list of the WD CMR and SMR drives. List of WD CMR and SMR hard drives.
Here are some links to the SMR issue that I am talking about.
Surreptitiously Swapping SMR into Hard Drives Must end!
I went ahead and bought 5 WD 8TB Red drives for the build. These drives are CMR. Brian has a few different hard drive options that he lists, but all of them are using 6 drives. I am also adding a Crucial BX500 1TB SSD for use as a cache for the zfs pool. I have those two Ultra Fit 32GB flash drives for the boot drives that I already mentioned. Once the NAS is built and setup, I will look to sign up with get Blackblaze to add cloud storage/back-up to my NAS. A NAS isn’t really for backup even though I have been using my ReadyNas NV+ V2 as such.

Here is a link that from Brian’s blog for backing up FreeNAS to Backblaze. And here is a link to an article that Blackblaze wrote on setting up a FreeNAS cloud storage. Along a similar vein, here is a link for setting up NextCloud on FreeNAS.
So far I have put together the system without the drives for now. The system starts ok and goes into the bios. It is working and I have 32GB of memory! Next I will have to download the latest version of FreeNAS which is currently 11.3-U4. The FreeNAS iso is 752MB. Now that I have the iso, I need to burn the iso on to a usb flash drive. Since I am going to use my Win 10 laptop, I am going to use Rufus to create the bootable FreeNAS install flash drive. Side note, after I did my install of FreeNAS I came across another install video that used a utility called HashTab that adds an extra tab in the Windows properties menu that will let you see the hash of the file. A handy utility to have when you want to check if the hash of the file you just downloaded matches what it is suppose to be. It is free for home use, but if you use it at work, then it is $9.99.
Next I will go to the HexNAS system and bootup the FreeNAS install. I will be installing FreeNAS on the two SanDisk Ultra Fit Usb 3.1 flash drives. I will be following one of Brian’s blog post on how to do the install onto the two flash drives.
I booted up the HexNAS with the FreeNAS install flash drive. I tried to install FreeNAS to the two SanDisk Ultra Fit flash drives, but I kept getting an install error when the process started. The error was installation failure – gmirror: No such device: swap. I tried it a number of times more but still kept getting the error each time. The two SanDisk Ultra Fit flash drives are brand new, so hopefully there is nothing wrong with them. Did a quick look on line but didn’t really find an answer. Maybe the flash drives need to be formatted. What I did was use Rufus to install the FreeNAS install iso on to both of the new flash drives. Booted up the original FreeNAS install usb drive and tried to install FreeNAS on both of the Ultra Fit flash drives and this time the install worked. I guess it expected a swap partition to exist on the Ultra Fit flash drives. Not sure though.
While the install was suppose to write FreeNAS onto both of my flash drives, it didn’t seem to do that. Not sure why, but I used a utility called imageUSB on Windows to save the image from the one bootable FreeNAS system on the flash drive to the my computer. Then I used imageUSB to copy that image to the second flash drive. You can also use imageUSB to write an image concurrently to multiple USB Flash Drives.
I successfully booted FreeNAS from that second flash drive. Then I needed to make sure both devices were in the boot pool. I watched this youtube video and was able to have the boot pool contain both flash drives, so they are mirrored.

The instructions are for 11.2 but they work with 11.3 with a slight difference in the name “Boot Environments” in 11.2 becoming “Boot” in 11.3. Here are the steps that I followed. While in the FreeNAS dashboard, click on System to display the items inside of System. Then click on Boot which will bring up the Boot Environments window. From there you will Actions menu on the far right and then choose “Boot Pool Status”. This will bring up the “Boot Pool Status” window. You will see your default boot pool and if you click on the > next to name of the boot pool, you will se your boot flash drive in the pool. Mine is /dev/dap0. On the line that lists your boot flash drive you will need to click on the three dots on the far right of that line and choose “Attach”. This will allow us to attach our other flash device to the first flash drive. Select the second flash drive (da1) and check the box for “use all disk space” and press the “Save” button. It will take a short while for the attach process to finish. A popup window will let you know that the “Device Attached”. Close that window. You will be back in the “Boot Environments” screen. Click on the “Actions” menu and choose “Boot Pool Status” again. You will see that the two devices will both be under a “>mirror” selection which completes the task. If you want to change the default name of the boot pool, you can do that in the “Boot Environments” window. On the line that has the name of the boot pool, you will click on the three vertical dots on the far right. This will bring up a menu with a choice to rename. I renamed my boot pool to freenas-boot. I need to put a little label on the flash drives so that I can easily identify them in a time of failure. To identify the drives, it might be best to use at least the first 6 digits of the serial numbers since the numbers at the end aren’t displayed fully.
I have added the data disks and the ssd disk to the machine. Next I will create the zfs pool. The zfs options for the VDev are Stripe, Mirroring, Raid-z1, Raid-z2, and Raid-z3. Raid-z1 similar in concept to Raid-5. But Raid-z1 use is discouraged. Raid-z2 is similar to Raid-6. It adds a second set of parity data to the VDev. You can lose two disks while maintaining data integrity. It requires a minimum of 4 disks. It is safer than Raid-z1 but has a greater capacity penalty. Raid-z3 adds a third set of parity data to the VDev. It requires a minimum of 5 disks, but allows you to lose up to 3 disks per VDev. A hot spare is a drive that isn’t used for storage, but it will instead immediately replace a failed drive. Having a hot spare in the pool will insure that a resilver/rebuild operation will start immediately. When you are creating your pool, the ADD SPARE button will add a hot spare to your pool.
I am going to go with a Raid-z2 setup which will allow me to lose two disks while maintaining the integrity of the data. I will be looking into getting Backblaze for my cloud backup.
Logged on to the FreeNAS machine via the web interface so I can create my zfs pool with the 5 drives and the one ssd for the cache.

It is pretty easy to do. Go to Storage->Pools and select the drives for the Data VDev. I am using Raid-z2 for the Data VDev. Add the SSD to the Cache VDev. Give the pool a name. Choose to use Encryption or not Zfs Pool. The GELI encryption can increase security for data stored in a ZFS pool, but it increases pool management complexity. If you select encryption you must remember to back up the key! If you lose the key, then you will lose all the data on the disks with no chance of recovery! I am not going to chose encryption. Anything that is really important I will encrypt before I put it on the FreeNAS. I also heard that in the next major FreeNAS version, TrueNAS core, they will likely have new encryption features like per dataset encryption which should make it possible to encrypt data with having to destroy/rebuild the pool.
Update: July 2022, TrueNAS has been out for a while and I did upgrade to it when it came out. I still haven’t looked into the dataset encryption. I will put that in another blog post one day.

It didn’t take long to build my pool with the 5 data disks and the 1 cache disk. Next I will configure users, permissions, and Access Control Lists (ACL) for the users that will access the FreeNAS share that I will be creating. The first user I will create will be my user. While creating my user, I will create a group for all the other future users that will be accessing the FreeNAS. I created the group while adding my user. In the FreeNAS web interface menu, the path will be Accounts->Users and then click on the Add on the right side. My username and password will be the same as it is for my Windows 10 laptop.
Now I have to create some shares. The first thing I need to do is add a few datasets to my ZFS pool. Go to Storage->Pools on the menu and then on the line that lists your Pool, click on the three dots on the far right to bring up the options for the pool.

I will be adding a dataset to the pool. I will give the dataset a name, something like Media. Make sure that the Share Type is SMB since it is going to be a Windows share. I also will make sure that the Case Sensitivity is Sensitive. You can add comments if you like.
Once that is done, I will create the actual Share. Selecting Sharing->Windows Shares (SMB) on the menu will bring up the Samba (SMB) shares list. Click on the ADD button to add a share. Set the path to the dataset that you just created. The dataset will be under your ZFS Pool location. It will be something like /mnt/ZFSDataPool/Media which ZFSDataPool being the name of your ZFS Pool and Media being a dataset that you created in your pool. There is a selection box for Use as home share, but I am not going to be selecting that. The selection boxes that are checked will be Enabled and Enable Shadow copies. What you enter for the name of the Share will be what you will see when you access from your Windows computer. The Share name can be different from the dataset name that it is attached to. You will want to make sure that the SMB service has started and will automatically start when the system boot up. You will be prompted to do so. But you can go to Services on the menu and start up the service and also check the Start Automatically box for the Service.
After you have create the SMB share, you will want to edit the ACL for the share you just created. On the SMB share list, you want to put your cursor on the line for the share you just created. Then click on the three dots on the right to bring up the options for the share and select Edit ACL.

Here in the Edit ACL window, you will be adding an ACL Item. You can add a group or user. If you have a a lot of users assigned to a group, then your probably would want to add that group. Or you can just add individual users. You will need at least one of the ACL Items to have the Inherit flag set.
Then I should be able to access the shares from my Windows laptop. And I was. Since I have a Apple Mac, I also created an AFP share and attached it to those datasets that I added SMB share too. I was able to access the Shares on the FreeNAS from my Mac too.
There are other things you can do later like work with Virtual Machines and Jails.
If I get a chance I am going to look into some free FreeNAS/TrueNAS training at ixSystems .
That’s it for now.
