14 0-zfs
14 0-zfs
Module 14.0
This Module
• We have some slides I’ve built to give an overview
• We also have more details in:
• an early overview paper
• a somewhat more recent, commercial Powerpoint presentation
• Both are linked from the course calendar
Physical volumes
Logical
volumes Logical volume group
LVMs
• RAIDs typically require many disks of the same capacity (and maybe
type)
• JBOD doesn’t care what what size they are
LVMs
• Okay, that’s appealing for dealing with physical device boundaries
• Suppose you have formatted the logical volume for some file system
(so superblock, free inode map, and inode arrays have been
initialized and then used)
• Now you want to add storage to the system and then make the
logical volume bigger
• Can that work? Will the file system data structures on the logical volume be
able to use the additional disk?
• Now you want to move space between one logical volume and
another.
• Can that work? Can you shrink a volume that holds files?
• What about:
• disk has an undetected read error (returns incorrect data)?
• disk has an undetected write error?
• disk writes wrong block (controller or disk error)?
• disk reads wrong block?
• “write holes” on traditional RAIDs
• RAID needs to write a stripe plus parity block, but doesn’t perform those updates
atomically...
ZFS Software Structure
ZFS Disk Management
• Note: there is current interest in protecting against errors that occur in the CPU – both hardware errors
(e.g., memory bit errors) and software errors (plain old bugs).
ZFS Checksums
• checksums are verified whenever the block is read and recalculated whenever they’re
written
• A “Delete queue”
• Written at the ZPL level
• Records the intention to delete file/directories
ZFS Crash Resilience
The snapshot is basically a diff, so its size is related to the number of bytes changed,
not the size of the entire file system.
vdev Label and Uber-blocks
Layout of entire vdev
File System Max File Size Max Volume Size Max # Files
1EB = 1,000,000 TB
ZFS Summary
More Information