quick overview of the major zfs features

guiding principles

  • Pooled storage
    • Completely eliminates the antique notion of volumes
    • Does for storage what VM did for memory
  • Transactional Object System
    • Always consistent on disk - no fsck, ever
  • Provable end-to-end data integrity
    • Detects and corrects silent data corruption
  • Simple administration
    • Concisely express your intent
objective - end the suffering
  • Figure out why storage has gotten so complicated
  • Blow away 20 years of obsolete assumtions
  • Design an integrated system from scratch

FS/Volume Model vs. pooled storage

Feature traditional volumes zfs pooled storage
Abstraction virtual disk malloc/free
Partition/volume one for each filesystem No partitions to mange
Grow/shrink manually automatically
Bandwidth limited to volume all bandwith always available
Storage Fragmentation stranded shared amongst the whole pool

self-healing data

  1. application issues a read and the checksum reveals that the block is corrupt on disk
  2. zfs tries the next disk and checksum indicates that the block is good
  3. zfs returns good data to the application and repairs the damaged block

end-to-end data integrity

zfs data integrity through end to end checksumming of data

error regular checksumming zfs checksumming
Bit rot detected detected
Phantom writes undetected detected
Misdirected reads and writes undetected detected
DMA parity errors undetected detected
Driver bugs undetected detected
Accidental overwrite undetected detected

other cool features

Source

15.05.2018 - OpenZFS Basics

https://peertube.satoshishop.de/w/wx39qv97m16rpofQvkbZwe

00:00:00 Introduction
00:02:50 ZFS Guiding Principles
00:04:37 FS/Volume Model vs. Pooled Storage
00:07:22 filesystem layout (SPA, DMU, ZPL/ZVOL)
00:10:36 SPA (storage pool allocator) manages blockpointers
00:13:04 copy-on-write (always writes new data. never overwrites old)
00:15:41 128-byte block pointer
00:26:02 self-healing data
00:27:07 end-to-end data integrity
00:28:15 ZFS Administration
00:37:09 compression, variable block size
00:38:22 ARC (adaptive replacement cache)
00:39:33 problems with traditional raid (4/5/6)
00:41:34 Raid-5 write hole
00:42:40 Raid-Z
00:45:35 snapshots and birthtime
00:48:34 zfs send/receive
00:50:34 encryption
00:52:35 deduplication
00:54:01 log/write cache
00:55:46 device removal
00:57:58 OpenZFS Community
01:01:59 other cool features
01:02:15 questions