76 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
navigation: true
 | 
						||
title: ZFS
 | 
						||
main:
 | 
						||
  fluid: false
 | 
						||
---
 | 
						||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
 | 
						||
# ZFS
 | 
						||
 | 
						||
::alert{type="info"}
 | 
						||
🎯 __Objectives:__
 | 
						||
- Understand what ZFS is and why it's useful
 | 
						||
::
 | 
						||
 | 
						||
ZFS is widely used in the world of servers, NAS systems (like FreeNAS / TrueNAS), virtualization, and even by tech-savvy individuals who want reliable storage. It is both a _file system_ (like NTFS for Windows, EXT4, FAT32, etc.) and a _volume manager_ (similar to LVM).
 | 
						||
 | 
						||
To put it simply:  
 | 
						||
- A **volume manager** organizes physical storage (like one or more hard drives).  
 | 
						||
- A **file system** organizes how data blocks are written, read, and deleted within those volumes.
 | 
						||
 | 
						||
ZFS goes far beyond traditional file systems in terms of performance and features.  
 | 
						||
Here’s what we’re most interested in:
 | 
						||
- Its __snapshot management__ features, allowing you to quickly roll back in case of issues.
 | 
						||
- Its support for disk groupings and [__RAID-like structures__](/general/storage/raid) (Z-Mirror, RAIDZ1, RAIDZ2, RAIDZ3).
 | 
						||
- Its __automatic recovery of corrupted data__ (through scrubbing).
 | 
						||
- Its performance, enhanced by RAM caching (ZFS ARC).
 | 
						||
- Its robust error notifications and monitoring.
 | 
						||
 | 
						||
## Structure
 | 
						||
---
 | 
						||

 | 
						||
 | 
						||
ZFS has a unique structure:
 | 
						||
 | 
						||
- **vdev** (virtual device): a group of physical or virtual disks.
 | 
						||
- **zpool**: a collection of vdevs configured as a single storage pool. A zpool can contain multiple vdevs, but a vdev belongs to only one zpool.
 | 
						||
- **dataset**: a logical data container within a zpool. Each dataset can have its own settings (compression, quotas, permissions, etc.).
 | 
						||
 | 
						||
There are several dataset types:
 | 
						||
- **file system**: a standard ZFS filesystem, mounted without storage quotas.
 | 
						||
- **zvol**: a "virtual disk" with a defined size, which you can format and partition as if it were a physical disk.
 | 
						||
- **snapshot**: a frozen-in-time version of another dataset. Snapshots can be created manually or through backup tools. They can be mounted to browse data as it was at the snapshot time.
 | 
						||
 | 
						||
## Why ZFS over others?
 | 
						||
---
 | 
						||
### Data Integrity
 | 
						||
 | 
						||
ZFS continuously checks that your stored data hasn't become corrupted. Every block of data is associated with a checksum, allowing ZFS to detect even the smallest alteration. If corruption is found and a healthy copy exists elsewhere, ZFS can repair the data automatically.
 | 
						||
 | 
						||
### Built-in RAID
 | 
						||
 | 
						||
ZFS includes its own volume management system (vdevs). You can build a zpool using multiple disks—similar to traditional [RAID](/general/storage/raid) setups—but with more flexibility. For example:
 | 
						||
- **Z-mirror** → equivalent to RAID 1
 | 
						||
- **RAIDZ1** → equivalent to RAID 5 (tolerates 1 disk failure)
 | 
						||
- **RAIDZ2** → equivalent to RAID 6 (tolerates 2 disk failures)
 | 
						||
- **RAIDZ3** → tolerates up to 3 disk failures
 | 
						||
 | 
						||
ZFS handles all this natively—no external RAID software needed.
 | 
						||
 | 
						||
::alert{type="info"}
 | 
						||
:::list{type="info"}
 | 
						||
- Check out the [article on RAID](/general/storage/raid) to find the right solution for your needs.
 | 
						||
:::
 | 
						||
::
 | 
						||
 | 
						||
### Snapshots and Clones
 | 
						||
 | 
						||
ZFS allows you to create snapshots—instantaneous images of a dataset's state. Snapshots take up minimal space and can be scheduled frequently. You can also create clones: writable copies of snapshots.
 | 
						||
 | 
						||
### Compression and Deduplication
 | 
						||
 | 
						||
ZFS can compress data on the fly (transparently to the user), saving disk space. It also supports deduplication (removing duplicate data), though this feature requires a lot of memory and is not recommended for all use cases.
 | 
						||
 | 
						||
---
 | 
						||
 | 
						||
Now you know why ZFS is *the* file system to deploy on your NAS. |