btrfs current status and future prospects · btrfs current status and future prospects created...

33
Copyright 2014 FUJITSU LIMITED Btrfs Current Status and Future Prospects Oct 13 2014 Satoru Takeuchi Linux Development Div. Fujitsu LTD.

Upload: others

Post on 15-Aug-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

BtrfsCurrent Status and Future Prospects

Oct 13 2014

Satoru Takeuchi

Linux Development Div.

Fujitsu LTD.

Page 2: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Background

Core Features

Developments statistics

Future Prospects

Agenda

1

Page 3: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Background

Core Features

Developments statistics

Future Prospects

Agenda

2

Page 4: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Fujitsu has developed Btrfs for Mission Critical (MC) systems since 2010

Requirements of MC systems

High robustness

• Don’t crash: data duplication

• Error detection: checksum

• Repair, recovery: snapshot, backup/restore, repairing tools

High availability: Should work 365days/24h

• Limited maintenance time: enlarge storage size and backup online

Btrfs is designed for such the requirements

Background

3

Page 5: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Background

Core Features

Developments statistics

Future Prospects

Agenda

4

Page 6: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Multi-volumes

Copy-on-Write Style Update

Data/Metadata Checksum

Subvolume

Snapshot

Transparent Compression

Core Features

5

Page 7: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Multi-volumes

Btrfs file system can consists of multiple volumes

Low layered and low overhead than LVM

Many features: RAID, online {add/remove/replace} devices

Copyright 2014 FUJITSU LIMITED

VFS

File system

(XFS, ext4 and so on)

LVM

Block device

VFS

Block device

Btrfs

XFS or ext4 + LVM Btrfs

# mkfs.btrfs /dev/sd{a,b,c}1

6

Page 8: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copy-on-Write(CoW) style update

Btrfs uses CoW style data/metadata update Safer than overwrite style update by design

Overwrite style: Update the data in place

CoW style: Copy, update, and replace pointer

Copyright 2014 FUJITSU LIMITED

file

data

file

data

file

data

file

data

file

data data

file

data data

file

data

7

Will be deleted later

System crash => data keeps consistency

System crash => data becomes inconsistent

Page 9: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

CoW versus Overwrite

1,000 surprising power failure test Linux File System Analysis for IVI system, Mitsuharu Ito, Fujitsu

http://events.linuxfoundation.jp/sites/events/files/slides/linux_file_system_analysis_for_IVI_systems.pdf

Result

Ext4: Metadata was corrupted

Btrfs: Worked fine without any problem

In my internal similar testing, XFS corrupted too.

Copyright 2014 FUJITSU LIMITED8

Page 10: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Btrfs has checksum for each data/metadata extent to detect and repair the broken data

When Btrfs reads a broken extent, it detects checksum inconsistency

With mirroring: RAID1/RAID10

• Read a correct copy

• Repair a broken extent with a correct copy

Without mirroring

• Dispose a broken extent and return EIO

With “btrfs scrub”, Btrfs traverses all extents and fix incorrect ones

Online background job

Data/Metadata Checksum

9

Page 11: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Subvolume

A subvolume is a file system inside file system

Can be treated as a file system root

• Mountable: most mount options are shared

• Own inode namespace and quota limit

Efficient: Available space is shared

Copyright 2014 FUJITSU LIMITED

/

sub

10

# btrfs subvolume create sub

Page 12: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Snapshot

Copy of a subvolume

Far faster than LVM

• Not a full copy, but only update metadata in CoW style

Readonly snapshot: with –r option

Incremental snapshot: snapshot of snapshot

Copyright 2014 FUJITSU LIMITED

snapsub

2

22

22 2

# btrfs subvolume snapshot [-r] ./sub ./snap

A B C

11

sub

1

11

11 1

A B C

Reference count

snapsub

1

12

12 2

A B C C’

1

1

1

Capture a snapshot Update data C in a snapshot

Page 13: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Performance of Snapshot: Btrfs versus LVM

1. Copy the following data to a volume

Consists of 100 directories and 100 files for each directory

• File size: 1MB

2. Capture a snapshot of the volume

Copyright 2014 FUJITSU LIMITED12

Hardware Environment Software Environment

• PRIMERGY RX300 S6

• CPU: Intel Xeon X5690

3.47GHz x12 core

• Memory: 16GiB

• Storages: 100GB HDD x 2

• Red Hat Enterprise Linux 7.0

• File systems

• Btrfs

• Data/metadata: RAID1

• Other options: default

• XFS: default options

• Volume manager for XFS

• dm-thinp: chunksize is 256KiB

• LVM: RAID1

Page 14: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Result

Copy: Btrfs > LVM >>> dm-thinp

Snapshot: Btrfs > dm-thinp >>> LVM

Copyright 2014 FUJITSU LIMITED13

Volume type Copy Snapshot

Without page cache With page cache

Btrfs 106s 0.126s 11.7s

XFS on dm-thinp 209s 0.260s 15.5s

XFS on LVM 133s 1.03s 45.2s

Page 15: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Transparent compression

Automatically compress/expand file data on I/O

Low space consumption and high I/O performance

• Need some extra CPU time

Usage: mount -o compress={lzo,zlib} <device> <mnt point>

• Can also be enabled/disabled for each file

Copyright 2014 FUJITSU LIMITED14

compress/expandsystem

storage

Page cache

without compression with compression

Page 16: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Background

Core Features

Developments statistics

Future Prospects

Agenda

15

Page 17: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Patch statistics

Performance

Summary

Developments statistics

16

Page 18: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Patch Statistics

0

20

40

60

80

100

120

140

160

180

200 bugfix functional enhancement

performance enhancement cleanup

17 Copyright 2014 FUJITSU LIMITED

Page 19: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Patch Statistics: Tips of v3.17

0

20

40

60

80

100

120

140

160

180

200 bugfix functional enhancement

performance enhancement cleanup

18 Copyright 2014 FUJITSU LIMITED

Rejected by Linus

Page 20: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Patch statistics: Main changes

0

20

40

60

80

100

120

140

160

180

200 bugfix functional enhancement

performance enhancement cleanup

19 Copyright 2014 FUJITSU LIMITED

Inode properties

offline dedup

Improve sync write ~60%

RAID5/6

replace subcommand

quota

send/receive

btrfsck

repair

auto defrag

scrub

Inode propertiesImprove error handling

Inode properties

Page 21: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Fujitsu’s contribution

20 Copyright 2014 FUJITSU LIMITED

• btrfsck, error handling

• fast {random/async} write

• LZO compression

• read only snapshot

• random Bug fixes

• enrich xfstests

Page 22: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Fujitsu’s contribution: btrfs-progs

21

• fsck

• error handling

• random bug fixes

• enrich xfstests

• documentation

Page 23: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Performance measurement

22 Copyright 2014 FUJITSU LIMITED

Hardware Environment Software Environment

• PRIMERGY TX300 S6• CPU: Xeon x5670 x 2

• 12 core

• HT is disabled

• Memory: 4GB

• HDD: 300GB x 1

• MegaRAID SAS,

HITACHI

HUS156030VLS600

• Benchmark software: filebench

• Kernel: 3.14.2, 3.15.3, 3.16.0, and 3.17-rc2• I/O scheduler: deadline

• File systems: Btrfs(single volume), XFS, and

ext4

• default mkfs options and mount options

Page 24: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

The result: Compare with other file systems

23

0

2000

4000

6000

8000

10000

12000

14000

16000

btrfs

ext4

xfs

(ops/s) Kernel version: v3.17-rc2

Page 25: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

The result: Compare with old Btrfses

24 Copyright 2014 FUJITSU LIMITED

Page 26: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

VFS has also improved performance

25 Copyright 2014 FUJITSU LIMITED

Accomplished by VFS layer performance enhancement

Page 27: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Summary

Ready to use without RAID5/6

Performance: OK

Stability: OK

• # of new features has decreased

• Test coverage has increased

Features: almost OK

• RAID5/6: Lack of scrub and replace subcommands

RAID1 and RAID10 are the best choice Especially safe and stable

26 Copyright 2014 FUJITSU LIMITED

Page 28: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED

Background

Core Features

Developments statistics

Future Prospects

Agenda

27

Page 29: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Future Prospects: Fujitsu’s plan

RAID 5/6 enhancement

Add scrub and replace subcommands

• We’re testing patches now and will post it to linux-btrfs ML soon

Add five tests for these features to xfstests

Further enhancement of robustness and performance

Repairing tools and so on

Education and documents for this purpose

Operation know-how

• Btrfs operations are different from other file systems

• e.g. Btrfsの基礎 part1 機能編(It’s in Japanese. Now translating to English…)

http://www.slideshare.net/fj_staoru_takeuchi/btrfs-part1

File system structure

Code logicCopyright 2014 FUJITSU LIMITED28

Page 30: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Future Prospects: Btrfs users are increasing

OpenSuSE13.2: Will be used as its default

Ubuntu: Support

RHEL7: Available as tech-preview

Will be used for In Vehicle Infortaiment(IVI) system Linux File System Analysis for IVI system, Mitsuharu Ito, Fujitsu

http://events.linuxfoundation.jp/sites/events/files/slides/linux_file_system_analysis_for_IVI_systems.pdf

Copyright 2014 FUJITSU LIMITED29

Page 31: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Conclusion

Please try Btrfs

It’s ready to use

RAID1/10 are the best choice

RAID5/6 need some more work

Recommend the newest stable kernel

30 Copyright 2014 FUJITSU LIMITED

Page 32: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

References

Linux File System Analysis for IVI system, MitsuharuIto, Fujitsu

http://events.linuxfoundation.jp/sites/events/files/slides/linux_file_system_analysis_for_IVI_systems.pdf

Btrfsの基礎 part1 機能編http://www.slideshare.net/fj_staoru_takeuchi/btrfs-part1

Linux-btrfs [email protected]

Btrfs wikihttps://btrfs.wiki.kernel.org/index.php/Main_Page

31 Copyright 2014 FUJITSU LIMITED

Page 33: Btrfs Current Status and Future Prospects · Btrfs Current Status and Future Prospects Created Date: 10/13/2014 12:30:51 PM

Copyright 2014 FUJITSU LIMITED32