Before you start reading, this article may be a little technical for some readers, at every opportunity we'll do our best to simplify as much as possible and provide real-world examples of the technology and how it can benefit your business.
The Worlds No#1 Storage OS with over 10+ Million downloads, Enterprise Grade Features - OpenSource
FreeNAS is an open-source storage platform that runs on top of the FreeBSD operating system. As the name suggests, FreeNAS is a cost-effective, and in many cases, a more powerful NAS - Network Attached Storage solution than many of its commercial closed source NAS counterparts.
The FreeNAS project was started in October 2005 by Olivier Cochard-Labbé who based it on a project he was using at the time called m0n0wall an embedded firewall based on FreeBSD 6.0. Oliver was looking for a solution to store and stream videos, files and other media, for his home office, FreeNas grew out of a need to fill a gap and solve a problem out of necessity, like all great things.
"Necessity is the mother of invention"
You can watch Oliver's full story below it's quite interesting:
Today FreeNas is maintained by IX Systems who took over the project between 2009-2010. They have helped turn FreeNas into the success story it is today, IX Systems also offers a commercial version of FreeNas called TrueNas delivering additional enterprise features like HA – High Availability, 24x7x4 support and everything in between.
FreeNAS supports every major operating system and virtualisation platform, providing file, block, and object storage.
At a high level, the FreeNAS operating system can be installed on any x86 PC with more than 8GB of RAM and adequate storage, giving you all of the tools needed to start backing up and sharing data across your network.
The software is not only limited to hardware installations. If you are running a virtual environment and have enough horsepower, FreeNas can be virtualised to meet business demands with a few caveats to consider, of course.
At its core, FreeNas uses the ZFS – Zettabyte File System to store your data securely and protect it from corruption.
All storage systems need a good foundation to build upon for FreeNas it's ZFS the Zettabyte File system named appropriately due to its data capacity capability measured in Zettabytes, here's a little example of how much that is.
|GB Gigabytes||TB Terabytes||ZB Zettabyte|
|1 Million Million||1 Billion||1|
If you're keen to dive into a little more detail jump over to the Wikipedia page to read more about capacity comparisons
ZFS is an enterprise-level open source file system. If your not familiar with Opensource just yet go and check out our article Why Opensource Is Good For Business.
ZFS provides uncompromising data integrity by continually performing a checksum against your data, in its purest form, this is a process of checking your data for errors.
End-to-end checksums are a crucial feature of ZFS and an essential differentiator for ZFS over other RAID implementations and filesystems. Advantages of end-to-end checksums include:
ZFS employs a multi-disk strategy allowing it to maintain a superior level of data redundancy. By mirroring and striping data to disks, ZFS can achieve the equivalent level of drive and data redundancy of RAID 0, 1, 5, 6, 10 and more.
We'll deep dive on Raid, and other technologies in follow up articles.
ZFS creates active, point-in-time snapshots of your data, manually create snapshots at any given time or automate this function on a frequent schedule. Snapshots can be used against crypto-locker and other malware that may have infected your data by allowing you to roll back to a previous good version in seconds.
Snapshots can also be used to create a clone of your data to be accessed for testing and changes without affecting the original data, when done simply disposed of the clone, all the time allowing real world changes to be made to the original data without intruption, this is awesome for virtual machines, databases or files when testing development work or upgrades, it's seamless and how all filesystem should work!
ZFS Replication creates another copy of your data to different drives in the same FreeNas server or a FreeNas server located at another site. By using ZFS replication it allows your business to have a Disaster Recovery (DR) process in place in the event disaster strikes minimising business disruption.
ZFS replication works by copying the base data set to the desired location; after this point, only the difference in changed data in the next snapshot is sent over helping minimise IP transit costs. i.e. if only 5 GB has changed then only 5 GB needs to be replicated over to the other FreeNas system.
Combining ZFS Snapshots and ZFS Replication gives your business the ability to define and set it's own Recovery Point Objectives (RPO) and Recovery Time Objectives (RTO). Without the need for any additional 3rd party software in the mix allowing to keep costs low.
We'll dive more into RPO, RTO and how to create a DR policy for your business in another post, let's stay focused on FreeNas :)
FreeNAS offers support for Self-Encrypting Drives and full-disk software encryption on ZFS volumes, being the first open-source NAS solution to provide this level of security for your data.
What this means is if encryption is configured and your FreeNas is stolen all data residing on the system won't be accessible until the encryption key is entered safeguarding your confidential data from prying eyes, this is perfect for businesses that deal with sensitive client data and an excellent fit for legal, finance, IT industries just to name a few where this level of security is a must.
A quick overview on the different ways to use storage taken from the Red Hat website: File storage organises and represents data as a hierarchy of files in folders; block storage chunks data into arbitrarily arranged, evenly sized volumes; and object storage manages data and links it to associated metadata.
The ZFS file system can act as a file server with very little configuration for Windows, Mac and Unix like operating systems. Users and groups can be created locally on FreeNas to act as a stand-alone server providing granular segmentation via file and folder permissions.
Additionally, FreeNas can connect into an organisations existing user database. For example, Windows AD – Active Directory or any OS's – Operating Systems LDAP – Lightweight Directory Access Protocol using existing users and groups to deliver granular file-sharing permissions.
Furthermore, Snapshots can be integrated directly into Windows File Shares as Read-Only Shadow Copies allowing permitted users to access previous versions of files to restore from in the event a file is deleted, overwritten or corrupted. This feature speeds up end user ability to quickly fix a file related issue without needing to engage with a supervisor or IT professional making the end-user more productive.
Productivity = money
For Soho's and medium-sized businesses having the ability to back up computers to a central location provides the benefit of being able to recover from an IT issue much quicker than needing to rebuild a computer from scratch. Backups offer a point in time copy of data that may be stored on your FreeNAS device.
This ability to backup devices to a central location is excellent for example with office workers that may have a BYOD – Bring Your Own Device policy and allows businesses to have a data backup policy for users that may not use central shared file storage but still need infrequent backups in case of disaster.
Yes! FreeNas Has MAC Time Machine Compatibly.
Good news for Apple users. Time Machine works seamlessly for backup of macOS clients. A simple file share can be defined with limited access to a single user or group, and capacity can be restricted so that users don't consume all available storage on your FreeNas.
That's right you've read correctly. If you run virtual machines in your environment Hyper-V, VMWare, KVM all of the above and more, FreeNas can also act as a target for backups with any of your current backup software by presenting storage as Block, File or Object. - we'll dive into this a little more in future posts.
Another remarkable feature is FreeNas's ability to deliver block storage. Block storage is primarily used to provide storage at a block level that can be added to desktops and servers and presented as a local drive.
Many virtualisation technologies use NAS shared block storage when hosting virtual machines for High Availability, in the event one of the connected servers crash the VM can be moved over to a running server with minimal interruption to service up-time. Yes, FreeNas does this too!
Object storage is designed differently to file and block storage and is used to assign metadata to the object for faster grouping of data. It's best used for static items that do not have a high rate of change for example photos, backups and music files.
Objects are placed into buckets which you can think of as folders and are assigned unique identifiers for granular management and improved identification of data. Buckets can be replicated and used for data version control.
FreeNAS uses min.io for its object storage which is another successful opensource project. FreeNas's implementation of object storage is primarily designed for single-tenant access only allowing for one secret key to be used to access data. With a few custom changes to the FreeNas implementation min.io can be run in a Jail and can cater for multi-tenancy, we'll cover this topic in another post.
Something worth touching on is ZFS built-in compression that's applied to data on the fly. Compression automatically looks at the data before it's written to disk and uses the LZ4 compression algorithm, depending on your data this can deliver Zero savings for data that's already compressed like a Zip file or 1.8:1 ratio that's 80% for items like DB's – DataBases and text files. On average in production, we see between 20-50% reduction in data size for Virtual Machines and other raw data which can be a considerable saving making your dollar go further.
With FreeNAS, you can install and configure ready-to-go plugins from the web interface. Each plugin that you install will automatically allocate and restrict to its own secure FreeBSD jail, think of a jail as a mini virtual machine keeping specific data in its own designated space.
There are a plethora of plugins to use, and we'll dedicate an entire post with a deep dive into each one in more detail.
Jails are lightweight operating-system-level virtualisation technology and form the foundation for FreeNAS plugins.
Having the ability to create multiple jails allows for greater flexibility when it comes to managing your software. Separating your applications into separate jails provides better control of apps. Think of it this way when you uninstall an app in Windows it doesn't always get cleanly removed as there are links to other files and dependencies that are needed for the app to run, sometimes these dependencies are shared and if deleted can break Windows.
Using a Jail allows the application to be deleted/ removed without affecting any other apps and in essence helps keep FreeNas running cleanly like a well-oiled machine.
When purchasing a NAS device for your storage needs, both hardware and software need to be taken into consideration.
Designing a system for optimal performance with ZFS has many technical challenges which require having a good technical understanding of hardware and how it works with ZFS is imperative. Pairing the right type of device will guarantee the system is robust enough to be able to deliver all the rich enterprise features of ZFS & FreeNas and keep data integrity at the forefront of the solution. You can't just throw any commodity hardware at FreeNas and ZFS, or it will end in disaster.
IX Systems the maintainers of FreeNas have taken into account that not every user or business wishes to build or has the time to DIY a custom FreeNas system, with this in mind they have painstakingly taken the hard work out of selecting the right hardware, testing and burning in every FreeNas system by hand before shipping to minimise component failure and to maximise your return on investment.
Using only Enterprise or Pro NAS drives, ECC Registered Memory and Web Browser Remote Administration consoles are just some of the enterprise hardware features built into every FreeNas server by default setting it apart from competitors.
We could argue all day about why one feature is better than another. Why is having a simple user inferface for Brand A better than a more complex one for Brand B.
Let's be honest like anything there are going to be many different sides to every story and why we as people will choose one product over another.
All opinions to one side the primary reason you're considering a NAS device is to keep your data safe. At some stage in the decision-making process of why a NAS is needed in the first place a conscious decision was made that your data has value, this value is derived from the time spent in creating the data, not just your time but also your teams time, contributors, customers, many different individuals and companies at some stage have added to your data and even family members too.
The question comes down to "What is your data worth" if you were to lose it tomorrow and couldn't get it back or only could retrieve part of it, how much time money and resources can you afford to put into recovering it if you even can.
1. Data Integrity At Its Core FreeNas and ZFS have some significant differentials to consider when it comes to data integrity, hands down it's the only system today that has data integrity built into its core design. ZFS's primary design principle is to keep data safe from errors by check-summing and scrubbing it regularly when errors are detected, the data is recovered from an existing replica and fixed.
2. Designed To Scale and hold a tone of data. ZFS is designed to store Zettabytes of data meaning it can scale and grow with your needs.
3. Built For The Enterprise – Available To Everyone To be able to deliver on its Data Integrity promise ZFS works at it's best when partnered with enterprise-grade hardware working hand in hand to provide data consistency.
ECC Error-correcting Code memory makes sure that when data passes between memory to disk, it's error-free
Higher-end NAS specific or other Enterprise-grade drives designed for higher durability and reduced disk errors.
Yes, enterprise hardware costs more than consumer-grade hardware as it last's longer and is designed to do a better job.
4. Multiple Layers Of Redundancy ZFS has multiple levels of redundancy built into its disk configurations at a high level you can lose up to 3 drives in a RaidZ3 array and still deliver your data without missing a beat.
5. Survive Disaster - Deliver on RTO - Recovery Time Objectives By design, replication is baked right in allowing for another copy of your data to live in parallel. When disaster strikes, natural or man-made have a copy of your data in another location and get back to business.
6. Something Missing - Deliver on RPO - Recovery Point Objectives With Snapshots roll back to any point in time and retrieve lost data, end-user accidentally deleted a file or disgruntled employee intentionally covering their tracks, set up a snapshot frequency that meets business objectives.
I've worked with storage for a long time and experienced the positives and negatives of different storage arrays all promise to deliver some do and others fall short. Still, none of them are open source and as good at protecting your data.
FreeNas and ZFS are an excellent solution delivering a robust, flexible and capable set of features that safeguard your data.
DIY is excellent in many ways to learn about how things work, it's superior in a lab environment or to be used in a personal non-production use cases. Unless you have the skill set required to build, maintain and take responsibility for the uptime of your project and safety of your data otherwise it may be a good idea to look at purchasing a well-vetted solution from a technology vendor.
If you're leaning towards the latter, FreeNas also comes in pre-built commercial options that already take all the guesswork out of building, tuning and making sure the correct components are selected to get the maximum amount of uptime and performance out of your investment.
We've only scratched the surface on FreeNas and ZFS technologies to give you a little overview of how this ineradicable opensource solution can work for your business. In coming posts, we'll deep dive into each part of the technology stack, perform comparison testing of other platforms and discuss how FreeNas and ZFS can be tailored to help deliver imperative IT policies for your data and deliver business continuity.