Transcript

ZFS The Last Word In File Systems

Jeff Bonwick Bill Moore

(modifed by yupu for CS537)

Trouble with Existing Filesystems

ZFS Objective

End the Suffering

ZFS Overview

FS/Volume Model vs. Pooled Storage

Volume

FS

Volume

FS

Volume

FS

FS/Volume Model vs. Pooled Storage

Storage PoolVolume

FS

Volume

FS

Volume

FS ZFS ZFS ZFS

Copy-On-Write

Transactional Object System

Trends in Storage Integrity

End-to-End Data Integrity in ZFS

DataChecksum

DataChecksum

End-to-End Data Integrity in ZFSDisk Block Checksums

Checksum stored with data blockAny self-consistent block will passCan't detect stray writesInherent FS/volume interface limitation

DataChecksum

DataChecksum

Address

Disk checksum only validates mediaBit rotPhantom writesMisdirected reads and writesDMA parity errorsDriver bugsAccidental overwrite

• • •

Owner
Typewritten Text
Owner
Typewritten Text
Owner
Typewritten Text

End-to-End Data Integrity in ZFSDisk Block Checksums

Checksum stored with data blockAny self-consistent block will passCan't detect stray writesInherent FS/volume interface limitation

Data Data

AddressChecksum Checksum

Address

DataChecksum

DataChecksum

ZFS Data AuthenticationChecksum stored in parent block pointer

Fault isolation between data and checksum

Checksum hierarchy formsself-validating Merkle tree

ZFS validates the entire I/O pathBit rotPhantom writesMisdirected reads and writesDMA parity errorsDriver bugsAccidental overwrite

AddressChecksum Checksum

Address

Disk checksum only validates mediaBit rotPhantom writesMisdirected reads and writesDMA parity errorsDriver bugsAccidental overwrite

• • •

End-to-End Data Integrity in ZFSDisk Block Checksums

Checksum stored with data blockAny self-consistent block will passCan't detect stray writesInherent FS/volume interface limitation

Data Data

AddressChecksum Checksum

Address

DataChecksum

DataChecksum

ZFS Data AuthenticationChecksum stored in parent block pointer

Fault isolation between data and checksum

Checksum hierarchy formsself-validating Merkle tree

ZFS validates the entire I/O pathBit rotPhantom writesMisdirected reads and writesDMA parity errorsDriver bugsAccidental overwrite

AddressChecksum Checksum

Address

Disk checksum only validates mediaBit rotPhantom writesMisdirected reads and writesDMA parity errorsDriver bugsAccidental overwrite

• • •

Ditto Blocks

Creating Pools and Filesystems

# zpool create tank mirror c2d0 c3d0

# zfs create tank/home# zfs set mountpoint=/export/home tank/home

# zfs create tank/home/ahrens# zfs create tank/home/bonwick# zfs create tank/home/billm

# zpool add tank mirror c4d0 c5d0

top related