openzfs at linuxcon

34
!<jj PgI[h Z<PgI[h³GIYdPQrE]Z gQ<[ IPYI[G]gN DIPYI[G]gN³YY[YO]p //1/35(6 7KLV ZRUN ZDV SHUIRUPHG XQGHU WKH DXVSLFHV RI WKH 86 'HSDUWPHQW RI (QHUJ\ E\ /DZUHQFH /LYHUPRUH 1DWLRQDO /DERUDWRU\ XQGHU &RQWUDFW '( $&1$ /DZUHQFH /LYHUPRUH 1DWLRQDO 6HFXULW\ //&

Upload: matthew-ahrens

Post on 28-Aug-2014

8.001 views

Category:

Technology


1 download

DESCRIPTION

Talk by Matt Ahrens and Brian Behlendorf announcing OpenZFS at LinuxCon 2013

TRANSCRIPT

Page 1: OpenZFS at LinuxCon

!<jj��PgI[h

Z<PgI[h³GIYdPQr�E]Z

�gQ<[��IPYI[G]gN

DIPYI[G]gN³YY[Y�O]p

//1/�35(6�������7KLV�ZRUN�ZDV�SHUIRUPHG�XQGHU�WKH�DXVSLFHV�RI�WKH�8�6��'HSDUWPHQW�RI�(QHUJ\�E\�/DZUHQFH�/LYHUPRUH�1DWLRQDO�/DERUDWRU\�XQGHU�&RQWUDFW�'(�$&�����1$�������/DZUHQFH�/LYHUPRUH�1DWLRQDO�6HFXULW\��//&

Page 2: OpenZFS at LinuxCon

LLNL-PRES-643675

This work was performed under the auspices of the U.S. Department

of Energy by Lawrence Livermore National Laboratory under Contract

DE-AC52-07NA27344. Lawrence Livermore National Security, LLC

LinuxCon 2013

Brian Behlendorf, Open ZFS on Linux

September 17, 2013

Page 3: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-xxxxxx

2

●Advanced Simulation

–Massive Scale

–Data Intensive

●Top 500

–#3 Sequoia

●20.1 Peak PFLOP/s

●1,572,864 cores

●55 PB of storage at 850 GB/s

–#8 Vulcan

●5.0 Peak PFLOPS/s

●393,216 cores

●6.7 PB of storage at 106 GB/s

High Performance Computing

World class computing resources

Page 4: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

3

●First Linux cluster deployed in 2001

●Near-commodity hardware

●Open Source

●Clustered High Availability Operating

System (CHAOS)

–Modified RHEL Kernel

–New packages – monitoring,

power/console, compilers, etc

–Lustre Parallel Filesystem

–ZFS Filesystem

Linux Clusters

LLNL Loves Linux

Page 5: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

4

●Massively parallel distributed filesystem

●Lustre servers use a modified ext4

–Stable and fast, but...

–No scalability

–No data integrity

–No online manageability

●Something better was needed

–Use XFS, BTRFS, etc?

–Write a filesystem from scratch?

–Port ZFS to Linux?

Lustre Filesystem

Existing Linux filesystems do not meet our requirements

Page 6: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

5

●2008 – Prototype to determine viability

●2009 – Initial ZVOL and Lustre support

●2010 – Development moved to Github

●2011 – POSIX layer added

●2011 – Community of early adopters

●2012 – Production usage of ZFS

●2013 – Stable GA release

ZFS on Linux History

Community involvement was exceptionally helpful

Page 7: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

6

ARC

ZIO

VDEV Configuration

DMU

ZAP

ZIL

DSL

Traversal

OST

OFD

ZFS OSD

MDT

MDD

ZVOL /dev/zfsZPL

libzfs

ZFS CLI

Interface

Layer

Transactional

Object

Layer

Pooled

Storage

Layer

User

Kernel

Architecture

SPL

Page 8: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-xxxxxx

7

●Core ZFS code is self contained

–May be built in user space or kernel space

–Includes functionality for snapshots, clones, I/O pipeline, etc

●Solaris Porting Layer

–Adds stable Solaris/Illumos interfaces

●Taskqs, lists, condition variables, rwlocks, memory allocators, etc...

–Layered on top of Linux equivalents if available

–Solaris specific interfaces were implemented from scratch

●Vdev disk

–Interfaces with the Linux kernel block layer

–Had to be rewritten to use native Linux interfaces

Linux Specific Changes

The core ZFS code required little change

Page 9: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

8

●Interface Layer

–/dev/zfs

●Device node interface for user space zfs and zpool utilities

●Minor changes needed for a Linux character device

–ZVOL: ZFS Volumes

●Reimplemented as Linux block driver which is backed by the DMU

–ZPL: ZFS Posix Layer

●Most complicated part, there are significant VFS differences

●In general new functions were added for the Linux VFS handlers

●If possible the Linux handlers use the equivalent Illumos handler

–Lustre

●Support for Lustre was added by Sun/Oracle/Whamcloud/Intel

●Lustre directly layers on the DMU and does not use the Posix Layer

Linux Specific Changes

The majority of changes to ZFS were done in the interface layer

Page 10: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

9

●8k stacks

–Illumos allows larger stacks

–Needed to get stack usage down to support stock distribution kernels

–Code reworked as needed to save stack

●Gcc

–ZFS was written for C99, Linux kernel is C89

–Fix numerous compiler warnings

●GPL-only symbols

–ZFS is under an open source license but may not use all exported symbols

–This includes basic functionality such as work queues

–ZVOLs can't add entries in /sys/block/

–.zfs/snapshot's can't use the automounter

●User space

–Solaris threads used instead of pthreads

–Block device naming differences

–Udev integration

Porting Issues

Page 11: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

10

●Memory management

–ZFS relies heavily on virtual memory for its data buffers

●By design the Linux kernel discourages the use of virtual memory

●To resolve this the SPL provides a virtual memory based slab

–This allows use of the existing ZFS IO pipeline without modification

–Fragmentation results in underutilized memory

–Stability concerns under low memory conditions

●We plan to modify ZFS to use scatter-gather lists of pages under Linux

●Allows larger block sizes

●Allows support for 32-bit systems

–The ARC is not integrated with the Linux page cache

●Memory used by the ARC is not reported as cached pages

●Complicates reclaiming memory from the ARC when needed

●Requires an extra copy of the data for mmap'ed I/O

Porting Issues

Page 12: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

11

●Features

–O_DIRECT

–Asynchronous IO

–POSIX ACLs

–Reflink

–Filefrag

–Fallocate

–TRIM

–FMA Infrastructure (event daemon)

–Multiple Modified Protection (MMP)

–Large blocks

Future Work

Possibilities for future work

Page 13: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

12

●All source code and the issue tracker are kept at Github

–http://github.com/zfsonlinux/zfs

–70 contributors, 171 forks, 816 watchers

●Not in mainline kernel

–Similar to resier4, unionfs, lustre, ceph, …

–Autotools used for compatibility

–Advantages

●One code base used for 2.6.26 - 3.11 kernels

●Users can update ZFS independently from the kernel

●Simplifies keeping in sync with Illumos and FreeBSD

●User space utilities and kernel modules can share code

–Disadvantages

●Support for the latest kernel lags slightly

●Higher maintenance and testing burden for developers

Source Code

Page 14: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

13

●Stable and used in production

●Performance is comparable to existing Linux filesystems

●All major ZFS features are available

–Simplified administration - Stripes, Mirrors, and RAIDZ[1,2,3]

–Online management - ZFS Intent Log (ZIL)

–Snapshots / Clones - L2ARC Tiered Caching

–Special .zfs directory - Transparent compression

–Send/receive of snapshots - Transparent deduplication

–Virtual block devices (ZVOL)

●Currently used by Supercomputers, Desktops, NAS appliances

●Enthusiastic user community

[email protected]

Where is ZFS on Linux Today

ZFS is available on Linux today!

Page 15: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

;�/��Qhj]gs

Ɣ ÃÁÁÂ��GIpIY]dZI[j�hj<gjh�qQjP�Ã�I[OQ[IIgh

Ɣ ÃÁÁÆ��;�/�h]kgEI�E]GI�gIYI<hIG

Ɣ ÃÁÁÇ��;�/�][��1/��N]g� Q[kr�hj<gjIG

Ɣ ÃÁÁÉ��;�/�gIYI<hIG�Q[��gII�/��È�Á

Ɣ ÃÁÁÉ��;�/�][�¥[<jQpI¦� Q[kr�d]gj�hj<gjIG

Ɣ ÃÁÁÉ��/k[�h�ÈÁÁÁ�hIgQIh�;�/�/j]g<OI��ddYQ<[EI�hPQdh

Ɣ ÃÁÂÁ��$g<EYI�hj]dh�E][jgQDkjQ[O�j]�h]kgEI�E]GI�N]g�;�/

Ɣ ÃÁÂÁ��QYYkZ]h�Qh�N]k[GIG�<h�jPI�jgkYs�]dI[�hkEEIhh]g�j]�$dI[/]Y<gQh

Ɣ ÃÁÂÄ��;�/�][�¥[<jQpI¦� Q[kr���

Ɣ ÃÁÂÄ��$dI[�h]kgEI�;�/�D<[Gh�j]OIjPIg�j]�N]gZ�$dI[;�/

Page 16: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

7P<j�Qh�$dI[;�/�

$dI[;�/�Qh�<�E]ZZk[Qjs�dg]WIEj�N]k[GIG�Ds�]dI[�h]kgEI�;�/�GIpIY]dIgh�Ng]Z�ZkYjQdYI�]dIg<jQ[O�hshjIZh�

Ɣ QYYkZ]h���gII�/��� Q[kr��$/�8

0PI�O]<Yh�]N�jPI�$dI[;�/�dg]WIEj�<gI�

Ɣ j]�g<QhI�<q<gI[Ihh�]N�jPI�fk<YQjs��kjQYQjs��<[G�<p<QY<DQYQjs�]N�]dI[�h]kgEI�QZdYIZI[j<jQ][h�]N�;�/

Ɣ j]�I[E]kg<OI�]dI[�E]ZZk[QE<jQ][�<D]kj�][O]Q[O�INN]gjh�j]�QZdg]pI�]dI[�h]kgEI�;�/

Ɣ j]�I[hkgI�E][hQhjI[j�gIYQ<DQYQjs��Nk[EjQ][<YQjs��<[G�dIgN]gZ<[EI�]N�<YY�GQhjgQDkjQ][h�]N�;�/�

Page 17: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

$dI[;�/�<EjQpQjQIh

Ɣ +Y<jN]gZ�Q[GIdI[GI[j�Z<QYQ[O�YQhjż �IpIY]dIgh�GQhEkhh�<[G�gIpQIq�dY<jN]gZ�Q[GIdI[GI[j�

E]GI�<[G�<gEPQjIEjkgI�EP<[OIh

ż "]j�<�gIdY<EIZI[j�N]g�dY<jN]gZ�hdIEQNQE�Z<QYQ[O�YQhjhƔ /QZdYQNsQ[O�jPI�QYYkZ]h�GIpIY]dZI[j�dg]EIhhƔ gI<jQ[O�Eg]hh�dY<jN]gZ�jIhj�hkQjIhƔ .IGkEQ[O�E]GI�GQNNIgI[EIh�DIjqII[�dY<jN]gZhƔ $NNQEI��]kgh�<�X�<��hX�jPI��rdIgj

KWWS���RSHQ�]IV�RUJ

Page 18: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

3ODWIRUP�'LYHUVLW\VWDWV�RQ�SDVW����PRQWKV��6HSW��������$XJ������

���&RPPLWV���&RQWULEXWRUV

����&RPPLWV���&RQWULEXWRUV

����&RPPLWV���&RQWULEXWRUV

����&RPPLWV��&RQWULEXWRUV

Page 19: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

JHQWRR

Page 20: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

"Iq�Q[�$dI[;�/���I<jkgI��Y<Oh

Ɣ �]q�j]�pIghQ][�jPI�][�GQhX�N]gZ<j�Ɣ �[QjQ<Y�;�/�GIpIY]dZI[j�Z]GIY��<YY�EP<[OIh�O]�jPg]kOP�/k[

ż Q[I<g�pIghQ][�[kZDIgż �N�hkdd]gj�pIghQ][�8��Zkhj�hkdd]gj�<YY�pIghQ][h�ß8

Ɣ �I<jkgI�NY<Oh�I[<DYIh�Q[GIdI[GI[j�GIpIY]dZI[j�]N�][�GQhX�NI<jkgIh

Ɣ �[GIdI[GI[jYs�GIpIY]dIG�NI<jkgIh�E<[�DI�Y<jIg�Q[jIOg<jIG�Q[j]�<�E]ZZ][�h]kgEID<hI

Page 21: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

"Iq�Q[�$dI[;�/��/Z]]jPIg�7gQjI� <jI[EsƔ �N�<ddYQE<jQ][�q<[jh�j]�qgQjI�Z]gI�fkQEXYs�jP<[�jPI�hj]g<OI�

P<gGq<gI�E<[��;�/�Zkhj�GIY<s�jPI�qgQjIh

Ɣ ]YG��Æ�ÇÁÁ�Q]�h��]kjYQIgh��ÂÁ�hIE][Gh

Page 22: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

"Iq�Q[�$dI[;�/��/Z]]jPIg�7gQjI� <jI[EsƔ ]YG��Æ�ÇÁÁ�Q]�h��]kjYQIgh��ÂÁ�hIE][GhƔ [Iq��Æ�ÊÁÁ�Q]�h��]kjYQIgh��ÄÁ�ZQEg]hIE][Gh

Page 23: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

"Iq�Q[�$dI[;�/�� ;�E]ZdgIhhQ][

Ɣ �Zdg]pIG�dIgN]gZ<[EI�<[G�E]ZdgIhhQ][�g<jQ]�E]Zd<gIG�j]�dgIpQ]kh�GIN<kYj�¥YvWD¦

Page 24: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

0PI�NkjkgI�]N�$dI[;�/��E]YY<D]g<jQ][

Ɣ 2IILFH�+RXUV�D�N�D�$VN�WKH�([SHUWƔ 5HGXFH�FRGH�GLIIHUHQFHV�EHWZHHQ�SODWIRUPV

ż PRVW�GLIIV�ZLOO�WKHQ�DSSO\�FOHDQO\�WR�DOO�SODWIRUPVƔ &URVV�SODWIRUP�WHVW�VXLWHƔ 0RUH�FRPSOHWH�XVHUODQG�LPSOHPHQWDWLRQ

ż $OORZ�UXQQLQJ��VELQ�]IV���VELQ�]SRRO�DJDLQVW�OLE]SRROż &RXOG�HQDEOH�SODWIRUP�LQGHSHQGHQW�XSVWUHDP�UHSR

Ɣ 6HSDUDWH�=3/�LQWR�SODWIRUP�VSHFLILF�DQG�SODWIRUP�LQGHSHQGHQW�OD\HUV

Ɣ &UHDWH�YLUWXDO�PDFKLQH�LPDJHV�RI�HDFK�SODWIRUP�WR�HQDEOH�HDVLHU�FURVV�SODWIRUP�WHVWLQJ

Page 25: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

�kjkgI�]N�$dI[;�/��.IhkZ<DYI�hI[G�gIEIQpI

Ɣ hI[G���gIEIQpI�Qh�khIG�N]g�gIZ]jI�gIdYQE<jQ][Ɣ $dI[;�/�P<h�vNh�hI[G�dg]OgIhh�gId]gjQ[OƔ �N�hshjIZ�gID]]jh��Zkhj�gIhj<gj�Ng]Z�jPI�DIOQ[[Q[OƔ /]YkjQ][��gIEIQpIg�gIZIZDIgh��D]]XZ<gX���hI[GIg�E<[�

gIhj<gj�Ng]Z�D]]XZ<gX

Page 26: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

�kjkgI�]N�$dI[;�/�� <gOI�DY]EX�hkdd]gj

Ɣ �]]G�QGI<h�E]ZI�Ng]Z�<YY�h]gjh�]N�dY<EIhƔ +g]dgQIj<gs�¥$g<EYI¦�;�/�P<h�Â!��DY]EX�hkdd]gjƔ �Zdg]pIh�dIgN]gZ<[EI��IhdIEQ<YYs�N]g�.����;�q�ÅX�GIpQEIhƔ �GI<YYs��$dI[;�/�qQYY�dg]pQGI�E]Zd<jQDQYQjs�qQjP�dg]dgQIj<gs�

][�GQhX�N]gZ<j

Page 27: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

�I<jkgIh�k[QfkI�j]�$dI[;�/

Ɣ �I<jkgI��Y<OhƔ YQDvNh¢E]gIƔ ��1h<DQYQjs

ż hQvI�IhjQZ<jIh�N]g�vNh�hI[G�<[G�vNh�GIhjg]sż pGIp�Q[N]gZ<jQ][�Q[�vd]]Y�YQhjż vNh�hI[G�dg]OgIhh�gId]gjQ[Oż <gDQjg<gs�h[<dhP]j�<gOkZI[jh�j]�vNh�h[<dhP]j

Ɣ �<j<hIj�dg]dIgjQIhż gINE]ZdgIhhg<jQ]ż EY][Ihż qgQjjI[��qgQjjI[³h[<dż YkhIG��YE]ZdgIhhIG

Ɣ 0Ihj.k[[Ig�jIhj�hkQjI

Page 28: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

+IgN]gZ<[EI�QZdg]pIZI[jh�Q[�$dI[;�/

Ɣ <hs[E�NQYIhshjIZ�<[G�p]YkZI�GIhjgkEjQ][Ɣ hQ[OYI�E]ds��. �E<EPIƔ hd<EI�<YY]E<jQ][�¥hd<EIZ<d¦�dIgN]gZ<[EI�QZdg]pIZI[jhƔ hZ]]jPIg�qgQjI�Y<jI[Es�¥qgQjI�jPg]jjYI�gIqgQjI¦Ɣ dIg�jsdI�Q�]�fkIkIh�¥gI<G��;� ��<hs[E�qgQjI��hEgkD¦Ɣ YvÅ�E]ZdgIhhQ][Ɣ E]ZdgIhhIG�E<EPI�GIpQEIh�¥ Ã�. ¦

Page 29: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

0PI�NkjkgI�]N�$dI[;�/��NI<jkgIh

Ɣ SHUVLVWHQW�O�DUF��6DVR�.LVHONRY�Ɣ SHUIRUPDQFH�RQ�IUDJPHQWHG�SRROV��*HRUJH�:LOVRQ�Ɣ REVHUYDELOLW\����]IV�GWUDFH�SURYLGHUƔ UHVXPDEOH�]IV�VHQG�UHFY��&KULV�6LGHQ�Ɣ ILOHV\VWHP��VQDSVKRW�FRXQW�OLPLWV��-HUU\�-HOLQHN�Ɣ GHYLFH�UHPRYDO"Ɣ UHYLYHG�0DF26�SRUW��-RUJHQ�/XQGPDQ�Ɣ /DUJHU���0%���EORFN�VXSSRUWƔ PXOWL�PRGLILHU�SURWHFWLRQƔ ODUJH�GQRGHV��WR�ILW�PRUH�DWWULEXWHV�Z�R�VSLOO�EORFN�Ɣ FKDQQHO�SURJUDP�IRU�ULFKHU�DGPLQLVWUDWLRQ��0D[�*URVVPDQ�Ɣ 5DVSEHUU\�SL�VXSSRUW�IRU�=)6�RQ�/LQX[��5LFKDUG�<DR�

Page 30: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

0PI�NkjkgI�]N�$dI[;�/��GIpIY]dZI[j�Z]GIY

Ɣ +Y<jN]gZ�Q[GIdI[GI[j�E]GID<hI

ż <YY�dY<jN]gZh�dkYY�Ng]Z�jPQh�pIgD<jQZ��O]<Y��[]�GQNNh

ż dY<jN]gZ�Q[GIdI[GI[j�EP<[OIh�dkhPIG�PIgI�NQghj

Ɣ $[Ys�E]GI�jP<j�E<[�DI�jIhjIG�][�<[s�dY<jN]gZ�Q[�khIgY<[G

Ɣ /]ZI�E]GI�Qh�jIhjIG�Q[�khIgY<[G�j]G<s�Ds�vjIhj

ż Dkj�[]j�YQDvNh��hI[G�gIEp��dg]dIgjQIh��GIYIO<jIG�<GZQ[Qhjg<jQ][�¥vNh�<YY]q¦��IjE��IjE�

Ɣ "IIG�Q]EjY�Y<sIg�h]�jP<j��hDQ[�vNh�E<[�gk[�<O<Q[hj�khIgY<[G�QZdIZI[j<jQ][

Ɣ "IIG�j]�OIj�0Ihj.k[[Ig�jIhjh�¥d]gjIG�Ng]Z�/0�¦�gk[[Q[O�<O<Q[hj�khIgY<[G

Ɣ /]ZI�q<s�j]�gk[�jPI�dY<jN]gZ�Q[GIdI[GI[j�d<gjh�]N�jPI�;+ �

Page 31: OpenZFS at LinuxCon

�IYdPQr�+g]dgQIj<gs�<[G� ][NQGI[jQ<Y

�]q�j]�OIj�Q[p]YpIG

Ɣ ,I�\RX�DUH�PDNLQJ�D�SURGXFW�ZLWK�2SHQ=)6ż OHW�XV�NQRZ��SXW�ORJR�RQ�ZHEVLWH��7�VKLUWV

Ɣ ,I�\RX�DUH�DQ�2SHQ=)6�DGPLQ�XVHUż VSUHDG�WKH�ZRUGż FRQWULEXWH�WR�GRFXPHQWDWLRQ�ZLNL�RQ�RSHQ�]IV�RUJ

Ɣ ,I�\RX�DUH�ZULWLQJ�FRGHż MRLQ�GHYHORSHU#RSHQ�]IV�RUJ�PDLOLQJ�OLVWż JHW�GHVLJQ�KHOS�RU�IHHGEDFN�RQ�FRGH�FKDQJHVż WDNH�D�ORRN�DW�SURMHFW�LGHDV�

Page 32: OpenZFS at LinuxCon

!<jj��PgI[h

Z<PgI[h³GIYdPQr�E]Z

�gQ<[��IPYI[G]gN

DIPYI[G]gN³YY[Y�O]p

KWWS���RSHQ�]IV�RUJ

Page 33: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

14

●ZFS is Open Source under the CDDL

●ZFS is NOT a derived work of Linux

–“It would be rather preposterous to call the Andrew FileSystem a 'derived

work' of Linux, for example, so I think it's perfectly OK to have a AFS module,

for example.”

●Linus Torvalds

–“Our view is that just using structure definitions, typedefs, enumeration

constants, macros with simple bodies, etc., is NOT enough to make a

derivative work. It would take a substantial amount of code (coming from

inline functions or macros with substantial bodies) to do that.”

●Richard Stallman

Licensing

ZFS can be used in Linux

Page 34: OpenZFS at LinuxCon

Lawrence Livermore National Laboratory LLNL-PRES-643675

15