State of the Union When you dont need Union Mounts Jan Blunck - - PowerPoint PPT Presentation

state of the union
SMART_READER_LITE
LIVE PREVIEW

State of the Union When you dont need Union Mounts Jan Blunck - - PowerPoint PPT Presentation

State of the Union When you dont need Union Mounts Jan Blunck Novell jblunck@suse.de 30. October 2009 What Union? Not the European Union ... this is Dresden not Brussels This is about Filesystems In particular about Filesystem


slide-1
SLIDE 1

State of the Union

When you don’t need Union Mounts Jan Blunck

Novell jblunck@suse.de

  • 30. October 2009
slide-2
SLIDE 2
slide-3
SLIDE 3

What Union?

◮ Not the European Union ... this is Dresden not Brussels ◮ This is about Filesystems ◮ In particular about Filesystem Namespace Unification

slide-4
SLIDE 4

What Union?

◮ Not the European Union ... this is Dresden not Brussels ◮ This is about Filesystems ◮ In particular about Filesystem Namespace Unification

slide-5
SLIDE 5

What Union?

◮ Not the European Union ... this is Dresden not Brussels ◮ This is about Filesystems ◮ In particular about Filesystem Namespace Unification

slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8

Outline

Introduction Where is the Problem? Unioning Filesystems UnionFS Another UnionFS UnionFS-FUSE mini fo Union Mount You probably don’t need Union Mounts Device-Mapper Snapshot Delta Filesystem CLIC Filesystem SquashFS Fake Write Support Shared root filessytem - NFS Root Shared root filessytem - XIP Whats left to do than? Thanks

slide-9
SLIDE 9

Disclaimer

I’m the author of the VFS based Union Mount patches. That somehow makes me biased. I’ll try my very best though ...

slide-10
SLIDE 10

Where is the Problem?

POSIX Requirements

◮ seek to cookie

POSIX is missing

◮ whiteout filetype DT WHITEOUT ◮ topology of mount tree ◮ open (directories) by inode number

slide-11
SLIDE 11

Where is the Problem?

POSIX Requirements

◮ seek to cookie

POSIX is missing

◮ whiteout filetype DT WHITEOUT ◮ topology of mount tree ◮ open (directories) by inode number

slide-12
SLIDE 12

Where is the Problem?

◮ NFS Sucks

ftp://ftp.lst.de/pub/people/okir/papers/2006-OLS/ nfs-sucks-slides.pdf

slide-13
SLIDE 13

Where is the Problem?

◮ NFS Sucks

ftp://ftp.lst.de/pub/people/okir/papers/2006-OLS/ nfs-sucks-slides.pdf

slide-14
SLIDE 14

In the Linux kernel there are basically two layers that implement filesystem features:

◮ in the Virtual Filesystem (VFS) ◮ in a low-level Filesystem

Both layers come with their own responsibilities!

slide-15
SLIDE 15

Union FS

◮ UnionFS is the best-known

and longest-living implementation so far

◮ It has its origin in the FiST

stackable filesystem project at SUNY Stony Brook

◮ The project is led by Erez

Zadok, professor at Stony Brook

1 1 1 1 1

slide-16
SLIDE 16

Union FS

Major Features

◮ Allows merging of up to 128 read-only or read-writable

branches

◮ Allows multiple writable branches ◮ Supports copy-up to higher-priority branches ◮ Remove-all unlink() semantics plus whiteout ◮ Append and prepend semantics

Current Status

◮ Latest version is Unionfs 2.5.3, released in September 2009 ◮ Support for Linux 2.6.9, and 2.6.18 to 2.6.32 ◮ Although it was in -mm, it was NAKed by VFS maintainers

slide-17
SLIDE 17

Union FS

Future Directions

◮ unionfs-lite

◮ Supports only two branches (one read-only, one read-writable) ◮ Uses native low-level filesystem whiteout support

◮ Native low-level filesystem whiteout

◮ Native additional “filetype” DT WHT ◮ Support for tmpfs, ext2/3/4 ... ◮ Add ioctl() interface to have userspace control over whiteouts

◮ Keep up-to-date with latest Linux kernel releases ◮ Upstream ?

slide-18
SLIDE 18

Another UnionFS

◮ Started as a UnionFS fork; rewritten from scratch in 2006 ◮ Lead developer is Junjiro Okajima

slide-19
SLIDE 19

Another UnionFS

Major Features

◮ Supports thousands of branches ◮ NFS exportable through external inode number table ◮ Pseudo Link ◮ Direct branch access ◮ Different policies for creat and copy-up

slide-20
SLIDE 20

Another UnionFS

Current Status

Date: Fri, 10 Apr 2009 13:41:55 -0400 From: Christoph Hellwig <> Subject: Re: [RFC Aufs2 #5 28/29] export lookup functions On Sat, Apr 11, 2009 at 02:26:33AM +0900, hooanon05@yahoo.co.jp wrote: > I have been asked to include aufs into mainline from several people > several times. As long as you have strong NACK for aufs and reject all > union-type filesystems, I have to give up unwillingly and will answer > them "Aufs was rejected. Let’s give it up." Yes, that’s the case.

slide-21
SLIDE 21

UnionFS-FUSE

◮ Developed by Radek Podgorny and Bernd Schubert ◮ FUSE based approach

Major Features

◮ feature complete ◮ Live CD ◮ USB media ◮ Copy On Write

Current Status

◮ Last release March 2009

slide-22
SLIDE 22

mini fo - Mini Fan-Out Overlay Filesystem

◮ Developed by Markus Klotzbuecher

Major Features

◮ Only two branches ◮ Optimized for embedded usage

Current Status

◮ Used by OpenWRT ◮ Last release in October 2005

slide-23
SLIDE 23

Union Mount

◮ Started in 2004 by Jan Blunck ◮ Help from Bharata B Rao, Miklos Szeredi, David Woodhouse,

Valerie Aurora (formerly Henson) Major Features

◮ VFS based ◮ Limited feature set

http://valerieaurora.org/union/

slide-24
SLIDE 24

Union Mount

Current Status

◮ Userspace readdir() support failed ◮ Focus on upstream acceptance

◮ Get directory reading right ◮ Play well with existing VFS namespace concepts ◮ Document how the locking works

◮ Whiteout Support (used by UnionFS, too) ◮ Writable Overlays

◮ Only two branches ◮ Whiteout/Fallthrough support for EXT2, JFFS2 and tmpfs

slide-25
SLIDE 25

You probably don’t need Union Mounts

◮ What is available for LiveCDs? ◮ ... USB media? ◮ ... shared root filesystem?

slide-26
SLIDE 26

You probably don’t need Union Mounts

◮ What is available for LiveCDs? ◮ ... USB media? ◮ ... shared root filesystem?

slide-27
SLIDE 27

Device-Mapper Snapshot

◮ Block based ◮ Multiple Layers/Snapshots ◮ Efficient ◮ Upstream

slide-28
SLIDE 28

Delta Filesystem

◮ FUSE based ◮ Block based/File based ◮ Uses two directories

http://lwn.net/Articles/321391/

slide-29
SLIDE 29

CLIC Filesystem (former DoenerFS)

◮ FUSE based ◮ Similar to Delta Filesystem ◮ Compression ◮ Boottime optimized

http://lizards.opensuse.org/2009/04/28/ whats-behind-lzma-compressed-livecds/

slide-30
SLIDE 30

SquashFS Fake Write Support

◮ Make SquashFS write to tmpfs ◮ Not faster that CLIC Filesystem ◮ NAK from Phillip, because of VFS union mount support

http://lizards.opensuse.org/2009/05/15/ livecd-performance-clicfs-vs-squashfs/

slide-31
SLIDE 31

Shared root filessytem - NFS Root

◮ Works

slide-32
SLIDE 32

Shared root filessytem - XIP

◮ Works as well ◮ Uses bind mounts ◮ Problem: You need a zSeries Mainframe running z/VM

http://linuxvm.org/presentations/

slide-33
SLIDE 33

Shared root filessytem - XIP

◮ Works as well ◮ Uses bind mounts ◮ Problem: You need a zSeries Mainframe running z/VM

http://linuxvm.org/presentations/

slide-34
SLIDE 34

What would happen if we would have Union Mounts?

◮ Every guest can modify everything ... ◮ How do you merge back changes? ◮ You will need common ancestor ...

slide-35
SLIDE 35

Thanks