One of the most important things in a business of any size today is data storage.
It can also become one of the most difficult aspects of running your business, how secure does your data need to be, who needs to access it, how much storage do you need, how do you back it up, how do you set up storage if you don’t have any IT staff, etc.
These are all questions and sometimes problems facing the small business owners across the world right now, especially as your data is now your business, and as it grows at an exponential rate it needs the right care.
iX Systems have kindly supplied me a FreeNAS Mini unit to review.
This NAS I would rate more as a business/enterprise class device, it can obviously be used by a consumer but does need a bit more skill to get the most out of it.
Where the FreeNAS Mini comes out head and shoulders above competition is performance and data integrity, the ability to create read and write caches is where the heavier users will get the most benefit.
FreeNAS is a modified front end NAS of an operating system called FreeBSD, which if you have not ever heard of it, you’ve probably used it in some manner before as FreeBSD is known for being a very stable carrier grade operating system, many other companies such as EMC and Juniper have based some of their products off FreeBSD.
FreeNAS and FreeBSD have implemented a file system called ZFS, Zettabyte File System, which not only works as a file system like NTFS or ext4, but you also have the ability to use Software RAID to create redundancy in your disks.
Ease of Use
The FreeNAS Mini comes shipped pre-installed with FreeNAS, the setup is fairly easy, you can either plug the IPMI in and get the DHCP Address given to it, and access the FreeNAS console via that method, or you can plug it into a monitor.
From there you have a simple text based menu, as long as you have a basic understanding of computers and networks you can easily configure an IP address, or simply use DHCP.
Change the password and you’re done.
Once you’ve got your IP, you simply go to the web console at http://<your ip> and login with the password you set.
Included in a FreeNAS is an Intel C2750 CPU, ASRock C27050D4I Motherboard, 16GB of ECC Ram, Dual Intel 1Gigabit NICs, 1 IPMI port and 4 Hot Swappable external bays.
Inside of the case are 2 x 2.5inch Hard drive bays, which you can use for your ZiL (Write cache) and L2ARC (read cache) if you would like to add these.
The OS itself is installed on a 16GB dedicated SATA Disk on module form factor.
These specs above are more than enough for most needs, with 8 CPU cores and 16GB of RAM you are getting the best in class performance here.
Data integrity is really where FreeNAS and ZFS shines, it does checksumming to stop silent data corruption.
To give an example of how ZFS works I will relate this to standard RAID levels.
In ZFS terminology a vdev can be a disk, or group of disks.
Striped Vdev’s – RAID 0
Just like it’s cousin RAID 0, there is not too many circumstances where you would recommend Striped Vdev’s, unless performance is your main concern and data loss is of no concern.
If you use this, there is a good chance of total data loss.
Mirrored Vdev’s – RAID 1
Creates a redundant mirrored disk, but you lose performance.
Striped Mirrored Vdev’s – RAID 10
In production this is probably the most common setup, mirrored vdev’s will give you performance and redundancy, and in my case this is what I have set up.
RAIDZ – RAID 5
Requires at least 3 disks, one of those disks will be a parity disk, this setup gives a good balance of storage space with redundancy, RAID Z also corrects the write hole error that is in traditional RAID 5.
In a production system I personally would not use RAID 5, the chance of failure is too high.
RAIDZ2 – RAID 6
Same as RAID Z, but gives you a second disk as parity, this is more suitable for production, having RAIDZ2 vdev’s will still give you a good ratio of storage with a decent amount of protection.
Like the other RAIDZ levels, this is simply a 3rd parity disk, probably not a suitable choice for a 4 bay setup.
FreeBSD is an amazing operating system, but it can be a difficult learning curve, more so than Linux which has a lot of user friendly options now.
If you are a business without technical staff, creating a NAS from a vanilla install of FreeBSD could be a potentially daunting task.
This is where iX Systems have come in, created a web front end to manage such a powerful OS back end.
The interface is easy to understand, and the initial set up only requires some basic knowledge.
The GUI is very pleasant looking, and would not look out of place in a vastly more expensive storage product.
If you want to jump start using the NAS, there is a wizard which will help you do so.
Personally I would recommend users take up the offer from iX systems to attend the 4 hour training course on FreeNAS administration included in a FreeNAS mini purchase (normally priced at $349)
This will give you all you need to know to do some basic administration of the system.
To give a brief rundown of some of the great features that are available out of the box, I’ve made a list below.
- Web interface
- Jail Plug-ins
- Performance Reporting
- OpenZFS v5000 file system with feature flags
- CIFS, NFS, iSCSI, SSH, AFP, FTP/SFTP/TFTP
- S.M.A.R.T. diagnostics
- Email log and reporting
- Downloadable configuration file and encryption keys
- OpenZFS v5000 file system with feature flags
- ZFS snapshotting and replication
- ZFS Compression
- Disk encryption
- Disk deduplication
- S.M.A.R.T. disk diagnostics
- Import Data from other UFS, NTFS and EXT file systems
- Active Directory with Windows ACLs
- Apple Time Machine
- rsync replication
In the past version of FreeNAS there was some struggles with getting FreeNAS working correctly with Active Directory, however that is no longer the case, it is very easy to join a domain now and add CIFS shares with ACLs from your domain.
You may need extra functionality or for the FreeNAS to act as a media server, this is where the FreeNAS jails system comes in, jails are a secure way of creating a virtualized version of FreeBSD that only hosts that app.
There are many plugins available by default that only require a one click install, including Plex, owncloud, Media Browser, Crashplan and many more.
If you are so inclined you can also install some jails manually, one popular jail is VirtualBox, this would give you the ability to host other operating virtual machines on your FreeNAS.
The FreeNAS Mini can be purchased pre built off Amazon, however if you want it customized there is several optional extras
Diskless – $999.99
4TB – $1284.99
8TB – $1399.99
12TB – $1499.99
16TB – $1699.99
24TB – $2249.99
The following upgrades are available to the base system:
- Memory upgrade – $ 225 – additional 2x8GB ECC 1600mhz memory (32GB system total)
- L2ARC (Read Cache) – $145 – 2.5″ 120GB SATA III Internal Solid State Drive
- ZIL (Write Cache) – $115 – 2.5″ 64GB SATA III MLC Internal Solid State Drive
- Dual-Port 10 Gigabit Ethernet Upgrade – $290
- Pair of 10 Gigabit SFP+ Modules – $225
- Pair of 10 Gigabit Twinax Cables – $120
Standard File Transfers
For my tests I chose to use 4 x 3TB disks, in mirrored striped vdevs, with a 120GB L2ARC read cache, and a 60GB ZiL Write Cache.
I’ve used both of the Intel Gigabit NICs in a LACP aggregation.
My network switch that I am using is a Juniper EX2200.
I’ve done a simple transfer test myself to show real world transfers of files, for each test I generate a random 1GB file each time to avoid any caching, and transfer it across the network
This was done 10 times and averaged out.
CIFS – FreeNAS to a Windows 7 machine
Transfer speed average – 108MBps
Time – 7.7 Seconds
NFS – FreeNAS to a Ubuntu Linux machine
Transfer speed average – 101MBps
Time – 8.5 Seconds
Rsync – FreeNAS to a Ubuntu Linux machine
Transfer speed average – 88MBps
Time – 9.8 Seconds
iperf – FreeNAS as the iperf server – ubuntu as the client
iperf average speed – 963Mbits
Command line used: iozone -R -l 5 -u 5 -r 4k -s 100m -F /mnt/zstore02/download/f1 /mnt/zstore02/download/f2 /mnt/zstore02/download/f3 /mnt/zstore02/download/f4 /mnt/zstore02/download/f5
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
Min process = 5
Max process = 5
Throughput test with 5 processes
Each process writes a 102400 Kbyte file in 4 Kbyte records
Children see throughput for 5 initial writers = 677798.31 KB/sec
Parent sees throughput for 5 initial writers = 282842.73 KB/sec
Min throughput per process = 133690.06 KB/sec
Max throughput per process = 137315.84 KB/sec
Avg throughput per process = 135559.66 KB/sec
Min xfer = 99836.00 KB
Children see throughput for 5 rewriters = 630001.95 KB/sec
Parent sees throughput for 5 rewriters = 303353.18 KB/sec
Min throughput per process = 124129.38 KB/sec
Max throughput per process = 129656.19 KB/sec
Avg throughput per process = 126000.39 KB/sec
Min xfer = 98040.00 KB
Children see throughput for 5 readers = 2331234.44 KB/sec
Parent sees throughput for 5 readers = 2275123.48 KB/sec
Min throughput per process = 454044.09 KB/sec
Max throughput per process = 487220.25 KB/sec
Avg throughput per process = 466246.89 KB/sec
Min xfer = 94976.00 KB
Children see throughput for 5 re-readers = 2285848.00 KB/sec
Parent sees throughput for 5 re-readers = 2233940.62 KB/sec
Min throughput per process = 454959.25 KB/sec
Max throughput per process = 462952.53 KB/sec
Avg throughput per process = 457169.60 KB/sec
Min xfer = 100188.00 KB
Children see throughput for 5 reverse readers = 2085917.81 KB/sec
Parent sees throughput for 5 reverse readers = 2045759.02 KB/sec
Min throughput per process = 409526.53 KB/sec
Max throughput per process = 423751.59 KB/sec
Avg throughput per process = 417183.56 KB/sec
Min xfer = 99372.00 KB
Children see throughput for 5 stride readers = 1871120.69 KB/sec
Parent sees throughput for 5 stride readers = 1839494.15 KB/sec
Min throughput per process = 367270.09 KB/sec
Max throughput per process = 385436.44 KB/sec
Avg throughput per process = 374224.14 KB/sec
Min xfer = 97216.00 KB
Children see throughput for 5 random readers = 1705217.53 KB/sec
Parent sees throughput for 5 random readers = 1678615.89 KB/sec
Min throughput per process = 334622.19 KB/sec
Max throughput per process = 346748.44 KB/sec
Avg throughput per process = 341043.51 KB/sec
Min xfer = 98492.00 KB
Children see throughput for 5 mixed workload = 1066438.07 KB/sec
Parent sees throughput for 5 mixed workload = 294824.06 KB/sec
Min throughput per process = 112025.85 KB/sec
Max throughput per process = 284608.19 KB/sec
Avg throughput per process = 213287.61 KB/sec
Min xfer = 40308.00 KB
Children see throughput for 5 random writers = 487332.30 KB/sec
Parent sees throughput for 5 random writers = 264946.80 KB/sec
Min throughput per process = 93516.12 KB/sec
Max throughput per process = 101483.91 KB/sec
Avg throughput per process = 97466.46 KB/sec
Min xfer = 94360.00 KB
Children see throughput for 5 pwrite writers = 654667.59 KB/sec
Parent sees throughput for 5 pwrite writers = 270436.68 KB/sec
Min throughput per process = 129090.45 KB/sec
Max throughput per process = 133103.00 KB/sec
Avg throughput per process = 130933.52 KB/sec
Min xfer = 99056.00 KB
Children see throughput for 5 pread readers = 2339716.66 KB/sec
Parent sees throughput for 5 pread readers = 2283643.03 KB/sec
Min throughput per process = 459974.72 KB/sec
Max throughput per process = 478815.81 KB/sec
Avg throughput per process = 467943.33 KB/sec
Min xfer = 97912.00 KB
Children see throughput for 5 fwriters = 634482.73 KB/sec
Parent sees throughput for 5 fwriters = 257631.71 KB/sec
Min throughput per process = 126201.65 KB/sec
Max throughput per process = 127562.94 KB/sec
Avg throughput per process = 126896.55 KB/sec
Min xfer = 102400.00 KB
Children see throughput for 5 freaders = 2057823.97 KB/sec
Parent sees throughput for 5 freaders = 1992017.06 KB/sec
Min throughput per process = 404222.41 KB/sec
Max throughput per process = 417689.97 KB/sec
Avg throughput per process = 411564.79 KB/sec
Min xfer = 102400.00 KB
“Throughput report Y-axis is type of test X-axis is number of processes”
“Record size = 4 Kbytes ”
“Output is in Kbytes/sec”
” Initial write ” 677798.31
” Rewrite ” 630001.95
” Read ” 2331234.44
” Re-read ” 2285848.00
” Reverse Read ” 2085917.81
” Stride read ” 1871120.69
” Random read ” 1705217.53
” Mixed workload ” 1066438.07
” Random write ” 487332.30
” Pwrite ” 654667.59
” Pread ” 2339716.66
” Fwrite ” 634482.73
” Fread ” 2057823.97
iozone test complete.
In the 4-6 bay prebuilt NAS market there are a lot of options now, Thecus, QNap, Buffalo, Synology and various other brands.
I have tried several of these other options and can honestly say performance wise they do not come close.
If you are a small business in the market for a storage server, you should seriously consider FreeNAS mini, especially if performance and data integrity matters.
The only marks I would take away from FreeNAS is that the GUI on some of the competition is slightly more polished and makes management a bit easier.
However if you are comfortable with using a CLI, the power and flexibility of FreeNAS is unrivaled in this demographic.
4.5 / 5