What is ZFS? And why are people crazy about her?

Original author: John Paul
  • Transfer
We will now discuss ZFS advanced file system. We will discuss how it appeared, what it is, and why it is so popular in technical circles and enterprises.

Although I am from the USA, I prefer to pronounce ZedFS instead of ZeeFS, because it sounds cooler. You can choose the pronunciation for yourself.

Note: In this article, you will see that ZFS is repeated many times. When I talk about features and installation, I mean OpenZFS. The paths of ZFS (developed by Oracle) and OpenZFS diverged since Oracle closed the OpenSolaris project. (Read more later in the article.)

ZFS history


The Z File System (ZFS) was created by Matthew Aren and Jeff Bonwick in 2001. ZFS was designed to be the next generation of OpenSolaris file systems from Sun Microsystems. In 2008, ZFS was ported to FreeBSD. In the same year, ZFS porting to Linux began. However, since ZFS began to be released under the CDDL license, which is incompatible with the GNU GPL, it cannot be added to the Linux kernel. To get around this limitation, most distributions offer ZFS installation methods.

Soon after Oracle bought Sun Microsystems, the OpenSolaris code was closed. All subsequent development of ZFS has become closed too. A large number of ZFS developers have been disappointed by these changes. Two thirds of important ZFS developers, including Arens and Bonvik, left Oracle due to this decision. They joined other companies and created the OpenZFS project in September 2013. The project led the open source development of ZFS.

Let us return to the problem with the licenses mentioned above. From the moment OpenZFS separated from Oracle, it may be interesting to someone why they did not change the GPL-compatible license, so as to include the file system in the Linux kernel. According to the OpenZFS website, changing the license entails contacting the developers who made changes to the OpenZFS release (including those who started this project and the ZFS code prior to OpenSolaris) and get their permission. This is almost impossible (maybe some of them have already died or are not so easy to find), they decided to leave everything as it is.

What is ZFS? What makes it special?


image

As I said earlier, ZFS is an advanced file system. As such, it has some interesting features. Such as:

  • Pooled storage
  • Copy-on-write
  • Snapshots
  • Verification of information integrity and automatic repair
  • RAID-Z
  • The maximum file size is 16 Exabytes ( Approx. Translator: 10 ^ 18 bytes )
  • Maximum storage size of 256 quadrillion Zettabyte ( Approx. Translator: Quadrillon - million ^ 4; Zettabyte - 10 ^ 21 bytes)

We will understand some of them.

Unified Storage


Unlike other file systems, ZFS combines the file system and disk manager capabilities. This means that ZFS can create a file system spanning all disks. But not only that, you can also add storage to the disk system. ZFS will do the partitioning and formatting of disks.

image

Copy-on-write


Copy-on-write is another interesting feature. But most file systems, if information is overwritten, are lost forever. In ZFS, new information is recorded in a separate block. Once the recording is complete, the file system metadata is updated to the point of new information. This ensures that if the file system breaks (or something like that happens) while recording, the old information will be fixed. This means that the system does not need to run fsck after a crash.

Snapshots


Copy-on-write leads to another interesting thing about ZFS: snapshots. ZFS uses snapshots to keep track of file system changes. The snapshot stores the original version of the file system and the current one, in which all changes since the snapshot was taken. No extra space is used. As soon as new information is written to the current file system, new blocks are distributed to store it. If the file has been deleted, the mention of it from the snapshot disappears. Pictures are designed to track changes, but are not complementary and do not create files.

Pictures can be mounted in read-only format to restore the old version of the file. You can also roll back the system to the previous snapshot. All changes made after the snapshot will be lost.

Verification of information integrity and automatic repair


Whenever new information is recorded in ZFS, a check-sum (checksum) is created for this information. When the information is read, the check-amount is confirmed. If the check sums do not match, ZFS notices the error and tries to correct it.

RAID-Z


ZFS can raise RAID without auxiliary software. Not surprisingly, ZFS provides its own implementation of RAID: RAID-Z. RAID-Z is essentially a variation of RAID-5. However, RAID-Z is designed to outperform RAID-5 in terms of error, "all data and parity information becomes incompatible after an unexpected reboot." To use the base level (RAID-Z1) you need at least two disks to storage and one for parity control. RAID-Z2 needs at least two disks for storage and two for parity. RAID-Z3 requires two disks for storage and three for parity. Once the disks are added to the RAID-Z groups, they must be a multiple of two.

Huge storage capabilities


When ZFS was created, it was designed to be the best of its kind. At a time when most file systems were 64-bit, the creators of ZFS decided to make it 128-bit, for future confirmation of this. This means that ZFS provides 16 million million 32-bit or 64-bit systems. In addition, Jeff Bonwick (one of the creators) said that the power supply of a fully-filled 128-bit memory pool would literally require more energy than for the boiling of the oceans.

How to install ZFS


If you want to use ZFS out of the box, then you must install either FreeBSD or an OS that uses the illumos kernel. Illumos is a fork of the OpenSolaris core.

In fact, ZFS support and for ZFS is the main aspect, why some experienced Linux users opt for BSD.

If you want to use ZFS on Linux, you can use it as a file system only for storage. As far as I know, none of the distributions make it possible to install ZFS, so that it works immediately. If you are interested and want to try, there is a ZFS on Linux project that provides several tutorials.

At last


In this article, I talked about the advantages of ZFS. And now about a little problem. Using RAID-Z can be costly due to the number of drives needed for it.

Have you ever used ZFS? And how is she to you? Tell us about it in the comments.

Translator's epilogue


Thank you for reading. Good luck to you.

Also popular now: