BitRot detection in GlusterFS Venky Shankar Gaurav Garg We are, - - PowerPoint PPT Presentation

bitrot detection in glusterfs
SMART_READER_LITE
LIVE PREVIEW

BitRot detection in GlusterFS Venky Shankar Gaurav Garg We are, - - PowerPoint PPT Presentation

BitRot detection in GlusterFS Venky Shankar Gaurav Garg We are, Gluster developers at Red Hat ... participate in meetups, open source events ... hang out on #freenode: gluster, gluster-dev nick: overclk, ggarg ... interact with community:


slide-1
SLIDE 1

BitRot detection in GlusterFS

Venky Shankar Gaurav Garg

slide-2
SLIDE 2

We are, Gluster developers at Red Hat

... participate in meetups, open source events ... hang out on #freenode: gluster, gluster-dev nick: overclk, ggarg ... interact with community: gluster-devel@gluster.org gluster-users@gluster.org

slide-3
SLIDE 3

OK, enough. Let’s get started...

slide-4
SLIDE 4

GlusterFS Quick Tour

slide-5
SLIDE 5

Where’s my data?

  • Distributed
  • Local filesystem (brick)

○ XFS ○ EXT3, EXT4 ○ BTRFS

  • Prerequisite

○ POSIX compatible ○ Xattr support

slide-6
SLIDE 6

Understanding data corruption

slide-7
SLIDE 7

Corruption?

How ?

  • Direct “brick” manipulation

○ Script bug ○ Admin ○ Malicious

slide-8
SLIDE 8

Corruption?

How ? (cont..)

  • Silent corruption

○ Disk itself ■ Firmware bug ■ Mechanical wear ■ Ageing

slide-9
SLIDE 9

Illustration

slide-10
SLIDE 10
slide-11
SLIDE 11

Solution: Integrity checks

slide-12
SLIDE 12

Integrity Check

Consistency

  • Track data modifications

○ Checksum (signature) ○ Persistent

  • Verify during access

○ Recompute and check

  • Repair if corrupted
slide-13
SLIDE 13

Enough of theory, show me how it’s done.

slide-14
SLIDE 14

Implementation

Constraints on choices

  • Big fat-file story
  • Deployments

○ Distribute + Replicate ○ Stripe, now [3.7+] sharding ○ Erasure coded

slide-15
SLIDE 15

Implementation

Constraints on choices (cotd..)

  • In-band data signing

○ Costly ○ RMW cycle ○ Degraded I/O performance

  • Verification

○ “Ditto”

slide-16
SLIDE 16

Implementation

Details

  • Out-of-band data signing

○ Daemon ○ Asynchronous ■ Policy ■ Strong hash (reason ?)

  • Verification

○ Daemon (scrubber) ○ On-demand ○ Pre-scrubbed

slide-17
SLIDE 17

Implementation

Details (cotd..)

  • Object versioning

○ Versioned upon modification ○ Versioning xattr (64 bit) ○ Reflect “object state”

  • Signature

○ xattr ○ Attached to a “version”

slide-18
SLIDE 18

Implementation

Details (cotd..)

  • Integrity checking

○ Periodic ■ daily, weekly, etc.. ○ Filesystem scan ■ Signature mismates ■ Matching version ○ QoS ■ Controlled crunching

  • Corrupted objects

○ Denies access (EIO) ○ Repairable ■ Replica, Codes

slide-19
SLIDE 19

Use cases

slide-20
SLIDE 20

Use Cases

  • Small files
  • Long lived data

○ Archival storage

○ WORM workload

slide-21
SLIDE 21

Future

  • Replica consistency
  • Metadata checksumming
  • Offloading

○ BTRFS

  • Sharding adaption
  • GlusterFS 4.0 [Interesting!]

○ In-band (weaker hash) ○ Checksum everything ○ Default ○ Lost (phantom) writes

slide-22
SLIDE 22

3.7

  • Bitrot detection
  • No recovery
  • In comes sharding

3.7.2

  • Recovery support

3.7.4

  • Bug fixes
  • Scrub status

3.8

  • Sharding ready
  • Bitrot adaption

4.0

  • Hell of a change
  • Sharding by default
  • Checksum everything
slide-23
SLIDE 23

Q & A