Deprecated: Creation of dynamic property InsertHeadersAndFooters::$plugin is deprecated in /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php on line 41

Deprecated: Creation of dynamic property InsertHeadersAndFooters::$body_open_supported is deprecated in /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php on line 48

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home2/itenterp/public_html/wp-content/plugins/updraftplus/class-updraftplus.php on line 955

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home2/itenterp/public_html/wp-content/plugins/updraftplus/class-updraftplus.php on line 955

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home2/itenterp/public_html/wp-content/plugins/updraftplus/class-updraftplus.php on line 1528

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home2/itenterp/public_html/wp-content/plugins/updraftplus/class-updraftplus.php on line 2267

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home2/itenterp/public_html/wp-content/plugins/updraftplus/class-updraftplus.php on line 3112

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home2/itenterp/public_html/wp-content/plugins/updraftplus/class-updraftplus.php on line 3118

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home2/itenterp/public_html/wp-content/plugins/updraftplus/class-updraftplus.php on line 3236

Deprecated: Creation of dynamic property WP_Rocket\Engine\Preload\SitemapPreloadSubscriber::$options is deprecated in /home2/itenterp/public_html/wp-content/plugins/wp-rocket/inc/Engine/Preload/SitemapPreloadSubscriber.php on line 26

Deprecated: Creation of dynamic property WP_Rocket\Engine\Preload\SitemapPreloadSubscriber::$sitemap_preload is deprecated in /home2/itenterp/public_html/wp-content/plugins/wp-rocket/inc/Engine/Preload/SitemapPreloadSubscriber.php on line 27

Deprecated: Automatic conversion of false to array is deprecated in /home2/itenterp/public_html/wp-content/plugins/wp-rocket/inc/3rd-party/plugins/seo/yoast-seo.php on line 10

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /home2/itenterp/public_html/wp-content/plugins/wp-smushit/core/modules/helpers/class-parser.php on line 229

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /home2/itenterp/public_html/wp-content/plugins/wp-smushit/core/modules/helpers/class-parser.php on line 234

Deprecated: Creation of dynamic property Smush\Core\Modules::$webp is deprecated in /home2/itenterp/public_html/wp-content/plugins/wp-smushit/core/class-modules.php on line 95

Deprecated: Optional parameter $output declared before required parameter $atts is implicitly treated as a required parameter in /home2/itenterp/public_html/wp-content/plugins/td-composer/legacy/common/wp_booster/td_wp_booster_functions.php on line 1599

Deprecated: Optional parameter $depth declared before required parameter $output is implicitly treated as a required parameter in /home2/itenterp/public_html/wp-content/plugins/td-cloud-library/includes/tdb_menu.php on line 251

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_classic_block is deprecated in /home2/itenterp/public_html/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 347

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_block is deprecated in /home2/itenterp/public_html/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 349

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_block_side is deprecated in /home2/itenterp/public_html/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 350

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$panels_block is deprecated in /home2/itenterp/public_html/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 351

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$used_block_buttons is deprecated in /home2/itenterp/public_html/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 354

Warning: Cannot modify header information - headers already sent by (output started at /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php:41) in /home2/itenterp/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php:41) in /home2/itenterp/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php:41) in /home2/itenterp/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php:41) in /home2/itenterp/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php:41) in /home2/itenterp/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php:41) in /home2/itenterp/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php:41) in /home2/itenterp/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home2/itenterp/public_html/wp-content/plugins/insert-headers-and-footers/ihaf.php:41) in /home2/itenterp/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1831
{"id":1321,"date":"2020-06-16T01:05:29","date_gmt":"2020-06-15T16:05:29","guid":{"rendered":"https:\/\/itenterpriser.com\/?p=1321"},"modified":"2020-10-18T12:11:30","modified_gmt":"2020-10-18T03:11:30","slug":"what-is-zfs-the-file-system-other-file-systems-aspire-to","status":"publish","type":"post","link":"https:\/\/itenterpriser.com\/knowledge-base\/what-is-zfs-the-file-system-other-file-systems-aspire-to\/","title":{"rendered":"What is ZFS? The File System other File Systems Aspire to"},"content":{"rendered":"

File systems are what make organized data storage possible, and quite a few have appeared over the years: FAT32, exFAT, NTFS, Ext2\/3\/4, Btrfs<\/a>, HFS, APFS, etc. However, there’s one file system that outshines them all–ZFS. But what exactly is ZFS?<\/p>\n

What is ZFS?<\/h2>\n

In my mind’s eye, I see a slightly tipsy Sun Microsystems (the creators) software engineer doing their Inspector Clouseau impression when the idea for this file system to end all files systems was brokered, saying, “We have zee file sees-tem!” If you’re seeking a less fanciful explanation, how about ZFS being 128 bits instead of the usual 64 bits, making it capable of handling “Z”etabytes (1 billion terabytes) of storage. Zee where I’m going here?<\/p>\n

But while its capacity is huge, ZFS is equally about independent operation and data integrity. It acts as its own volume manager and RAID controller and offers file server functionality via Samba (SMB), NFS, iSCSI, etc. Features such as copy on write and Merkle parity trees protect from just about every conceivable type of data hazard. If your data is going to be used to navigate a rocket to Mars, ZFS is what you want.<\/p>\n

Major Features of ZFS<\/h2>\n

The ZFS volume manager handles pools (zpools) of any type of storage device, normally SSDs and hard drives<\/a>. It can tier them (fastest to slowest), and allows multiple mount points, or in ZFS parlance–data sets. Data sets are functionally similar to user shared folders in that the have their own settings for compression, security, access, and more.<\/p>\n

\"Basic
Delphix<\/figcaption><\/figure>\n

Here’s an example. You have 50TB of storage and you create data Sets A, B, and C. These all share that same 50TB so if you write 12TB of data to set A, sets B and C will show the same 38TB remaining. Data set A can be compressed and encrypted and available to only a few people, while data sets B and C are uncompressed and available to everyone. Again, this all occurs across in the same zpool.<\/p>\n

Fletcher checksums<\/a> or SSH 2 hashes are used to assure data security and are stored in Merkle trees, meaning there are several checks for integrity. In case of an error, the data is corrected on transmission then where it was stored as well.<\/p>\n

Copy on write is an important tool in the ZFS’s pantheon of data protection features. What it actually does is write new data to an empty location, leaving the old data which might be deleted intact, which is then overwritten at some future date. This means there’s a copy of the data still intact should a write fail for any reason: drive issues, power failure, DMA errors, etc. Not until a write is absolutely completed is the data written marked as existent.<\/p>\n

\"Copy
Delphix<\/figcaption><\/figure>\n

Snapshots are a side benefit of copy-on-write. As old data isn’t overwritten, it can be marked for retention via a point in time description of the blocks in use, aka snapshot. Snapshots can be copied offsite with all the data to function as true backups.<\/p>\n

Hot spares (extra drives on standby) are supported. These are swapped in for a failed or failing drive as temporary replacement until the actual replacement can be re-silvered. That is, rebuilt or filled with the data the failed\/failing drive contained.<\/p>\n

De-duplication. This term might give you the idea that duplicates are being removed, but it actually means they aren’t being written. This is another advantage of creating and saving hashes for every block of data. If the system finds a familiar hash, it compares the data bit by bit, then throws away the incoming data if it’s truly the same.<\/p>\n

Purposeful duplication. You can specify multiple copies be written in place of or along with RAID. These copies are distributed across multiple physical devices or virtual devices (Vdevs) such as a RAIDZ array.<\/p>\n

RAIDZ is more or less a RAID 5<\/a> implementation that can survive one or two drive failures. Mirroring is also supported.<\/p>\n

ZFS also lets you replace smaller drives with larger drives and take advantage of the extra capacity. As long as you have one free space for the drive (bay, SATA port, etc.) the contents of the smaller drive are copied over, and then you remove the smaller drive. This is possible because of the dynamic stripe sizing used by the system.<\/p>\n

ZFS can be administrated using only a few simple, easily understood commands. There are, of course, numerous options.<\/p>\n

It would take a dozen articles to cover ZFS thoroughly, but those are some of the major highlights. To reiterate:<\/p>\n

The Upsides of ZFS<\/h2>\n

Here are a few of the many upsides of ZFS.<\/p>\n