https://openzfs.org/w/api.php?action=feedcontributions&user=Ilovezfs&feedformat=atomOpenZFS - User contributions [en]2024-03-29T04:43:33ZUser contributionsMediaWiki 1.37.1https://openzfs.org/w/index.php?title=OpenZFS_Developer_Summit_2014&diff=1671OpenZFS Developer Summit 20142015-02-14T10:56:28Z<p>Ilovezfs: </p>
<hr />
<div>{|cellpadding="20"<br />
|-<br />
|valign="top" |[[file:Open-zfs-san-francisco-logo.png|250px]]<br />
|valign="top" |The second annual OpenZFS Developer Summit was held in San Francisco, November 10-11, 2014. All OpenZFS developers were invited to participate.<br />
<br><br><br />
The goal of the event was to foster cross-community discussions of OpenZFS work and to make progress on some of the projects we have proposed. This 2-day event consisted of 1 day of presentations (Nov 10) and a 1-day hackathon (Nov 11).<br />
<br><br><br />
Details about registration, presentations, and sponsorship opportunities were provided on this page.<br />
|}<br />
<!--<br />
== Live Webcast Stream ==<br />
The event was webcast live, starting at 9:30AM PST on Monday, November 10th. [http://ustre.am/1ikWY Click here to view on ustream.]<br />
<br />
<html><br />
<iframe width="720" height="437" src="http://www.ustream.tv/embed/19146776?v=3&amp;wmode=direct" scrolling="no" frameborder="0" style="border: 0px none transparent;"> </iframe><br />
</html><br />
<br />
== Twitter ==<br />
<br />
<html><br />
<a class="twitter-timeline" width="720" height="437" href="https://twitter.com/OpenZFS" data-widget-id="378639669799288832">Tweets by @OpenZFS</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script><br />
<br />
<span><br />
<br><br />
<a href="https://twitter.com/openzfs" class="twitter-follow-button" data-show-count="true">Follow @openzfs</a><br />
<br><br />
<a href="https://twitter.com/share" class="twitter-share-button" data-via="OpenZFS">Tweet</a><br />
</span><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br />
</html><br />
--><br />
== Event ==<br />
=== Photos ===<br />
Photos of the event can be viewed on the [https://plus.google.com/photos/107465241361512478015/albums/6081692632843588737 OpenZFS Google+ page].<br />
<br />
=== Presentations ===<br />
{| class="wikitable"<br />
!Title!!Speaker!!Slides!!Video<br />
|-<br />
|Keynote||Matt Ahrens from Delphix||[http://open-zfs.org/w/images/5/5b/OpenZFS_Keynote-Matt_Ahrens.pdf slides]||[http://www.youtube.com/watch?v=XnTzbisLYzg video]<br />
|-<br />
|Platform Overview: ZFS on OSv||Raphael Carvalho from Cloudius||[http://open-zfs.org/w/images/9/99/Platform_Overview_ZFS_on_OSv-Raphael_Carvalho.odp slides]||[http://www.youtube.com/watch?v=TJLOBLSRoHE video]<br />
|-<br />
|Platform Overview: ZFS on Linux||Brian Behlendorf from LLNL||[http://open-zfs.org/w/images/0/02/Platform_Overview_ZFS_on_Linux-Brian_Behlendorf.pdf slides]||[http://www.youtube.com/watch?v=_MVOpMNV7LY video]<br />
|-<br />
|Platform Overview: illumos||Prakash Surya from Delphix||[http://open-zfs.org/w/images/a/aa/Platform_Overview_illumos-Prakash_Surya.pdf slides]||[http://www.youtube.com/watch?v=UtlGt3ag0o0 video]<br />
|-<br />
|Platform Overview: FreeBSD||Xin Li from iXsystems||[http://open-zfs.org/w/images/b/b0/Platform_Overview_FreeBSD-Xin_Li_from_iXsystems.pdf slides]||[http://www.youtube.com/watch?v=xO0x5_3A1X4 video]<br />
|-<br />
|Platform Panel Q&A||Above speakers||-||[http://www.youtube.com/watch?v=t4UlT0RmSCc video]<br />
|-<br />
|Manta||Dave Pacheco from Joyent||[http://open-zfs.org/w/images/0/03/Manta-Dave_Pacheco.pdf slides]||[http://www.youtube.com/watch?v=BEoCMpdB8WU video]<br />
|-<br />
|Compression||Saso Kiselkov from Nexenta||[http://open-zfs.org/w/images/4/4d/Compression-Saso_Kiselkov.pdf slides]||[http://www.youtube.com/watch?v=TZF92taa_us video]<br />
|-<br />
|Performance||George Wilson from Delphix||[http://open-zfs.org/w/images/3/31/Performance-George_Wilson.pdf slides]||[http://www.youtube.com/watch?v=deJc0EMKrM4 video]<br />
|-<br />
|Host-Aware SMR||Tim Feldman from Seagate||[http://open-zfs.org/w/images/2/2a/Host-Aware_SMR-Tim_Feldman.pdf slides]||[http://www.youtube.com/watch?v=b1yqjV8qemU video]<br />
|-<br />
|Fast File Cloning||Pavel Zakharov from Imation||[http://open-zfs.org/w/images/7/71/Fast_File_Cloning-Pavel_Zakharov.pptx slides]||[http://www.youtube.com/watch?v=-4c4gsLi1LI video]<br />
|-<br />
|Device Removal||Alex Reece & Matt Ahrens from Delphix||[http://open-zfs.org/w/images/b/b4/Device_Removal-Alex_Reece_%26_Matt_Ahrens.pdf slides]||[http://www.youtube.com/watch?v=Xs6MsJ9kKKE&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=12 video]<br />
|-<br />
|libzfs_core and ioctl stabalization||Richard Yao from ClusterHQ||[http://open-zfs.org/w/images/0/07/Libzfs_core_and_ioctl_stabalization-Richard_Yao.pptx slides]||[http://www.youtube.com/watch?v=PIC0dwLRBZU&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=13 video]<br />
|-<br />
|Channel Programs||Chris Siden from Delphix||[http://open-zfs.org/w/images/d/db/Channel_Programs-Chris_Siden.pdf slides]||[http://www.youtube.com/watch?v=RMTxyqcomPA&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=14 video]<br />
|-<br />
|Company Lightning Talk: DDRdrive||Chris George||[http://open-zfs.org/w/images/e/e7/Lightning_Talk-DDRdrive-Chris_George.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: ClusterHQ||Luke Marsden||[http://open-zfs.org/w/images/3/39/Lightning_Talk-ClusterHQ-Luke_Marsden.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Delphix||Matt Ahrens||[http://open-zfs.org/w/images/b/b8/Lightning_Talk-Delphix-Matt_Ahrens.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Coraid||Richard Elling||[http://open-zfs.org/w/images/6/67/Lightning_Talk-Coraid-Richard_Elling.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Storiant||John Layman||[http://open-zfs.org/w/images/6/65/Lightning_Talk-Storiant-John_Layman.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Syneto||Dan Vatca||[http://open-zfs.org/w/images/6/6a/Lightning_Talk-Syneto-Dan_Vatca.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Nexenta||Tony Nguyen||[http://open-zfs.org/w/images/e/eb/Lightning_Talk-Nexenta-Tony_Nguyen.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: iX Systems||Josh Paetzel||[http://open-zfs.org/w/images/0/01/Lightning_Talk-iX_Systems-Josh_Paetzel.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Zacodi Labs||Maxim Martynov||[http://open-zfs.org/w/images/6/63/Lightning_Talk-Zacodi_Labs-Maxim_Martynov.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Day 1 Closing||Matt Ahrens from Delphix||-||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Hackathon and Day 2 Closing||Hackathon Participants||-||[http://www.youtube.com/watch?v=gPbVPwScMGk&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=16 video]<br />
|-<br />
|}<br />
<br />
<!--<br />
== Event Logistics ==<br />
=== Location ===<br />
<br />
'''Note: Day 1 and Day 2 of the event will take place in different locations a 10 minute walk apart.''' <br />
<br />
On Monday, November 10, 2014 the event will take place at the [http://creativity.org/ Children’s Creativity Museum]<br />
<br />
[https://www.google.com/maps/place/Children's+Creativity+Museum/@37.783326,-122.402066,15z/data=!4m2!3m1!1s0x80858087438c54b7:0x9229072a5964c7fb 221 Fourth Street, San Francisco, CA 94103]. Behind the Carousel at the corner of Fourth and Howard.<br />
<br />
On Tuesday, November 11, 2014 the event will consist of the hackathon and related activities and will take place at the [http://www.delphix.com/p/about-delphix/ Delphix San Francisco Office]<br />
<br />
[https://www.google.com/maps/preview#!q=604+Mission+St.+Suite+400%2C+San+Francisco%2C+CA+94105&data=!1m4!1m3!1d26473!2d-122.4224157!3d37.7867658!4m12!2m11!1m10!1s0x80858062b5adcc23%3A0xd7584093492239e6!3m8!1m3!1d12612!2d-122.3926051!3d37.7913156!3m2!1i1024!2i768!4f13.1 604 Mission Street, 4th floor, San Francisco, CA 94105]<br />
<br />
=== Schedule ===<br />
<!--<br />
<br />
'''Sunday, November 9, 2014'''<br />
<br />
{|border="1" cellpadding="2"<br />
|-<br />
| 6:30pm<br />
| Optional dinner at [http://goo.gl/943i5i Rosamunde Sausage Grill] on Mission St. <br />
Location is a 3 minute walk from the 24th Street BART station.<br />
<br />
Email admin@open-zfs.org if you are interested, or just show up.<br />
|-<br />
|}<br />
<br />
'''Monday, November 10, 2014'''<br />
<br />
{|border="1" cellpadding="2"<br />
|-<br />
| 9:00am - 9:30am<br />
| Breakfast/Registration<br />
|-<br />
| 9:30am - 9:40am<br />
| Keynote (Matt Ahrens from Delphix)<br />
|-<br />
| 9:40am - 10:10am<br />
| Platform Overview: ZFS on OSv (Raphael Carvalho from Cloudius)<br />
|-<br />
| 10:10am - 10:40am<br />
| Platform Overview: ZFS on Linux (Brian Behlendorf from LLNL)<br />
|-<br />
| 10:40am - 10:50am<br />
| Platform Overview: illumos (Prakash Surya from Delphix)<br />
|-<br />
| 10:50am - 11:00am<br />
| Platform Overview: FreeBSD (Xin Li from iXsystems)<br />
|-<br />
| 11:00am - 11:30am<br />
| Platform Panel Q&A (All)<br />
|-<br />
| 11:30am - 12:15pm<br />
| Lunch<br />
|-<br />
| 12:15pm - 12:45pm<br />
| Manta (Dave Pacheco from Joyent)<br />
|-<br />
| 12:45pm - 1:00pm<br />
| Compression (Saso Kiselkov from Nexenta)<br />
|-<br />
| 1:00pm - 1:30pm<br />
| Performance (George Wilson from Delphix)<br />
|-<br />
| 1:30pm - 2:00pm<br />
| Coffee & Snack Break<br />
|-<br />
| 2:00pm - 2:30pm<br />
| Host-Aware SMR (Tim Feldman from Seagate)<br />
|-<br />
| 2:30pm - 3:00pm<br />
| Fast File Cloning (Pavel Zakharov from Imation)<br />
|-<br />
| 3:00pm - 3:30pm<br />
| Device Removal (Alex Reece & Matt Ahrens from Delphix)<br />
|-<br />
| 3:30pm - 3:45pm<br />
| libzfs_core and ioctl stabalization (Richard Yao from ClusterHQ)<br />
|-<br />
| 3:45pm - 4:00pm<br />
| Channel Programs (Chris Siden from Delphix)<br />
|-<br />
| 4:00pm - 4:30pm<br />
| Coffee & Snack Break<br />
|-<br />
| 4:30pm - 5:45pm<br />
| Company Lightning Talks (Various)<br />
|-<br />
| 5:45pm - 5:55pm<br />
| Closing (Matt Ahrens from Delphix)<br />
|-<br />
| 6:00pm - 8:00pm<br />
| Beer Bash & Casual Dinner<br />
|-<br />
|}<br />
<br />
'''Tuesday, November 11, 2014'''<br />
<br />
{|border="1" cellpadding="2"<br />
|-<br />
| 9:00am - 9:30am<br />
| Breakfast<br />
|-<br />
| 9:30am - 11:00am<br />
| Hackathon<br />
|-<br />
| 11:00am - 11:15am<br />
| Coffee & Snack Break<br />
|-<br />
| 11:15am - 12:00pm<br />
| Hackathon<br />
|-<br />
| 12:00pm - 1:00pm<br />
| Lunch<br />
|-<br />
| 1:00pm - 2:30pm<br />
| Hackathon<br />
|-<br />
| 2:30pm - 2:45pm<br />
| Coffee & Snack Break<br />
|-<br />
| 2:45pm - 4:30pm<br />
| Hackathon<br />
|-<br />
| 4:30pm - 5:30pm<br />
| Hackathon Presentations and Awards<br />
|-<br />
| 6:00pm - 8:00pm<br />
| Optional dinner at [https://www.google.com/maps/preview#!q=Thirsty+Bear+Brewery%2C+Howard+St%2C+San+Francisco%2C+CA&data=!1m4!1m3!1d3309!2d-122.4011122!3d37.7868869!4m15!2m14!1m13!1s0x8085807d0bcfd0df%3A0xdfac6306f9e18402!3m8!1m3!1d13236!2d-122.3926051!3d37.7913156!3m2!1i1261!2i806!4f13.1!4m2!3d37.785502!4d-122.399664 Thirsty Bear]<br />
Location is 5 minute walk from Delphix office.<br />
<br />
Email admin@open-zfs.org if you are interested.<br />
|}<br />
<br />
Note that the optional, off-site dinners on Sunday and Tuesday are at your own expense.<br />
--><br />
<br />
== Projects started at the hackathon ==<br />
* Channel Programs - continuation of work from last year's hackathon<br />
** See [[Projects/ZFS Channel Programs | project page]], [http://www.slideshare.net/MatthewAhrens/openzfs-channel-programs slides] and [https://www.youtube.com/watch?v=EGKek5sZ2Xw&list=PLaUVvul17xSdWMBt5tAC8Hu7bbeWskD_q 2013] and [https://www.youtube.com/watch?v=RMTxyqcomPA 2014] videos describing project<br />
** Chris and Paul - (Best in show winner) Demo of several working channel programs, lots of testing yet to do.<br />
* Upstream zfs-make - tool to quickly build zfs on illumos<br />
** Justin and Andiry - 5 new issues upstreamed for review, including a performance enhancement aggregating sync and async operations<br />
** Dan McDonald brought zmake to illumos<br />
** Steve, Chip, Brian B. - Building zfs on illumos<br />
* Poor mans compressed send (decomp when recv)<br />
** Matt Ahrens - Working prototype, some work remains (e.g. send flags)<br />
* Sha 512/256<br />
** Saso and John Mark - Implemented Blake2 hash instead. Saso also revived a SCSI unmap patch<br />
* Rip out scrub throttle, queue mb not ios<br />
** George Wilson - Mostly finished, needs testing <br />
* One man page per subcommand <br />
** Manoj - Completed this work<br />
* Use GRUB2 to boot Linux from a root pool with multiple vdevs (<br />
** Richard Yao - Done (as of plane flight), submission to upstream will follow shortly<br />
** https://bpaste.net/show/d32e6ff0661f<br />
* vdev kstats (Richard)<br />
** Richard and Dan - Added several new per dataset zil kstats<br />
* object count per user in DMU<br />
** Isaac and Manoj - Fully vetted design, and implementation begun.<br />
* improve arc_kmem_reap()<br />
** Tony and George - Made progress on this, as well as improving the amount of memory consumed by arc buf headers when using l2arc.<br />
* quickly creating fragmented pools<br />
** Tony and George - Use a passed in histogram to create desired fragmentation level - near code complete<br />
* reconstruct space_maps<br />
** Albert - Has this nearly working<br />
* large dnodes<br />
** Ned worked on this, solving several crashes - still testing for edge cases<br />
* open-zfs infrastructure in docker (flocker)<br />
** Luke - made progress on the mailman and website infrastructure<br />
* fix OS-2313<br />
** Bryan Dan and Robert worked on a zil_close/spa_sync race that causes intermittent panics and hangs<br />
* fix zpool commands hanging when we have suspended pools<br />
** Don and Brian B. - Created a fix for this bug<br />
* Data collection using statistical methods for weighting recorded data by arbitrary time range<br />
** Alex and Prakash - A working demo measuring spa activity<br />
* Add ziltest to zfstest<br />
** John and Don - got this working, also added a zpool subcommand to list unused disks.<br />
<br />
== A huge THANK YOU to the sponsors of the 2014 OpenZFS Developer Summit: ==<br />
<br />
{|cellpadding="10"<br />
|- <br />
|[[File: Delphix logo.png|150x150px|link=http://delphix.com]]<br />
|[[File: Ddrdrive logo dev 2013.png|150x150px|link=http://www.ddrdrive.com]] <br />
|[[File: Logo freebsdfoundation.png|150x150px|link=http://www.freebsd.org]] <br />
|-<br />
|[[File: Storiant.png|150x150px|link=http://storiant.com/]]<br />
|[[File: Ixsystems.jpg|150x150px|link=http://www.ixsystems.com/]] <br />
|[[File: New_hac_logo.jpg|150x150px|link=http://www.high-availability.com/]]<br />
|-<br />
|[[File: Nexenta-GL-logo-tagline.jpg|150x150px|link=http://nexenta.com/]]<br />
|[[File: syneto-logo-Sept14.svg|150x150px|link=http://syneto.net/]]<br />
|[[File: Seagate 2c pos.jpg|150x150px|link=http://www.seagate.com/]]<br />
|- <br />
|[[File: OmniTI-logo.jpeg|150x150px|link=http://www.omniti.com/]]<br />
|[[File: Clusterhq.png|150x150px|link=http://clusterhq.com/]]<br />
|}<br />
<br />
<!--<br />
=== Sponsorship opportunities available ===<br />
<br />
* Cash donation for miscellaneous expenses (any donation amount would be great!)<br />
<br />
==== Other ways to sponsor ====<br />
* Photographing the event<br />
* Video recording and streaming the presentations<br />
<br />
=== What you get for sponsoring ===<br />
<br />
* Your name, logo, and link on the event page on open-zfs.org<br />
* Your name, logo, and link on the announcement email (if possible)<br />
* Mentioned as a thank you during the opening and closing of the event<br />
* Space to put your pop-up banner at the event<br />
* An opportunity to be known as a OpenZFS supporter in a very talented and influential community<br />
<br />
=== Funded items ===<br />
* Breakfast Both Days<br />
** Thank you [http://www.ixsystems.com/ iXsystems]<br />
* Coffee Breaks Both Days<br />
** Thank you [http://www.ixsystems.com/ iXsystems]<br />
* Lunch<br />
** Thank you [http://www.freebsdfoundation.org FreeBSD Foundation]<br />
** Thank you [http://nexenta.com/ Nexenta]<br />
* Beer Bash<br />
** Thank you [http://www.ddrdrive.com DDRdrive]<br />
** Thank you [http://storiant.com/ Storiant] <br />
* T-Shirts<br />
** Thank you [http://www.delphix.com Delphix]<br />
* Additional Monetary Sponsorship<br />
** Thank you [http://www.seagate.com/ Seagate]<br />
** Thank you [http://www.omniti.com/ OmniTI]<br />
** Thank you [http://clusterhq.com/ ClusterHQ]<br />
** Thank you [http://www.high-availability.com/ High-Availability.Com]<br />
** Thank you [http://syneto.net/ Syneto]<br />
* Conference T-shirt Design<br />
** Thank you Aaron Holding<br />
* Badges<br />
** Thank you [http://syneto.net/ Syneto]<br />
* Hackathon Prizes<br />
** Thank you [http://nexenta.com/ Nexenta] <br />
<br />
Please send email to admin at open-zfs dot org if you would like to sponsor the event.<br />
--><br />
<br />
<br />
== Ideas for next hackathon ==<br />
* new CLI option to enable send features: zfs send -x embedded,largetblock or -x all<br />
* JSON command output<br />
* File cloning with implicit indirection<br />
* print usage message for specific property<br />
** zfs help command <br />
* compile ZFS on Linux with -std=gnu99; does it work?<br />
* storage pool aging<br />
** specify histogram of free segment sizes<br />
** allocator chooses locations to satisfy histogram<br />
* "get next file" syscall<br />
** iterates in object # order, opening next file; zfs prefetches dnodes<br />
** could speed up operations that need to operate on every file in a filesystem, e.g. "chmod -r"<br />
* Porting Party - learn how to contribute changes to a new platform<br />
* performance analytics framework - record performance, store & display (dtrace + graphite?)<br />
* USE method data collection framework for performance analysis (http://www.brendangregg.com/USEmethod/use-solaris.html)<br />
* Illumos grub2<br />
** Someone was already working on this before the hackathon.<br />
** https://github.com/tsoome/illumos-gate/wiki/Grub2---part-1,-the-preparation<br />
* Clean up embedded zil code<br />
* UTF-8 dataset & poolname (Richard)<br />
* zfs_core collaboration (Richard)<br />
* collectd agents (Richard)<br />
* scrub/resilver progress (Richard)<br />
* promote prefetch reads to sync reads<br />
* make zfs recv less trusting<br />
* raidz1 for single device<br />
* static analysis tools for zfs<br />
* dynamic analysis for ztest<br />
* improved documentation for developing zfs on linux<br />
* runtime lock analyzer<br />
* make dtrace probes in linux to work with lttng<br />
* per zone I/O QoS<br />
* convert AVL trees to B-trees or hash tables<br />
* cross platform xattr<br />
* use refcount_t for v_count<br />
<br />
== Harassment Policy ==<br />
OpenZFS Developer Summit is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, age or religion. We do not tolerate harassment of conference participants in any form. Sexual language and imagery is not appropriate for any conference venue, including talks. Conference participants violating these rules may be sanctioned or expelled from the conference at the discretion of the conference organizers.<br />
<br />
<br />
''For information about last year's event, see the [[OpenZFS Developer Summit 2013]] page.''</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFS_Developer_Summit_2014&diff=1670OpenZFS Developer Summit 20142015-02-14T10:56:03Z<p>Ilovezfs: </p>
<hr />
<div>{|cellpadding="20"<br />
|-<br />
|valign="top" |[[file:Open-zfs-san-francisco-logo.png|250px]]<br />
|valign="top" |The second annual OpenZFS Developer Summit was held in San Francisco, November 10-11, 2014. All OpenZFS developers are invited to participate.<br />
<br><br><br />
The goal of the event was to foster cross-community discussions of OpenZFS work and to make progress on some of the projects we have proposed. This 2-day event consisted of 1 day of presentations (Nov 10) and a 1-day hackathon (Nov 11).<br />
<br><br><br />
Details about registration, presentations, and sponsorship opportunities were provided on this page.<br />
|}<br />
<!--<br />
== Live Webcast Stream ==<br />
The event was webcast live, starting at 9:30AM PST on Monday, November 10th. [http://ustre.am/1ikWY Click here to view on ustream.]<br />
<br />
<html><br />
<iframe width="720" height="437" src="http://www.ustream.tv/embed/19146776?v=3&amp;wmode=direct" scrolling="no" frameborder="0" style="border: 0px none transparent;"> </iframe><br />
</html><br />
<br />
== Twitter ==<br />
<br />
<html><br />
<a class="twitter-timeline" width="720" height="437" href="https://twitter.com/OpenZFS" data-widget-id="378639669799288832">Tweets by @OpenZFS</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script><br />
<br />
<span><br />
<br><br />
<a href="https://twitter.com/openzfs" class="twitter-follow-button" data-show-count="true">Follow @openzfs</a><br />
<br><br />
<a href="https://twitter.com/share" class="twitter-share-button" data-via="OpenZFS">Tweet</a><br />
</span><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br />
</html><br />
--><br />
== Event ==<br />
=== Photos ===<br />
Photos of the event can be viewed on the [https://plus.google.com/photos/107465241361512478015/albums/6081692632843588737 OpenZFS Google+ page].<br />
<br />
=== Presentations ===<br />
{| class="wikitable"<br />
!Title!!Speaker!!Slides!!Video<br />
|-<br />
|Keynote||Matt Ahrens from Delphix||[http://open-zfs.org/w/images/5/5b/OpenZFS_Keynote-Matt_Ahrens.pdf slides]||[http://www.youtube.com/watch?v=XnTzbisLYzg video]<br />
|-<br />
|Platform Overview: ZFS on OSv||Raphael Carvalho from Cloudius||[http://open-zfs.org/w/images/9/99/Platform_Overview_ZFS_on_OSv-Raphael_Carvalho.odp slides]||[http://www.youtube.com/watch?v=TJLOBLSRoHE video]<br />
|-<br />
|Platform Overview: ZFS on Linux||Brian Behlendorf from LLNL||[http://open-zfs.org/w/images/0/02/Platform_Overview_ZFS_on_Linux-Brian_Behlendorf.pdf slides]||[http://www.youtube.com/watch?v=_MVOpMNV7LY video]<br />
|-<br />
|Platform Overview: illumos||Prakash Surya from Delphix||[http://open-zfs.org/w/images/a/aa/Platform_Overview_illumos-Prakash_Surya.pdf slides]||[http://www.youtube.com/watch?v=UtlGt3ag0o0 video]<br />
|-<br />
|Platform Overview: FreeBSD||Xin Li from iXsystems||[http://open-zfs.org/w/images/b/b0/Platform_Overview_FreeBSD-Xin_Li_from_iXsystems.pdf slides]||[http://www.youtube.com/watch?v=xO0x5_3A1X4 video]<br />
|-<br />
|Platform Panel Q&A||Above speakers||-||[http://www.youtube.com/watch?v=t4UlT0RmSCc video]<br />
|-<br />
|Manta||Dave Pacheco from Joyent||[http://open-zfs.org/w/images/0/03/Manta-Dave_Pacheco.pdf slides]||[http://www.youtube.com/watch?v=BEoCMpdB8WU video]<br />
|-<br />
|Compression||Saso Kiselkov from Nexenta||[http://open-zfs.org/w/images/4/4d/Compression-Saso_Kiselkov.pdf slides]||[http://www.youtube.com/watch?v=TZF92taa_us video]<br />
|-<br />
|Performance||George Wilson from Delphix||[http://open-zfs.org/w/images/3/31/Performance-George_Wilson.pdf slides]||[http://www.youtube.com/watch?v=deJc0EMKrM4 video]<br />
|-<br />
|Host-Aware SMR||Tim Feldman from Seagate||[http://open-zfs.org/w/images/2/2a/Host-Aware_SMR-Tim_Feldman.pdf slides]||[http://www.youtube.com/watch?v=b1yqjV8qemU video]<br />
|-<br />
|Fast File Cloning||Pavel Zakharov from Imation||[http://open-zfs.org/w/images/7/71/Fast_File_Cloning-Pavel_Zakharov.pptx slides]||[http://www.youtube.com/watch?v=-4c4gsLi1LI video]<br />
|-<br />
|Device Removal||Alex Reece & Matt Ahrens from Delphix||[http://open-zfs.org/w/images/b/b4/Device_Removal-Alex_Reece_%26_Matt_Ahrens.pdf slides]||[http://www.youtube.com/watch?v=Xs6MsJ9kKKE&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=12 video]<br />
|-<br />
|libzfs_core and ioctl stabalization||Richard Yao from ClusterHQ||[http://open-zfs.org/w/images/0/07/Libzfs_core_and_ioctl_stabalization-Richard_Yao.pptx slides]||[http://www.youtube.com/watch?v=PIC0dwLRBZU&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=13 video]<br />
|-<br />
|Channel Programs||Chris Siden from Delphix||[http://open-zfs.org/w/images/d/db/Channel_Programs-Chris_Siden.pdf slides]||[http://www.youtube.com/watch?v=RMTxyqcomPA&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=14 video]<br />
|-<br />
|Company Lightning Talk: DDRdrive||Chris George||[http://open-zfs.org/w/images/e/e7/Lightning_Talk-DDRdrive-Chris_George.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: ClusterHQ||Luke Marsden||[http://open-zfs.org/w/images/3/39/Lightning_Talk-ClusterHQ-Luke_Marsden.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Delphix||Matt Ahrens||[http://open-zfs.org/w/images/b/b8/Lightning_Talk-Delphix-Matt_Ahrens.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Coraid||Richard Elling||[http://open-zfs.org/w/images/6/67/Lightning_Talk-Coraid-Richard_Elling.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Storiant||John Layman||[http://open-zfs.org/w/images/6/65/Lightning_Talk-Storiant-John_Layman.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Syneto||Dan Vatca||[http://open-zfs.org/w/images/6/6a/Lightning_Talk-Syneto-Dan_Vatca.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Nexenta||Tony Nguyen||[http://open-zfs.org/w/images/e/eb/Lightning_Talk-Nexenta-Tony_Nguyen.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: iX Systems||Josh Paetzel||[http://open-zfs.org/w/images/0/01/Lightning_Talk-iX_Systems-Josh_Paetzel.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Company Lightning Talk: Zacodi Labs||Maxim Martynov||[http://open-zfs.org/w/images/6/63/Lightning_Talk-Zacodi_Labs-Maxim_Martynov.pdf slides]||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Day 1 Closing||Matt Ahrens from Delphix||-||[http://www.youtube.com/watch?v=LmbI7F7XTTc&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=15 video]<br />
|-<br />
|Hackathon and Day 2 Closing||Hackathon Participants||-||[http://www.youtube.com/watch?v=gPbVPwScMGk&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq&index=16 video]<br />
|-<br />
|}<br />
<br />
<!--<br />
== Event Logistics ==<br />
=== Location ===<br />
<br />
'''Note: Day 1 and Day 2 of the event will take place in different locations a 10 minute walk apart.''' <br />
<br />
On Monday, November 10, 2014 the event will take place at the [http://creativity.org/ Children’s Creativity Museum]<br />
<br />
[https://www.google.com/maps/place/Children's+Creativity+Museum/@37.783326,-122.402066,15z/data=!4m2!3m1!1s0x80858087438c54b7:0x9229072a5964c7fb 221 Fourth Street, San Francisco, CA 94103]. Behind the Carousel at the corner of Fourth and Howard.<br />
<br />
On Tuesday, November 11, 2014 the event will consist of the hackathon and related activities and will take place at the [http://www.delphix.com/p/about-delphix/ Delphix San Francisco Office]<br />
<br />
[https://www.google.com/maps/preview#!q=604+Mission+St.+Suite+400%2C+San+Francisco%2C+CA+94105&data=!1m4!1m3!1d26473!2d-122.4224157!3d37.7867658!4m12!2m11!1m10!1s0x80858062b5adcc23%3A0xd7584093492239e6!3m8!1m3!1d12612!2d-122.3926051!3d37.7913156!3m2!1i1024!2i768!4f13.1 604 Mission Street, 4th floor, San Francisco, CA 94105]<br />
<br />
=== Schedule ===<br />
<!--<br />
<br />
'''Sunday, November 9, 2014'''<br />
<br />
{|border="1" cellpadding="2"<br />
|-<br />
| 6:30pm<br />
| Optional dinner at [http://goo.gl/943i5i Rosamunde Sausage Grill] on Mission St. <br />
Location is a 3 minute walk from the 24th Street BART station.<br />
<br />
Email admin@open-zfs.org if you are interested, or just show up.<br />
|-<br />
|}<br />
<br />
'''Monday, November 10, 2014'''<br />
<br />
{|border="1" cellpadding="2"<br />
|-<br />
| 9:00am - 9:30am<br />
| Breakfast/Registration<br />
|-<br />
| 9:30am - 9:40am<br />
| Keynote (Matt Ahrens from Delphix)<br />
|-<br />
| 9:40am - 10:10am<br />
| Platform Overview: ZFS on OSv (Raphael Carvalho from Cloudius)<br />
|-<br />
| 10:10am - 10:40am<br />
| Platform Overview: ZFS on Linux (Brian Behlendorf from LLNL)<br />
|-<br />
| 10:40am - 10:50am<br />
| Platform Overview: illumos (Prakash Surya from Delphix)<br />
|-<br />
| 10:50am - 11:00am<br />
| Platform Overview: FreeBSD (Xin Li from iXsystems)<br />
|-<br />
| 11:00am - 11:30am<br />
| Platform Panel Q&A (All)<br />
|-<br />
| 11:30am - 12:15pm<br />
| Lunch<br />
|-<br />
| 12:15pm - 12:45pm<br />
| Manta (Dave Pacheco from Joyent)<br />
|-<br />
| 12:45pm - 1:00pm<br />
| Compression (Saso Kiselkov from Nexenta)<br />
|-<br />
| 1:00pm - 1:30pm<br />
| Performance (George Wilson from Delphix)<br />
|-<br />
| 1:30pm - 2:00pm<br />
| Coffee & Snack Break<br />
|-<br />
| 2:00pm - 2:30pm<br />
| Host-Aware SMR (Tim Feldman from Seagate)<br />
|-<br />
| 2:30pm - 3:00pm<br />
| Fast File Cloning (Pavel Zakharov from Imation)<br />
|-<br />
| 3:00pm - 3:30pm<br />
| Device Removal (Alex Reece & Matt Ahrens from Delphix)<br />
|-<br />
| 3:30pm - 3:45pm<br />
| libzfs_core and ioctl stabalization (Richard Yao from ClusterHQ)<br />
|-<br />
| 3:45pm - 4:00pm<br />
| Channel Programs (Chris Siden from Delphix)<br />
|-<br />
| 4:00pm - 4:30pm<br />
| Coffee & Snack Break<br />
|-<br />
| 4:30pm - 5:45pm<br />
| Company Lightning Talks (Various)<br />
|-<br />
| 5:45pm - 5:55pm<br />
| Closing (Matt Ahrens from Delphix)<br />
|-<br />
| 6:00pm - 8:00pm<br />
| Beer Bash & Casual Dinner<br />
|-<br />
|}<br />
<br />
'''Tuesday, November 11, 2014'''<br />
<br />
{|border="1" cellpadding="2"<br />
|-<br />
| 9:00am - 9:30am<br />
| Breakfast<br />
|-<br />
| 9:30am - 11:00am<br />
| Hackathon<br />
|-<br />
| 11:00am - 11:15am<br />
| Coffee & Snack Break<br />
|-<br />
| 11:15am - 12:00pm<br />
| Hackathon<br />
|-<br />
| 12:00pm - 1:00pm<br />
| Lunch<br />
|-<br />
| 1:00pm - 2:30pm<br />
| Hackathon<br />
|-<br />
| 2:30pm - 2:45pm<br />
| Coffee & Snack Break<br />
|-<br />
| 2:45pm - 4:30pm<br />
| Hackathon<br />
|-<br />
| 4:30pm - 5:30pm<br />
| Hackathon Presentations and Awards<br />
|-<br />
| 6:00pm - 8:00pm<br />
| Optional dinner at [https://www.google.com/maps/preview#!q=Thirsty+Bear+Brewery%2C+Howard+St%2C+San+Francisco%2C+CA&data=!1m4!1m3!1d3309!2d-122.4011122!3d37.7868869!4m15!2m14!1m13!1s0x8085807d0bcfd0df%3A0xdfac6306f9e18402!3m8!1m3!1d13236!2d-122.3926051!3d37.7913156!3m2!1i1261!2i806!4f13.1!4m2!3d37.785502!4d-122.399664 Thirsty Bear]<br />
Location is 5 minute walk from Delphix office.<br />
<br />
Email admin@open-zfs.org if you are interested.<br />
|}<br />
<br />
Note that the optional, off-site dinners on Sunday and Tuesday are at your own expense.<br />
--><br />
<br />
== Projects started at the hackathon ==<br />
* Channel Programs - continuation of work from last year's hackathon<br />
** See [[Projects/ZFS Channel Programs | project page]], [http://www.slideshare.net/MatthewAhrens/openzfs-channel-programs slides] and [https://www.youtube.com/watch?v=EGKek5sZ2Xw&list=PLaUVvul17xSdWMBt5tAC8Hu7bbeWskD_q 2013] and [https://www.youtube.com/watch?v=RMTxyqcomPA 2014] videos describing project<br />
** Chris and Paul - (Best in show winner) Demo of several working channel programs, lots of testing yet to do.<br />
* Upstream zfs-make - tool to quickly build zfs on illumos<br />
** Justin and Andiry - 5 new issues upstreamed for review, including a performance enhancement aggregating sync and async operations<br />
** Dan McDonald brought zmake to illumos<br />
** Steve, Chip, Brian B. - Building zfs on illumos<br />
* Poor mans compressed send (decomp when recv)<br />
** Matt Ahrens - Working prototype, some work remains (e.g. send flags)<br />
* Sha 512/256<br />
** Saso and John Mark - Implemented Blake2 hash instead. Saso also revived a SCSI unmap patch<br />
* Rip out scrub throttle, queue mb not ios<br />
** George Wilson - Mostly finished, needs testing <br />
* One man page per subcommand <br />
** Manoj - Completed this work<br />
* Use GRUB2 to boot Linux from a root pool with multiple vdevs (<br />
** Richard Yao - Done (as of plane flight), submission to upstream will follow shortly<br />
** https://bpaste.net/show/d32e6ff0661f<br />
* vdev kstats (Richard)<br />
** Richard and Dan - Added several new per dataset zil kstats<br />
* object count per user in DMU<br />
** Isaac and Manoj - Fully vetted design, and implementation begun.<br />
* improve arc_kmem_reap()<br />
** Tony and George - Made progress on this, as well as improving the amount of memory consumed by arc buf headers when using l2arc.<br />
* quickly creating fragmented pools<br />
** Tony and George - Use a passed in histogram to create desired fragmentation level - near code complete<br />
* reconstruct space_maps<br />
** Albert - Has this nearly working<br />
* large dnodes<br />
** Ned worked on this, solving several crashes - still testing for edge cases<br />
* open-zfs infrastructure in docker (flocker)<br />
** Luke - made progress on the mailman and website infrastructure<br />
* fix OS-2313<br />
** Bryan Dan and Robert worked on a zil_close/spa_sync race that causes intermittent panics and hangs<br />
* fix zpool commands hanging when we have suspended pools<br />
** Don and Brian B. - Created a fix for this bug<br />
* Data collection using statistical methods for weighting recorded data by arbitrary time range<br />
** Alex and Prakash - A working demo measuring spa activity<br />
* Add ziltest to zfstest<br />
** John and Don - got this working, also added a zpool subcommand to list unused disks.<br />
<br />
== A huge THANK YOU to the sponsors of the 2014 OpenZFS Developer Summit: ==<br />
<br />
{|cellpadding="10"<br />
|- <br />
|[[File: Delphix logo.png|150x150px|link=http://delphix.com]]<br />
|[[File: Ddrdrive logo dev 2013.png|150x150px|link=http://www.ddrdrive.com]] <br />
|[[File: Logo freebsdfoundation.png|150x150px|link=http://www.freebsd.org]] <br />
|-<br />
|[[File: Storiant.png|150x150px|link=http://storiant.com/]]<br />
|[[File: Ixsystems.jpg|150x150px|link=http://www.ixsystems.com/]] <br />
|[[File: New_hac_logo.jpg|150x150px|link=http://www.high-availability.com/]]<br />
|-<br />
|[[File: Nexenta-GL-logo-tagline.jpg|150x150px|link=http://nexenta.com/]]<br />
|[[File: syneto-logo-Sept14.svg|150x150px|link=http://syneto.net/]]<br />
|[[File: Seagate 2c pos.jpg|150x150px|link=http://www.seagate.com/]]<br />
|- <br />
|[[File: OmniTI-logo.jpeg|150x150px|link=http://www.omniti.com/]]<br />
|[[File: Clusterhq.png|150x150px|link=http://clusterhq.com/]]<br />
|}<br />
<br />
<!--<br />
=== Sponsorship opportunities available ===<br />
<br />
* Cash donation for miscellaneous expenses (any donation amount would be great!)<br />
<br />
==== Other ways to sponsor ====<br />
* Photographing the event<br />
* Video recording and streaming the presentations<br />
<br />
=== What you get for sponsoring ===<br />
<br />
* Your name, logo, and link on the event page on open-zfs.org<br />
* Your name, logo, and link on the announcement email (if possible)<br />
* Mentioned as a thank you during the opening and closing of the event<br />
* Space to put your pop-up banner at the event<br />
* An opportunity to be known as a OpenZFS supporter in a very talented and influential community<br />
<br />
=== Funded items ===<br />
* Breakfast Both Days<br />
** Thank you [http://www.ixsystems.com/ iXsystems]<br />
* Coffee Breaks Both Days<br />
** Thank you [http://www.ixsystems.com/ iXsystems]<br />
* Lunch<br />
** Thank you [http://www.freebsdfoundation.org FreeBSD Foundation]<br />
** Thank you [http://nexenta.com/ Nexenta]<br />
* Beer Bash<br />
** Thank you [http://www.ddrdrive.com DDRdrive]<br />
** Thank you [http://storiant.com/ Storiant] <br />
* T-Shirts<br />
** Thank you [http://www.delphix.com Delphix]<br />
* Additional Monetary Sponsorship<br />
** Thank you [http://www.seagate.com/ Seagate]<br />
** Thank you [http://www.omniti.com/ OmniTI]<br />
** Thank you [http://clusterhq.com/ ClusterHQ]<br />
** Thank you [http://www.high-availability.com/ High-Availability.Com]<br />
** Thank you [http://syneto.net/ Syneto]<br />
* Conference T-shirt Design<br />
** Thank you Aaron Holding<br />
* Badges<br />
** Thank you [http://syneto.net/ Syneto]<br />
* Hackathon Prizes<br />
** Thank you [http://nexenta.com/ Nexenta] <br />
<br />
Please send email to admin at open-zfs dot org if you would like to sponsor the event.<br />
--><br />
<br />
<br />
== Ideas for next hackathon ==<br />
* new CLI option to enable send features: zfs send -x embedded,largetblock or -x all<br />
* JSON command output<br />
* File cloning with implicit indirection<br />
* print usage message for specific property<br />
** zfs help command <br />
* compile ZFS on Linux with -std=gnu99; does it work?<br />
* storage pool aging<br />
** specify histogram of free segment sizes<br />
** allocator chooses locations to satisfy histogram<br />
* "get next file" syscall<br />
** iterates in object # order, opening next file; zfs prefetches dnodes<br />
** could speed up operations that need to operate on every file in a filesystem, e.g. "chmod -r"<br />
* Porting Party - learn how to contribute changes to a new platform<br />
* performance analytics framework - record performance, store & display (dtrace + graphite?)<br />
* USE method data collection framework for performance analysis (http://www.brendangregg.com/USEmethod/use-solaris.html)<br />
* Illumos grub2<br />
** Someone was already working on this before the hackathon.<br />
** https://github.com/tsoome/illumos-gate/wiki/Grub2---part-1,-the-preparation<br />
* Clean up embedded zil code<br />
* UTF-8 dataset & poolname (Richard)<br />
* zfs_core collaboration (Richard)<br />
* collectd agents (Richard)<br />
* scrub/resilver progress (Richard)<br />
* promote prefetch reads to sync reads<br />
* make zfs recv less trusting<br />
* raidz1 for single device<br />
* static analysis tools for zfs<br />
* dynamic analysis for ztest<br />
* improved documentation for developing zfs on linux<br />
* runtime lock analyzer<br />
* make dtrace probes in linux to work with lttng<br />
* per zone I/O QoS<br />
* convert AVL trees to B-trees or hash tables<br />
* cross platform xattr<br />
* use refcount_t for v_count<br />
<br />
== Harassment Policy ==<br />
OpenZFS Developer Summit is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, age or religion. We do not tolerate harassment of conference participants in any form. Sexual language and imagery is not appropriate for any conference venue, including talks. Conference participants violating these rules may be sanctioned or expelled from the conference at the discretion of the conference organizers.<br />
<br />
<br />
''For information about last year's event, see the [[OpenZFS Developer Summit 2013]] page.''</div>Ilovezfshttps://openzfs.org/w/index.php?title=Main_Page&diff=1669Main Page2015-02-14T10:49:01Z<p>Ilovezfs: /* What's new? */</p>
<hr />
<div><div id="mf-home"><br />
= Welcome to OpenZFS =<br />
__NOTOC__<br />
<br />
<br />
== Summary ==<br />
<br />
OpenZFS was [[announcement | announced in September 2013]] as the truly '''open source''' successor to the [[History | ZFS project]]. Our community '''brings together developers''' from the illumos, FreeBSD, Linux, and OS X [[distributions | platforms]], and a wide range of [[companies]] that build products on top of OpenZFS. <br />
<br />
OpenZFS is an '''outstanding storage platform''' that encompasses the functionality of traditional filesystems, volume managers, and more, with consistent reliability, functionality and performance across all [[distributions]]: <br />
<br />
{| class="wikitable"<br />
| '''illumos'''<br />
|[http://wiki.illumos.org/display/illumos/ZFS Webpage]<br />
|[https://github.com/illumos/illumos-gate/ GitHub]<br />
|-<br />
| '''FreeBSD'''<br />
|[https://wiki.freebsd.org/ZFS Webpage]<br />
|[https://github.com/freebsd/freebsd/ GitHub] <br />
|-<br />
| '''ZFS on Linux'''<br />
|[http://zfsonlinux.org/ Webpage]<br />
|[https://github.com/zfsonlinux/zfs/ GitHub]<br />
|-<br />
| '''OpenZFS on OS X'''<br />
|[https://openzfsonosx.org/ Webpage]<br />
|[https://github.com/openzfsonosx/ GitHub]<br />
|}<br />
<br />
== Goals ==<br />
<br />
The high-level goals of OpenZFS are:<br />
* to '''raise awareness''' of the quality, utility, and availability of open source implementations of ZFS<br />
* to encourage '''open communication''' about ongoing efforts to improve open source ZFS<br />
* to ensure '''consistent reliability''', functionality, and performance of all distributions of ZFS.<br />
<br />
The main technical goal of OpenZFS is '''easier sharing of code''' between platforms. Strategies include:<br />
* creating a platform-independent [[mailing list]] for developers to review ZFS code and architecture changes from all platforms<br />
* smoothing the [[illumos integration process]]<br />
* making it easy to run both ztest and the ZFS test suite (TestRunner or STF based) on each platform<br />
* [[Reduce code differences | reducing code differences]] between the platforms.<br />
<br />
== What's new? ==<br />
<br />
March: [http://2015.asiabsdcon.org/ AsiaBSDCon 2015] will be held March 12-15th. <br />
<br />
November: The [[OpenZFS Developer Summit 2014]] was held November 10-11th.<br />
<br />
June: New blog post from Matt Ahrens: [http://blog.delphix.com/matt/2014/06/06/zfs-stripe-width/ RAIDZ stripe width, or: How I Learned to Stop Worrying and Love RAIDZ]<br />
<br />
May: [https://www.youtube.com/watch?v=FaS2Svis3dA video] of Matt Ahrens' talk at dotScale: what's wrong with storage?<br />
<br />
May: Slides and [http://www.youtube.com/playlist?list=PLaUVvul17xScyhIYmGjaNaGSWI49qyf6K video] posted from the very successful [[Publications#2014_OpenZFS_European_Conference | OpenZFS European Conference]].<br />
<br />
March: [http://www.slideshare.net/MatthewAhrens/openzfs-asiabsdcon Slides] and associated [http://www.open-zfs.org/w/images/0/0f/AsiaBSDcon_paper.pdf paper] from OpenZFS keynote at AsiaBSDcon. [http://www.bsdnow.tv/episodes/2014_05_14-bsdcanned_goods Audio recording] and [http://www.slideshare.net/MatthewAhrens/openzfs-at-asiabsdcon-freebsd-developer-summit slides] from FreeBSD Developer Summit.<br />
<br />
November 2013: [http://www.beginningwithi.com/2013/11/18/openzfs-developer-summit/ video] and [[Publications#2013_OpenZFS_Developer_Summit | slides]] from the [[OpenZFS Developer Summit 2013]].<br />
<br />
== Site orientation ==<br />
* [[FAQ]]<br />
* How to [[participate]]<br />
* [[Companies]] with products that are based on OpenZFS<br />
* Download [[distributions]] that include OpenZFS<br />
* [[Events]] – the forthcoming [[OpenZFS Developer Summit]] and more<br />
* [[Developer resources]]<br />
** [[mailing list]]<br />
** [[illumos integration process]]<br />
** [[contributors]]<br />
** [[platform code differences]]<br />
** [[OpenZFS Office Hours]]<br />
** implementation<br />
*** [[Documentation/ZfsSend | ZFS send]]<br />
*** [[Documentation/Administrative Commands | administrative commands]]<br />
* [[Documentation]]<br />
** [[features]]<br />
** [[Publications| publications and conference talks]]<br />
** [[history]] – from ZFS to OpenZFS<br />
*** OpenZFS launch [[announcement]] – September 2013<br />
** [[performance tuning]]<br />
* [[Projects]]<br />
** [[reduce code differences]]<br />
** the [[Projects/ZFS Channel Programs | ZFS Channel Programs]] (ZCP) proposal<br />
* [[About OpenZFS]]<br />
<br />
[http://open-zfs.org/w/index.php?title=Special%3AAllPages&from=&to=&namespace=0&hideredirects=1 All main pages] (alphabetical order) …<br />
<br />
== Twitter ==<br />
<br />
<html><br />
<a class="twitter-timeline" width="720" height="437" href="https://twitter.com/OpenZFS" data-widget-id="378639669799288832">Tweets by @OpenZFS</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script><br />
<br />
<span><br />
<br><br />
<a href="https://twitter.com/openzfs" class="twitter-follow-button" data-show-count="true">Follow @openzfs</a><br />
<br><br />
<a href="https://twitter.com/share" class="twitter-share-button" data-via="OpenZFS">Tweet</a><br />
</span><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br />
</html></div>Ilovezfshttps://openzfs.org/w/index.php?title=Main_Page&diff=1668Main Page2015-02-14T10:44:38Z<p>Ilovezfs: /* What's new? */</p>
<hr />
<div><div id="mf-home"><br />
= Welcome to OpenZFS =<br />
__NOTOC__<br />
<br />
<br />
== Summary ==<br />
<br />
OpenZFS was [[announcement | announced in September 2013]] as the truly '''open source''' successor to the [[History | ZFS project]]. Our community '''brings together developers''' from the illumos, FreeBSD, Linux, and OS X [[distributions | platforms]], and a wide range of [[companies]] that build products on top of OpenZFS. <br />
<br />
OpenZFS is an '''outstanding storage platform''' that encompasses the functionality of traditional filesystems, volume managers, and more, with consistent reliability, functionality and performance across all [[distributions]]: <br />
<br />
{| class="wikitable"<br />
| '''illumos'''<br />
|[http://wiki.illumos.org/display/illumos/ZFS Webpage]<br />
|[https://github.com/illumos/illumos-gate/ GitHub]<br />
|-<br />
| '''FreeBSD'''<br />
|[https://wiki.freebsd.org/ZFS Webpage]<br />
|[https://github.com/freebsd/freebsd/ GitHub] <br />
|-<br />
| '''ZFS on Linux'''<br />
|[http://zfsonlinux.org/ Webpage]<br />
|[https://github.com/zfsonlinux/zfs/ GitHub]<br />
|-<br />
| '''OpenZFS on OS X'''<br />
|[https://openzfsonosx.org/ Webpage]<br />
|[https://github.com/openzfsonosx/ GitHub]<br />
|}<br />
<br />
== Goals ==<br />
<br />
The high-level goals of OpenZFS are:<br />
* to '''raise awareness''' of the quality, utility, and availability of open source implementations of ZFS<br />
* to encourage '''open communication''' about ongoing efforts to improve open source ZFS<br />
* to ensure '''consistent reliability''', functionality, and performance of all distributions of ZFS.<br />
<br />
The main technical goal of OpenZFS is '''easier sharing of code''' between platforms. Strategies include:<br />
* creating a platform-independent [[mailing list]] for developers to review ZFS code and architecture changes from all platforms<br />
* smoothing the [[illumos integration process]]<br />
* making it easy to run both ztest and the ZFS test suite (TestRunner or STF based) on each platform<br />
* [[Reduce code differences | reducing code differences]] between the platforms.<br />
<br />
== What's new? ==<br />
<br />
November: The [[OpenZFS Developer Summit 2014]] was held November 10-11th.<br />
<br />
June: New blog post from Matt Ahrens: [http://blog.delphix.com/matt/2014/06/06/zfs-stripe-width/ RAIDZ stripe width, or: How I Learned to Stop Worrying and Love RAIDZ]<br />
<br />
May: [https://www.youtube.com/watch?v=FaS2Svis3dA video] of Matt Ahrens' talk at dotScale: what's wrong with storage?<br />
<br />
May: Slides and [http://www.youtube.com/playlist?list=PLaUVvul17xScyhIYmGjaNaGSWI49qyf6K video] posted from the very successful [[Publications#2014_OpenZFS_European_Conference | OpenZFS European Conference]].<br />
<br />
March: [http://www.slideshare.net/MatthewAhrens/openzfs-asiabsdcon Slides] and associated [http://www.open-zfs.org/w/images/0/0f/AsiaBSDcon_paper.pdf paper] from OpenZFS keynote at AsiaBSDcon. [http://www.bsdnow.tv/episodes/2014_05_14-bsdcanned_goods Audio recording] and [http://www.slideshare.net/MatthewAhrens/openzfs-at-asiabsdcon-freebsd-developer-summit slides] from FreeBSD Developer Summit.<br />
<br />
November 2013: [http://www.beginningwithi.com/2013/11/18/openzfs-developer-summit/ video] and [[Publications#2013_OpenZFS_Developer_Summit | slides]] from the [[OpenZFS Developer Summit 2013]].<br />
<br />
== Site orientation ==<br />
* [[FAQ]]<br />
* How to [[participate]]<br />
* [[Companies]] with products that are based on OpenZFS<br />
* Download [[distributions]] that include OpenZFS<br />
* [[Events]] – the forthcoming [[OpenZFS Developer Summit]] and more<br />
* [[Developer resources]]<br />
** [[mailing list]]<br />
** [[illumos integration process]]<br />
** [[contributors]]<br />
** [[platform code differences]]<br />
** [[OpenZFS Office Hours]]<br />
** implementation<br />
*** [[Documentation/ZfsSend | ZFS send]]<br />
*** [[Documentation/Administrative Commands | administrative commands]]<br />
* [[Documentation]]<br />
** [[features]]<br />
** [[Publications| publications and conference talks]]<br />
** [[history]] – from ZFS to OpenZFS<br />
*** OpenZFS launch [[announcement]] – September 2013<br />
** [[performance tuning]]<br />
* [[Projects]]<br />
** [[reduce code differences]]<br />
** the [[Projects/ZFS Channel Programs | ZFS Channel Programs]] (ZCP) proposal<br />
* [[About OpenZFS]]<br />
<br />
[http://open-zfs.org/w/index.php?title=Special%3AAllPages&from=&to=&namespace=0&hideredirects=1 All main pages] (alphabetical order) …<br />
<br />
== Twitter ==<br />
<br />
<html><br />
<a class="twitter-timeline" width="720" height="437" href="https://twitter.com/OpenZFS" data-widget-id="378639669799288832">Tweets by @OpenZFS</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script><br />
<br />
<span><br />
<br><br />
<a href="https://twitter.com/openzfs" class="twitter-follow-button" data-show-count="true">Follow @openzfs</a><br />
<br><br />
<a href="https://twitter.com/share" class="twitter-share-button" data-via="OpenZFS">Tweet</a><br />
</span><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br />
</html></div>Ilovezfshttps://openzfs.org/w/index.php?title=Platform_code_differences&diff=1667Platform code differences2015-02-14T10:42:01Z<p>Ilovezfs: </p>
<hr />
<div>It is useful to have a list of code differences between illumos and other platforms. Please separate changes that are trivially portable to other platforms (mainly illumos) from those that are not. Also, please include information on the rationale for each change. <br />
<br />
== ZFS on Linux ==<br />
<br />
=== Platform independent (portable) ===<br />
<br />
* Switched from C99 to C89<br />
** Linux's build system passes -std=gnu89 to GCC.<br />
* Converted large stack allocations to dynamic allocations<br />
** Linux has an 8KB stack in comparison to illumos' luxurious 24KB stacks.<br />
* [https://github.com/zfsonlinux/zfs/commit/b01615d5ac86913da1e092d0378bfb8f0e72af30 Constify structures containing function pointers]<br />
** The [http://pax.grsecurity.net/ PaX] effort to harden the Linux kernel considers writeable function pointers to be potential exploit targets. They modified the Linux kernel build system to report these as section mismatches. Function pointers were constified as a result.<br />
* Switched various allocations from KM_SLEEP to KM_PUSHPAGE<br />
** These were found to occur in code paths critical to swap on zvols. Swap on zvols would readily deadlock until they were changed.<br />
* [https://github.com/zfsonlinux/zfs/commit/bff32e0972bbc07ba5f2b9ce5b965813d8edcf78 Drive Identifier database]<br />
** This belongs in a different layer, but we do not have have the option of modifying the kernel itself, especially older ones. The database can be ported to illumos' sd.conf without little difficulty. Entries can also be ported to a similar database in FreeBSD (although not in the reverse direction).<br />
* -o ashift= in zpool create/attach/replace commands<br />
** The sector size determines ashift at vdev creation. This is a manual override that permits the system administrator to workaround drives that lie with relative ease. It complements the drive database.<br />
* [https://github.com/zfsonlinux/zfs/commit/82a37189aac955c81a59a5ecc3400475adb56355 SA based xattrs]<br />
** Improves get/set performance for small xattr values.<br />
** This would have resulted in a ZFS version change had it been imported into Open Solaris before the project was discontinued. It is off by default.<br />
* [https://github.com/zfsonlinux/zfs/commit/556011dbec2d10579819078559a77630fc559112 Better queuing of read IOs to leaves of mirror vdevs]<br />
** Improves throughput and IOPS on mirrored vdevs<br />
* [https://github.com/zfsonlinux/zfs/commit/920dd524fb2997225d4b1ac180bcbc14b045fda6 FASTWRITE algorithm]<br />
** Greedy selection of least busy top-level vdev when queuing writes. Improves IOPS performance.<br />
** [https://github.com/ryao/zfs/commit/858822a04b4563657b2267131e90d9687d67e31b Patch] being tested to remove mc_fastwrite_lock.<br />
<br />
=== Platform specific (non-portable) ===<br />
<br />
* Autotools build system<br />
** This could be adapted to other platforms, but the current code is extremely Linux-specific.<br />
* ZPIOS<br />
** Benchmark designed to exercise the the ZFS Transaction Object Layer<br />
** This could be adapted to other platforms with a rewrite to use illumos interfaces.<br />
* ZFS POSIX Layer<br />
** Linux VFS hooks that attempt to wrap the functions (zfs_vnops.c) used on illumos.<br />
* ZVOL code<br />
** A roughly 90% rewrite for Linux. Very little code shared with illumos.<br />
* [https://github.com/zfsonlinux/spl/commit/eb0f407a2b9089113ef6f2402ebd887511315b43 PF_NOFS thread flag]<br />
** A thread specific flag to indicate that we are in a path that might involve swap. Implemented in compatibility layer.<br />
** KM_SLEEP allocations made in the presence of PF_NOFS will be converted to KM_PUSHPAGE. A stack trace is also printed to dmesg.<br />
* [https://github.com/zfsonlinux/spl/commit/46a75aadb7c08085a4ad2e55dcf5b6fb387c1253 cv_wait_io()]<br />
** Compatibility layer extension to hook into Linux's I/O time accounting infrastructure. Otherwise identical to cv_wait().<br />
<br />
== OpenZFS on OS X ==<br />
<br />
* Mostly based on ZFS on Linux<br />
** Clone of source tree<br />
** Uses ZFS on Linux autoconf<br />
* Prefers clang or llvm-gcc for kernel module<br />
** IOKit kernel module requires C++ (strip Linux's variables named ''private'')<br />
* All UIO operations are kernel API calls. (uio_create() / uio_setoffset() ... ) the struct is opaque<br />
* zfs_vnops.c, zfs_vfops.c, zfs_acl.c, zfs_znode.c, zfs_fuid.c are FreeBSD based with OS X wrappers in zfs_vnops_osx.c<br />
* '''vnode_t''' is defined as '''struct vnode *''' on OS X, so most variables are now defined as '''struct vnode *vp'''<br />
** All vnode operations have API calls (vnode_fsnode(vp) == vp->v_data). the struct is opaque<br />
* zvols are mostly untouched from FreeBSD, but calls wrappers to IOKit C++ layer<br />
* '''vnode_create''' needs ALL information at call time (vtype, private ptr (znode), vnode_ops), can not pre-alloc like FreeBSD<br />
** '''vnode_create''' can call both '''reclaim''' and '''fdsync''' causing locking issues. OS X port has a reclaim thread to defer reclaims.<br />
<br />
== OSv ==<br />
<br />
* Based on FreeBSD ZFS<br />
* Removes jail and geom support<br />
* vfs integration (ZPL) modified for OSv<br />
* Thread-local support uses __thread</div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1511Distributions2014-09-01T02:18:27Z<p>Ilovezfs: /* OpenZFS on OS X */</p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://www.opengroup.org/openbrand/register/brand3602.htm Mac® OS X® Mavericks, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
[https://openzfsonosx.org OpenZFS on OS X] (O3X) brings OpenZFS features to Apple's OS X.<br />
<br />
The installer [https://openzfsonosx.org/wiki/Downloads release] of OpenZFS on OS X is [[OpenZFSOnOSX|ready for use]] by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 through OS X 10.10 (Mountain Lion, Mavericks, and Yosemite). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=https://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=Features&diff=1506Features2014-08-01T06:51:14Z<p>Ilovezfs: </p>
<hr />
<div>This page describes some of the more important features and performance improvements that are part of OpenZFS.<br />
<br />
Help would be appreciated in porting features between platforms whose status is "not yet".<br />
<br />
== Feature Flags ==<br />
<br />
Originally the ZFS on-disk format was versioned with a single number which was increased whenever a new on-disk format change was introduced. This worked well when a single entity controlled the development of ZFS; however, in the more distributed development model of OpenZFS a single version number is not ideal. Every OpenZFS implementation would need to agree on every change to the on-disk format.<br />
<br />
One of the first OpenZFS projects was a new versioning system called "feature flags" which tags on-disk format changes with unique names. The system supports both completely independent format changes, as well as format changes that depend on each other. A pool's on-disk format is portable between OpenZFS implementations as long as all of the feature flags in use by the pool are supported by both implementations.<br />
<br />
All OpenZFS implementations now support feature flags and regularly port features between them to remain compatible.<br />
<br />
{| class="wikitable"<br />
|<br />
| '''illumos'''<br />
| '''FreeBSD'''<br />
| '''ZFS on Linux'''<br />
| '''OpenZFS on OS X'''<br />
|-<br />
| '''async_destroy'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''empty_bpobj'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''lz4_compress'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''multi_vdev_crash_dump'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''spacemap_histogram'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''enabled_txg'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''hole_birth'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''extensible_dataset'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''bookmarks'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|}<br />
<br />
Legend: Y = implemented, N = not implemented<br />
<br />
Legend FreeBSD: Y = implemented in -RELEASE, S = implemented in -STABLE and -CURRENT, C = implemented in -CURRENT, N = not implemented<br />
<br />
For more details see these [http://blog.delphix.com/csiden/files/2012/01/ZFS_Feature_Flags.pdf slides (Jan 2012)] and [http://illumos.org/man/5/zpool-features <tt>zpool-features(5)</tt>] (illumos) or [http://www.freebsd.org/cgi/man.cgi?query=zpool-features&sektion=7&manpath=FreeBSD+11-current <tt>zpool-features(7)</tt>] (FreeBSD).<br />
<br />
== libzfs_core ==<br />
<br />
See this [http://blog.delphix.com/matt/2012/01/17/the-future-of-libzfs/ blog post (Jan 2012)] and associated [http://blog.delphix.com/matt/files/2012/01/The_Future_of_LibZFS.pdf slides] and [http://www.youtube.com/watch?feature=player_embedded&list=PL1A94C8EECCAF7340&v=iJ0S91ygErE video] for more details.<br />
<br />
First introduced in:<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4445fffbbb1ea25fd0e9ea68b9380dd7a6709025 June 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de August 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/50b0b2d9ea604d29ed729be8fa61bb77ae3ff4e9 October 2013]<br />
|}<br />
<br />
== CLI Usability ==<br />
<br />
These are improvements to the command line interface. While the end result is a generally more friendly user interface, getting the desired behavior often required modifications to the core of ZFS.<br />
<br />
''Listed in chronological order (oldest first).''<br />
<br />
==== Pool Comment ====<br />
<br />
OpenZFS has a per-pool comment property which can be set with the <tt>zpool set</tt> command and can be read even if the pool is not imported, so it is accessible even if pool import fails.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/8704186e373c9ed74daa395ff3f7fd745396df9e Nov 2011]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/d96eb2b1538db13ee7a716ec0e1162f5735edc12 Aug 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/d96eb2b1538db13ee7a716ec0e1162f5735edc12 Aug 2012]<br />
|}<br />
<br />
==== Size Estimates for <tt>zfs send</tt> and <tt>zfs destroy</tt> ====<br />
<br />
This feature enhances OpenZFS's internal space accounting information. This new accounting information is used to provide a <tt>-n</tt> (dry-run) option for <tt>zfs send</tt> which can instantly calculate the amount of send stream data a specific <tt>zfs send</tt> command would generate. It is also used for a <tt>-n</tt> option for <tt>zfs destroy</tt> which can instantly calculate the amount of space that would be reclaimed by a specific <tt>zfs destroy</tt> command.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|}<br />
<br />
==== vdev Information in <tt>zpool list</tt> ====<br />
<br />
OpenZFS adds a <tt>-v</tt> option to the <tt>zpool list</tt> command which shows detailed sizing information about the vdevs in the pool:<br />
<br />
$ zpool list -v<br />
NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT<br />
dcenter 5.24T 3.85T 1.39T - 73% 1.00x ONLINE -<br />
mirror 556G 469G 86.7G -<br />
c2t1d0 - - - -<br />
c2t0d0 - - - -<br />
mirror 556G 493G 63.0G -<br />
c2t3d0 - - - -<br />
c2t2d0 - - - -<br />
mirror 556G 493G 62.7G -<br />
c2t5d0 - - - -<br />
c2t4d0 - - - -<br />
mirror 556G 494G 62.5G -<br />
c2t8d0 - - - -<br />
c2t6d0 - - - -<br />
mirror 556G 494G 62.2G -<br />
c2t10d0 - - - -<br />
c2t9d0 - - - -<br />
mirror 556G 494G 61.9G -<br />
c2t12d0 - - - -<br />
c2t11d0 - - - -<br />
mirror 1016G 507G 509G -<br />
c1t1d0 - - - -<br />
c1t5d0 - - - -<br />
mirror 1016G 496G 520G -<br />
c1t3d0 - - - -<br />
c1t4d0 - - - -<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4263d13f00c9691fa14620eff82abef795be0693 Jan 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/38ef930079cbb1df5de9df3c1064426dba3976b1 May 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/1bd201e70d57464fd26bf9089ea4b44fd49e4f2d Sept 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/1bd201e70d57464fd26bf9089ea4b44fd49e4f2d Sept 2012]<br />
|}<br />
<br />
==== ZFS list snapshot property alias ====<br />
<br />
Functionally identical to Solaris 11 extension <code>zfs list -t snap</code>.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/256999 Oct 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/cf81b00a73fe47fdb21586ac1cc179b734540973 Apr 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/cf81b00a73fe47fdb21586ac1cc179b734540973 Apr 2012]<br />
|}<br />
<br />
==== ZFS snapshot alias ====<br />
<br />
Functionally identical to Solaris 11 extension <code>zfs snap</code>.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/256999 Oct 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/10b75496bb0cb7a7b8146c263164adc37f1d176a Apr 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/10b75496bb0cb7a7b8146c263164adc37f1d176a Apr 2012]<br />
|}<br />
<br />
==== <tt>zfs send</tt> Progress Reporting ====<br />
<br />
OpenZFS introduces a <tt>-v</tt> option to <tt>zfs send</tt> which reports per-second information on how much data has been sent, how long it has taken, and how much data remains to be sent.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4e3c9f4489a18514e5e8caeb91d4e6db07c98415 May 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/046ff8962602e8d65b6b3fae48573513ab7e433f May 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/37abac6d559a1da8ab8e5379442f491b73998f6a Sept 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/37abac6d559a1da8ab8e5379442f491b73998f6a Sept 2012]<br />
|}<br />
<br />
==== Arbitrary Snapshot Arguments to <tt>zfs snapshot</tt> ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4445fffbbb1ea25fd0e9ea68b9380dd7a6709025 June 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de August 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de September 2013]<br />
|}<br />
<br />
== Performance ==<br />
<br />
These are significant performance improvements, often requiring substantial restructuring of the source code.<br />
<br />
''Listed in chronological order (oldest first).''<br />
<br />
==== SA based xattrs ====<br />
<br />
Improves performance of linux-style (short) xattrs by storing them in the dnode_phys_t's bonus block. (Not to be confused with [http://en.wikipedia.org/wiki/Extended_file_attributes#Solaris Solaris-style Extended Attributes] which are full-fledged files or "forks", like NTFS streams. This work could be extended to also improve the performance on illumos of small Extended Attributes whose permissions are the same as the containing file.)<br />
<br />
Requires a disk format change and is off by default until Filesystem (ZPL) Feature Flags are implemented (not to be confused with [[Features#Feature_Flags_Overview | zpool Feature Flags]]).<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet (needs additional functionality)<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/82a37189aac955c81a59a5ecc3400475adb56355 Oct 2011]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|??<br />
|}<br />
<br />
Note that SA based xattrs are [https://github.com/zfsonlinux/zfs/commit/6a7c0ccca44ad02c476a111d8f7911fc8b12fff7 no longer used on symlinks] as of Aug 2013 until an issue is resolved.<br />
<br />
==== Use the slog even with logbias=throughput ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|??<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/5d7a86d114c2706a8d14d94b71f81ad5cdf066c5 Oct 2011]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/5d7a86d114c2706a8d14d94b71f81ad5cdf066c5 Oct 2011]<br />
|}<br />
<br />
==== Asynchronous Filesystem and Volume Destruction ====<br />
<br />
Destroying a filesystem requires traversing all of its data in order to return its used blocks to the pool's free list. Before this feature the filesystem was not fully removed until all blocks had been reclaimed. If the destroy operation was interrupted by a reboot or power outage the next attempt to import the pool (probably during boot) would need to complete the destroy operation synchronously, possibly delaying a boot for long periods of time.<br />
<br />
With asynchronous destruction the filesystem's data is immediately moved to a "to be freed" list, allowing the destroy operation to complete without traversing any of the filesystem's data. A background process reclaims blocks from this "to be freed" list and is capable of resuming this process after reboots without slowing the pool import process.<br />
<br />
The new freeing algorithm also has a significant performance improvement when destroying clones. The old algorithm took time proportional to the number of blocks ''referenced'' by the clone, even if most of those blocks could not be reclaimed because they were still referenced by the clone's origin. The new algorithm only takes time proportional to the number of blocks unique to the clone.<br />
<br />
See this [http://blog.delphix.com/matt/2012/07/11/performance-of-zfs-destroy/ blog post] for more detailed performance analysis.<br />
<br />
Note: The <tt>async_destroy</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/ad135b5d644628e791c3188a6ecbd9c257961ef8 May 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/cc61ab2f133566dca51970d44cc49a4355039b5d June 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/9ae529ec5dbdc828ff8326beae58062971d74b2e Jan 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/9ae529ec5dbdc828ff8326beae58062971d74b2e Jan 2013]<br />
|}<br />
<br />
==== Reduce Number of Empty bpobjs ====<br />
<br />
Every time OpenZFS takes a snapshot it creates on-disk block pointer objects (bpobj's) to track blocks associated with that snapshot. In common use cases most of these bpobj's are empty, but the number of bpobjs per-snapshot is proportional to the number of snapshots already taken of the same filesystem or volume. When a single filesystem or volume has many (tens of thousands) snapshots these unecessary empty bpobjs can waste space and cause performance problems. OpenZFS waits to create each bpobjs until the first entry is added to it, thus eliminating the empty bpobjs.<br />
<br />
Note: The <tt>empty_bpobj</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/f17457368189aa911f774c38c1f21875a568bdca Aug 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/d9fa2f486ee98b2557e1d5ad5f1af418c663cfc8 Aug 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/753c38392ddff9d3cf140bb4d28f3bfba52c92d2 Dec 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/753c38392ddff9d3cf140bb4d28f3bfba52c92d2 Dec 2012]<br />
|}<br />
<br />
==== Single Copy ARC ====<br />
<br />
OpenZFS caches disk blocks in-memory in the adaptive replacement cache (ARC). Originally when the same disk block was accessed from different clones it was cached multiple times (one for each clone accessing the block) in case a clone planned to modify the block. With these changes OpenZFS caches at most one copy of every block unless a clone is actually modifying the block.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/9253d63df408bb48584e0b1abfcc24ef2472382e Sep 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/8e1fdec2c76a948b16ebf8e4abe2cb73a60d3477 Nov 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/1eb5bfa3dcdaecb19543d9df13131374a7a42947 Dec 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/1eb5bfa3dcdaecb19543d9df13131374a7a42947 Dec 2012]<br />
|}<br />
<br />
==== TRIM Support ====<br />
<br />
TRIM support provides the ability to pass deletes / frees through to underlying vdevs that help to ensure devices such as SSD's, which rely on receiving TRIM / UNMAP requests for sectors which are no longer needed, maintain optimal performance.<br />
<br />
The current FreeBSD implementation builds a map of regions that were freed. On every write the<br />
code consults the map and removes ranges that were freed before, but are now overwritten.<br />
<br />
Freed blocks are not TRIMed immediately, there is a low priority thread that TRIMs ranges when the time comes.<br />
<br />
Support for TRIM has been demonstrated to significantly improved the general performance of SSD in the field, eliminating the need for regular secure erase cycles on busy hosts.<br />
<br />
An alternative method, which is arguably better, and works by tracking the metaslab allocator is also in progress and can be found here:<br />
[http://cr.illumos.org/~webrev/skiselkov/zfs_unmap/ ZFS TRIM Support for illumos]<br />
<br />
There is [https://github.com/zfsonlinux/zfs/pull/1016 a pull request for ZFS On Linux] which implements FreeBSD's (Sep 2012) ZFS TRIM support.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/base?view=revision&sortby=file&revision=240868 Sep 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|not yet ported<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|not yet ported<br />
|}<br />
<br />
==== FASTWRITE Algorithm ====<br />
<br />
Improves synchronous IO performance.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/920dd524fb2997225d4b1ac180bcbc14b045fda6 Oct 2012]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/920dd524fb2997225d4b1ac180bcbc14b045fda6 Oct 2012]<br />
|}<br />
<br />
Note that a [https://github.com/ryao/zfs/commit/858822a04b4563657b2267131e90d9687d67e31b locking enhancement] is being reviewed.<br />
<br />
==== Block Freeing Performance Improvments ====<br />
<br />
Performance analysis of OpenZFS revealed that the algorithms used when freeing blocks could cause significant performance problems when freeing a large amount of blocks in a single transaction or when dealing with fragmented pools. Several performance improvements were made in this area.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/01f55e48fb4d524eaf70687728aa51b7762e2e97 Nov 2012]<br />
|[https://github.com/illumos/illumos-gate/commit/16a4a8074274d2d7cc408589cf6359f4a378c861 Feb 2013]<br />
|[https://github.com/illumos/illumos-gate/commit/9eb57f7f3fbb970d4b9b89dcd5ecf543fe2414d5 Feb 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/5d9b3f284b13ac492326e05f6ba4c00e98adf05c Nov 2012]<br />
|[https://github.com/freebsd/freebsd/commit/18e9a0422b52091035dae9d69bde9dd571a8ff7e Feb 2013]<br />
|[https://github.com/freebsd/freebsd/commit/18e9a0422b52091035dae9d69bde9dd571a8ff7e Feb 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/55d85d5a8c45c4559a4a0e675c37b0c3afb19c2f May 2013]<br />
|[https://github.com/zfsonlinux/zfs/commit/e51be06697762215dc3b679f8668987034a5a048 June 2013]<br />
|not yet<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/55d85d5a8c45c4559a4a0e675c37b0c3afb19c2f May 2013]<br />
|[https://github.com/openzfsonosx/zfs/commit/e51be06697762215dc3b679f8668987034a5a048 June 2013]<br />
|not yet<br />
|}<br />
<br />
==== nop-write ====<br />
<br />
ZFS supports end-to-end checksumming of every data block. When a cryptographically secure checksum is being used OpenZFS will compare the checksums of incoming writes to checksum of the existing on-disk data and avoid issuing any write i/o for data that has not changed. This can help performance and snapshot space usage in situations were the same files are regularly overwritten with almost-identical data (e.g. regular full-backups of large random-access files).<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/80901aea8e78a2c20751f61f01bebd1d5b5c2ba5 Nov 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/3a0bfecf052237768517963f169d0797e2978f59 Nov 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/03c6040bee6c87a9413b7da41d9f580f79a8ab62 Nov 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|not yet<br />
|}<br />
<br />
==== lz4 compression ====<br />
<br />
OpenZFS supports on-the-fly compression of all user data with a variety of compression algorithm. This feature adds support for the lz4 compression algorithm. lz4 is usually faster and compresses data better than lzjb, the old default OpenZFS compression algorithm.<br />
<br />
Note: The <tt>lz4_compress</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/a6f561b4aee75d0d028e7b36b151c8ed8a86bc76 Jan 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/c6d9dc1ad2d2e36220845b84a2d180bd97354797 Feb 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/9759c60f1a1503e48dc5c45a209c3edd5758319f Jan 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/9759c60f1a1503e48dc5c45a209c3edd5758319f Jan 2013]<br />
|}<br />
<br />
==== synctask rewrite ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/3b2aab18808792cbd248a12f1edf139b89833c13 Feb 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/13fe019870c8779bf2f5b3ff731b512cf89133ef Sept 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/13fe019870c8779bf2f5b3ff731b512cf89133ef Sept 2013]<br />
|}<br />
<br />
==== l2arc compression ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/aad02571bc59671aa3103bb070ae365f531b0b62 Jun 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/b20363fe596a7e3a55d5b62f4d3fdb482c65c47a Jun 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/3a17a7a99a1a6332d0999f9be68e2b8dc3933de1 Aug 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/3a17a7a99a1a6332d0999f9be68e2b8dc3933de1 Aug 2013]<br />
|}<br />
<br />
==== ARC Shouldn't Cache Freed Blocks ====<br />
<br />
Originally cached blocks in the ARC remained cached until they were evicted due to memory pressure, even if the underlying disk block was freed. In some workloads these freed blocks were so frequently accessed before they were freed that the ARC continued to cache them while evicting blocks which had not been freed yet. Since freed blocks could never be accessed again continuing to cache them was unnecessary. In OpenZFS ARC blocks are evicted immediately when their underlying data blocks are freed.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/6e6d5868f52089b9026785bd90257a3d3f6e5ee2 Jun 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/13d822743426263ee50bcf047ab41a1e386156a8 Jun 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/df4474f92d0b1b8d54e1914fdd56be2b75f1ff5e Jun 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/df4474f92d0b1b8d54e1914fdd56be2b75f1ff5e Jun 2013]<br />
|}<br />
<br />
==== Improve N-way mirror read performance ====<br />
<br />
Queues read requests to least busy leaf vdev in mirrors.<br />
<br />
In addition to the vdev load biasing first implemented by ZFS on Linux in July 2013, the FreeBSD October 2013 version added I/O locality and device rotational information to further enhance the performance.<br />
<br />
{| class="wikitable"<br />
!OS<br />
!Load<br />
!Load + I/O Locality & Rotational Information<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|N/A<br />
|[http://svnweb.freebsd.org/changeset/base/256956 23rd October 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/556011dbec2d10579819078559a77630fc559112 Jul 2013]<br />
|not yet ported<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|[https://github.com/openzfsonosx/zfs/commit/556011dbec2d10579819078559a77630fc559112 Jul 2013]<br />
|not yet ported<br />
|}<br />
<br />
==== Smoother Write Throttle ====<br />
<br />
The write throttle (dsl_pool_tempreserve_space() and txg_constrain_throughput()) is rewritten to produce much more consistent delays when under constant load. The new write throttle is based on the amount of dirty data, rather than guesses about future performance of the system. When there is a lot of dirty data, each transaction (e.g. write() syscall) will be delayed by the same small amount. This eliminates the "brick wall of wait" that the old write throttle could hit, causing all transactions to wait several seconds until the next txg opens. One of the keys to the new write throttle is decrementing the amount of dirty data as i/o completes, rather than at the end of spa_sync(). Note that the write throttle is only applied once the i/o scheduler is issuing the maximum number of outstanding async writes. See the block comments in dsl_pool.c and above dmu_tx_delay() for more details.<br />
<br />
The ZFS i/o scheduler (vdev_queue.c) now divides i/os into 5 classes: sync read, sync write, async read, async write, and scrub/resilver. The scheduler issues a number of concurrent i/os from each class to the device. Once a class has been selected, an i/o is selected from this class using either an elevator algorithem (async, scrub classes) or FIFO (sync classes). The number of concurrent async write i/os is tuned dynamically based on i/o load, to achieve good sync i/o latency when there is not a high load of writes, and good write throughput when there is. See the block comment in vdev_queue.c for more details.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/69962b5647e4a8b9b14998733b765925381b727e Aug 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/258632 Nov 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/e8b96c6007bf97cdf34869c1ffbd0ce753873a3d Dec 2013]<br />
|-<br />
|'''OpenZFS on OS X'''<br />
|not yet<br />
|}<br />
<br />
== Dataset Properties ==<br />
<br />
These are new filesystem, volume, and snapshot properties which can be accessed with the <tt>zfs(1)</tt> command's <tt>get</tt> subcommand. See the <tt>zfs(1)</tt> manpage for your distribution for more details on each of these properties.<br />
<br />
{| class="wikitable"<br />
!Property<br />
!Description<br />
!illumos<br />
!FreeBSD<br />
!ZFS on Linux<br />
!OpenZFS on OS X<br />
|-<br />
|<tt>refcompressratio</tt><br />
|The compression ratio acheived for all data referenced by (but not necessarily unique to) a snapshot, filesystem, or volume, expressed as a multiplier.<br />
|[https://github.com/illumos/illumos-gate/commit/187d6ac08adc31ea6868bde0cfbbb288826254e8 Jun 2011]<br />
|[https://github.com/freebsd/freebsd/commit/333e34b938a2b5e7b036e02b36408880b415109c Jun 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/77999e804fff35782ab4b578d2cecf064c54a841 Aug 2012]<br />
|[https://github.com/openzfsonosx/zfs/commit/77999e804fff35782ab4b578d2cecf064c54a841 Aug 2012]<br />
|-<br />
|<tt>clones</tt><br />
|For snapshots, this property is a comma-separated list of filesystems or volumes which are clones of this snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/openzfsonosx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>written</tt><br />
|The amount of referenced space written to this dataset since the previous snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/openzfsonosx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>written@''<snap>''</tt><br />
|The amount of referenced space written to this dataset since the specified snapshot. This is the space referenced by this dataset, but not referenced by the specified snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/openzfsonosx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>logicalused</tt>, <tt>logicalreferenced</tt><br />
|The amount of space used or referenced, before taking into account compression.<br />
|[https://github.com/illumos/illumos-gate/commit/77372cb0f35e8d3615ca2e16044f033397e88e21 Feb 2013]<br />
|[https://github.com/freebsd/freebsd/commit/2bed8f5691b7572d6f31bfc68e9f762a938af863 Mar 2013]<br />
|not yet<br />
|not yet<br />
|-<br />
|}</div>Ilovezfshttps://openzfs.org/w/index.php?title=Main_Page&diff=1505Main Page2014-07-20T09:57:04Z<p>Ilovezfs: </p>
<hr />
<div><div id="mf-home"><br />
= Welcome to OpenZFS =<br />
__NOTOC__<br />
<br />
OpenZFS was [[announcement | announced in September 2013]] as the truly '''open source''' successor to the [[History | ZFS project]]. Our community '''brings together developers''' from the illumos, FreeBSD, Linux, and OS X [[distributions | platforms]], and a wide range of [[companies]] that build products on top of OpenZFS. <br />
<br />
OpenZFS is an '''outstanding storage platform''' that encompasses the functionality of traditional filesystems, volume managers, and more, with consistent reliability, functionality and performance across all [[distributions]]: <br />
<br />
{| class="wikitable"<br />
| '''illumos'''<br />
|[http://wiki.illumos.org/display/illumos/ZFS Webpage]<br />
|[https://github.com/illumos/illumos-gate/ GitHub]<br />
|-<br />
| '''FreeBSD'''<br />
|[https://wiki.freebsd.org/ZFS Webpage]<br />
|[https://github.com/freebsd/freebsd/ GitHub] <br />
|-<br />
| '''ZFS on Linux'''<br />
|[http://zfsonlinux.org/ Webpage]<br />
|[https://github.com/zfsonlinux/zfs/ GitHub]<br />
|-<br />
| '''OpenZFS on OS X'''<br />
|[https://openzfsonosx.org/ Webpage]<br />
|[https://github.com/openzfsonosx/ GitHub]<br />
|}<br />
<br />
== Goals ==<br />
<br />
The high-level goals of OpenZFS are:<br />
* to '''raise awareness''' of the quality, utility, and availability of open source implementations of ZFS<br />
* to encourage '''open communication''' about ongoing efforts to improve open source ZFS<br />
* to ensure '''consistent reliability''', functionality, and performance of all distributions of ZFS.<br />
<br />
The main technical goal of OpenZFS is '''easier sharing of code''' between platforms. Strategies include:<br />
* creating a platform-independent [[mailing list]] for developers to review ZFS code and architecture changes from all platforms<br />
* smoothing the [[illumos integration process]]<br />
* making it easy to run both ztest and the ZFS test suite (TestRunner or STF based) on each platform<br />
* [[Reduce code differences | reducing code differences]] between the platforms.<br />
<br />
== What's new? ==<br />
<br />
September: Submit talk proposals for the [[OpenZFS Developer Summit 2014]] by September 8th.<br />
<br />
June: New blog post from Matt Ahrens: [http://blog.delphix.com/matt/2014/06/06/zfs-stripe-width/ RAIDZ stripe width, or: How I Learned to Stop Worrying and Love RAIDZ]<br />
<br />
May: [https://www.youtube.com/watch?v=FaS2Svis3dA video] of Matt Ahrens' talk at dotScale: what's wrong with storage?<br />
<br />
May: Slides and [http://www.youtube.com/playlist?list=PLaUVvul17xScyhIYmGjaNaGSWI49qyf6K video] posted from the very successful [[Publications#2014_OpenZFS_European_Conference | OpenZFS European Conference]].<br />
<br />
March: [http://www.slideshare.net/MatthewAhrens/openzfs-asiabsdcon Slides] and associated [http://www.open-zfs.org/w/images/0/0f/AsiaBSDcon_paper.pdf paper] from OpenZFS keynote at AsiaBSDcon. [http://www.bsdnow.tv/episodes/2014_05_14-bsdcanned_goods Audio recording] and [http://www.slideshare.net/MatthewAhrens/openzfs-at-asiabsdcon-freebsd-developer-summit slides] from FreeBSD Developer Summit.<br />
<br />
November 2013: [http://www.beginningwithi.com/2013/11/18/openzfs-developer-summit/ video] and [[Publications#2013_OpenZFS_Developer_Summit | slides]] from the [[OpenZFS Developer Summit 2013]].<br />
<br />
== Site orientation ==<br />
* [[FAQ]]<br />
* How to [[participate]]<br />
* [[Companies]] with products that are based on OpenZFS<br />
* Download [[distributions]] that include OpenZFS<br />
* [[Events]] – the forthcoming [[OpenZFS Developer Summit]] and more<br />
* [[Developer resources]]<br />
** [[mailing list]]<br />
** [[illumos integration process]]<br />
** [[contributors]]<br />
** [[platform code differences]]<br />
** [[OpenZFS Office Hours]]<br />
** implementation<br />
*** [[Documentation/ZfsSend | ZFS send]]<br />
*** [[Documentation/Administrative Commands | administrative commands]]<br />
* [[Documentation]]<br />
** [[features]]<br />
** [[Publications| publications and conference talks]]<br />
** [[history]] – from ZFS to OpenZFS<br />
*** OpenZFS launch [[announcement]] – September 2013<br />
** [[performance tuning]]<br />
* [[Projects]]<br />
** [[reduce code differences]]<br />
** the [[Projects/ZFS Channel Programs | ZFS Channel Programs]] (ZCP) proposal<br />
* [[About OpenZFS]]<br />
<br />
[http://open-zfs.org/w/index.php?title=Special%3AAllPages&from=&to=&namespace=0&hideredirects=1 All main pages] (alphabetical order) …<br />
<br />
== Twitter ==<br />
<br />
<html><br />
<a class="twitter-timeline" href="https://twitter.com/OpenZFS" data-widget-id="378639669799288832">Tweets by @OpenZFS</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script><br />
<br />
<span><br />
<br><br />
<a href="https://twitter.com/openzfs" class="twitter-follow-button" data-show-count="true">Follow @openzfs</a><br />
<br><br />
<a href="https://twitter.com/share" class="twitter-share-button" data-via="OpenZFS">Tweet</a><br />
</span><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br />
</html></div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1440Distributions2014-05-25T05:25:34Z<p>Ilovezfs: </p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://www.opengroup.org/openbrand/register/brand3602.htm Mac® OS X® Mavericks, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
[https://openzfsonosx.org OpenZFS on OS X] (O3X) brings OpenZFS features to Apple's OS X.<br />
<br />
The second installer [https://openzfsonosx.org/wiki/Downloads release] of OpenZFS on OS X is [[OpenZFSOnOSX|ready for use]] by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 through OS X 10.9 (Mountain Lion and Mavericks). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=https://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1439Distributions2014-05-25T05:24:38Z<p>Ilovezfs: </p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://www.opengroup.org/openbrand/register/brand3602.htm Mac® OS X® Mavericks, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
[https://openzfsonosx.org OpenZFS on OS X] (O3X) brings OpenZFS features to Apple's OS X.<br />
<br />
The second installer [http://o3x.org/wiki/Downloads release] of OpenZFS on OS X is [[OpenZFSOnOSX|ready for use]] by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 through OS X 10.9 (Mountain Lion and Mavericks). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=https://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1438OpenZFSOnOSX2014-05-25T05:23:50Z<p>Ilovezfs: </p>
<hr />
<div>[[file:o3x-logo.png | link=https://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [https://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 and 10.9 (Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* O3X wiki https://openzfsonosx.org/wiki or http://o3x.org/wiki<br />
<br />
Support is available on<br />
<br />
* O3X forums https://openzfsonosx.org/forum or http://o3x.org/forum<br />
<br />
* #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[https://openzfsonosx.org/wiki/Downloads Download] the most recent installer from the [https://openzfsonosx.org/wiki O3X wiki] and follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_the_official_release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [https://openzfsonosx.org/wiki/Install#Installing_from_source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_a_development_build_DMG installing a development build DMG] on the wiki.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=History&diff=1437History2014-05-25T05:20:54Z<p>Ilovezfs: </p>
<hr />
<div><onlyinclude>[http://en.wikipedia.org/wiki/ZFS ZFS] was originally developed by [http://en.wikipedia.org/wiki/Sun_Microsystems Sun Microsystems] for the Solaris operating system. The source code for ZFS was released under the [http://opensource.org/licenses/CDDL-1.0 CDDL] as part of the [http://en.wikipedia.org/wiki/Opensolaris OpenSolaris] operating system, and was subsequently ported to other [[distributions | platforms]].<br />
<br />
The illumos project was founded as an open source fork of OpenSolaris.<br />
<br />
'''OpenZFS is the truly open source successor to the ZFS project'''. Development thrives as a part of illumos, which has added many [[Features|features and performance improvements]]. New OpenZFS features and fixes are regularly pulled in from illumos, to all ports to other platforms, and vice versa.</onlyinclude><br />
<br />
== Milestones ==<br />
* 2001 – Development of ZFS started with two engineers at [http://en.wikipedia.org/wiki/Sun_Microsystems Sun Microsystems].<br />
* 2005 – Source code was released as part of [http://en.wikipedia.org/wiki/Opensolaris OpenSolaris].<br />
* 2006 – Development of [http://zfs-on-fuse.blogspot.com/ FUSE port] for Linux started.<br />
* 2007 – Apple started porting ZFS to Mac OS X.<br />
* 2008 – A port to [https://wiki.freebsd.org/ZFS FreeBSD] was released as part of FreeBSD 7.0.<br />
* 2008 – Development of a [http://zfsonlinux.org/ native Linux port] started.<br />
* 2009 – Apple's ZFS project closed. The [http://maczfs.org MacZFS] project continued to develop the code.<br />
* 2010 – OpenSolaris was discontinued, the last release was forked. Further development of ZFS on Solaris was no longer open source.<br />
* 2010 – [http://wiki.illumos.org/ illumos] was founded as the [http://wiki.illumos.org/display/illumos/illumos+FAQs truly open source] successor to OpenSolaris. Development of ZFS continued in the open. Ports of ZFS to other platforms continued porting upstream changes from illumos.<br />
* 2012 – [[Features#Feature_Flags_Overview | Feature flags]] were introduced to replace legacy on-disk version numbers, enabling easier distributed evolution of the ZFS on-disk format to support new features.<br />
* 2013 – [https://openzfsonosx.org/ OpenZFS on OS X] ports ZFS on Linux to OS X.<br />
* 2013 – The first stable release of ZFS on Linux.<br />
* 2013 – Official [[announcement]] of the OpenZFS project.<br />
<br />
== Effects of the fork (2010 to date) ==<br />
<br />
OpenZFS-oriented developments have been completely separate from ZFS in Oracle Solaris. <br />
<br />
As Oracle's code is not open source, the OpenZFS [https://github.com/zfsonlinux/zfs/issues/1225#issuecomment-12576515 wish to maintain compatibility with Solaris ZFS pool versions 29–35] is difficult to realize.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1436OpenZFSOnOSX2014-05-25T05:17:59Z<p>Ilovezfs: </p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 and 10.9 (Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* O3X wiki https://openzfsonosx.org/wiki or http://o3x.org/wiki<br />
<br />
Support is available on<br />
<br />
* O3X forums https://openzfsonosx.org/forum or http://o3x.org/forum<br />
<br />
* #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[https://openzfsonosx.org/wiki/Downloads Download] the most recent installer from the [https://openzfsonosx.org/wiki O3X wiki] and follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_the_official_release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [https://openzfsonosx.org/wiki/Install#Installing_from_source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_a_development_build_DMG installing a development build DMG] on the wiki.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1435OpenZFSOnOSX2014-05-25T05:16:18Z<p>Ilovezfs: </p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 and 10.9 (Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* O3X wiki https://openzfsonosx.org/wiki or http://o3x.org/wiki<br />
<br />
Support is available on<br />
<br />
* O3X forums https://openzfsonosx.org/forum or http://o3x.org/forum<br />
<br />
* #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[https://openzfsonosx.org/wiki/Downloads Download] the most recent installer from the [https://openzfsonosx.org/wiki O3X wiki] and follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_the_Official_Release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [https://openzfsonosx.org/wiki/Install#Installing_from_source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_a_development_build_DMG installing a development build DMG] on the wiki.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1434OpenZFSOnOSX2014-05-25T05:14:28Z<p>Ilovezfs: </p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 and 10.9 (Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* O3X wiki https://openzfsonosx.org/wiki or http://o3x.org/wiki<br />
<br />
Support is available on<br />
<br />
* O3X forums https://openzfsonosx.org/forum or http://o3x.org/forum<br />
<br />
* #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[https://openzfsonosx.org/wiki/Downloads Download] the most recent installer from the [https://openzfsonosx.org/wiki O3X wiki] and follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_the_Official_Release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [https://openzfsonosx.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_a_Development_Build_DMG installing a development build DMG] on the wiki.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1433OpenZFSOnOSX2014-05-25T05:12:44Z<p>Ilovezfs: /* Support and Documentation */</p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 and 10.9 (Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* O3X wiki http://openzfsonosx.org/wiki or https://o3x.org/wiki<br />
<br />
Support is available on<br />
<br />
* O3X forums https://openzfsonosx.org/forum or https://o3x.org/forum<br />
<br />
* #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[https://openzfsonosx.org/wiki/Downloads Download] the most recent installer from the [https://openzfsonosx.org/wiki O3X wiki] and follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_the_Official_Release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [https://openzfsonosx.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_a_Development_Build_DMG installing a development build DMG] on the wiki.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1432OpenZFSOnOSX2014-05-25T05:11:20Z<p>Ilovezfs: </p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 and 10.9 (Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* O3X wiki http://o3x.org/wiki or http://openzfsonosx.org/wiki<br />
<br />
Support is available on<br />
<br />
* O3X forums https://openzfsonosx.org/forum or https://o3x.org/forum<br />
<br />
* #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[https://openzfsonosx.org/wiki/Downloads Download] the most recent installer from the [https://openzfsonosx.org/wiki O3X wiki] and follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_the_Official_Release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [https://openzfsonosx.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the instructions for [https://openzfsonosx.org/wiki/Install#Installing_a_Development_Build_DMG installing a development build DMG] on the wiki.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1431Distributions2014-05-25T05:08:29Z<p>Ilovezfs: /* OpenZFS on OS X */</p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://www.opengroup.org/openbrand/register/brand3602.htm Mac® OS X® Mavericks, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
[http://openzfsonosx.org OpenZFS on OS X] (O3X) brings OpenZFS features to Apple's OS X.<br />
<br />
The second installer [http://o3x.org/wiki/Downloads release] of OpenZFS on OS X is [[OpenZFSOnOSX|ready for use]] by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.8 through OS X 10.9 (Mountain Lion and Mavericks). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=History&diff=1430History2014-05-25T05:06:34Z<p>Ilovezfs: </p>
<hr />
<div><onlyinclude>[http://en.wikipedia.org/wiki/ZFS ZFS] was originally developed by [http://en.wikipedia.org/wiki/Sun_Microsystems Sun Microsystems] for the Solaris operating system. The source code for ZFS was released under the [http://opensource.org/licenses/CDDL-1.0 CDDL] as part of the [http://en.wikipedia.org/wiki/Opensolaris OpenSolaris] operating system, and was subsequently ported to other [[distributions | platforms]].<br />
<br />
The illumos project was founded as an open source fork of OpenSolaris.<br />
<br />
'''OpenZFS is the truly open source successor to the ZFS project'''. Development thrives as a part of illumos, which has added many [[Features|features and performance improvements]]. New OpenZFS features and fixes are regularly pulled in from illumos, to all ports to other platforms, and vice versa.</onlyinclude><br />
<br />
== Milestones ==<br />
* 2001 – Development of ZFS started with two engineers at [http://en.wikipedia.org/wiki/Sun_Microsystems Sun Microsystems].<br />
* 2005 – Source code was released as part of [http://en.wikipedia.org/wiki/Opensolaris OpenSolaris].<br />
* 2006 – Development of [http://zfs-on-fuse.blogspot.com/ FUSE port] for Linux started.<br />
* 2007 – Apple started porting ZFS to Mac OS X.<br />
* 2008 – A port to [https://wiki.freebsd.org/ZFS FreeBSD] was released as part of FreeBSD 7.0.<br />
* 2008 – Development of a [http://zfsonlinux.org/ native Linux port] started.<br />
* 2009 – Apple's ZFS project closed. The [http://maczfs.org MacZFS] project continued to develop the code.<br />
* 2010 – OpenSolaris was discontinued, the last release was forked. Further development of ZFS on Solaris was no longer open source.<br />
* 2010 – [http://wiki.illumos.org/ illumos] was founded as the [http://wiki.illumos.org/display/illumos/illumos+FAQs truly open source] successor to OpenSolaris. Development of ZFS continued in the open. Ports of ZFS to other platforms continued porting upstream changes from illumos.<br />
* 2012 – [[Features#Feature_Flags_Overview | Feature flags]] were introduced to replace legacy on-disk version numbers, enabling easier distributed evolution of the ZFS on-disk format to support new features.<br />
* 2013 – [https://openzfsonosx.org/ OpenZFS on OS X] ports ZFS on Linux to OS X.<br />
* 2013 – The first stable release of ZFS on Linux.<br />
* 2013 – Official [[announcement]] of the OpenZFS project.<br />
<br />
== Effects of the fork (2010 to date) ==<br />
<br />
OpenZFS-oriented developments have been completely separate from ZFS in Oracle Solaris. <br />
<br />
As Oracle's code is not open source, the OpenZFS [https://github.com/zfsonlinux/zfs/issues/1225#issuecomment-12576515 wish to maintain compatibility with Solaris ZFS pool versions 29–35] is difficult to realise.</div>Ilovezfshttps://openzfs.org/w/index.php?title=History&diff=1429History2014-05-25T05:05:33Z<p>Ilovezfs: </p>
<hr />
<div><onlyinclude>[http://en.wikipedia.org/wiki/ZFS ZFS] was originally developed by [http://en.wikipedia.org/wiki/Sun_Microsystems Sun Microsystems] for the Solaris operating system. The source code for ZFS was released under the [http://opensource.org/licenses/CDDL-1.0 CDDL] as part of the [http://en.wikipedia.org/wiki/Opensolaris OpenSolaris] operating system, and was subsequently ported to other [[distributions | platforms]].<br />
<br />
The illumos project was founded as an open source fork of OpenSolaris.<br />
<br />
'''OpenZFS is the truly open source successor to the ZFS project'''. Development thrives as a part of illumos, which has added many [[Features|features and performance improvements]]. New OpenZFS features and fixes are regularly pulled in from illumos, to all ports to other platforms, and vice versa.</onlyinclude><br />
<br />
== Milestones ==<br />
* 2001 – Development of ZFS started with two engineers at [http://en.wikipedia.org/wiki/Sun_Microsystems Sun Microsystems].<br />
* 2005 – Source code was released as part of [http://en.wikipedia.org/wiki/Opensolaris OpenSolaris].<br />
* 2006 – Development of [http://zfs-on-fuse.blogspot.com/ FUSE port] for Linux started.<br />
* 2007 – Apple started porting ZFS to Mac OS X.<br />
* 2008 – A port to [https://wiki.freebsd.org/ZFS FreeBSD] was released as part of FreeBSD 7.0.<br />
* 2008 – Development of a [http://zfsonlinux.org/ native Linux port] started.<br />
* 2009 – Apple's ZFS project closed. The [http://maczfs.org MacZFS] project continued to develop the code.<br />
* 2010 – OpenSolaris was discontinued, the last release was forked. Further development of ZFS on Solaris was no longer open source.<br />
* 2010 – [http://wiki.illumos.org/ illumos] was founded as the [http://wiki.illumos.org/display/illumos/illumos+FAQs truly open source] successor to OpenSolaris. Development of ZFS continued in the open. Ports of ZFS to other platforms continued porting upstream changes from illumos.<br />
* 2012 – [[Features#Feature_Flags_Overview | Feature flags]] were introduced to replace legacy on-disk version numbers, enabling easier distributed evolution of the ZFS on-disk format to support new features.<br />
* 2013 – [https://github.com/openzfsonosx/zfs OpenZFS on OS X] ports ZFS on Linux to OS X.<br />
* 2013 – The first stable release of ZFS on Linux.<br />
* 2013 – Official [[announcement]] of the OpenZFS project.<br />
<br />
== Effects of the fork (2010 to date) ==<br />
<br />
OpenZFS-oriented developments have been completely separate from ZFS in Oracle Solaris. <br />
<br />
As Oracle's code is not open source, the OpenZFS [https://github.com/zfsonlinux/zfs/issues/1225#issuecomment-12576515 wish to maintain compatibility with Solaris ZFS pool versions 29–35] is difficult to realise.</div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1401Distributions2014-03-25T07:08:01Z<p>Ilovezfs: /* OpenZFS on OS X */</p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://www.opengroup.org/openbrand/register/brand3602.htm Mac® OS X® Mavericks, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
[http://openzfsonosx.org OpenZFS on OS X] (O3X) brings OpenZFS features to Apple's OS X. Formerly it was known as "ZFS-OSX."<br />
<br />
The first installer [http://o3x.org/wiki/Downloads release] of OpenZFS on OS X is [[OpenZFSOnOSX|ready for use]] by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1400Distributions2014-03-25T07:05:50Z<p>Ilovezfs: /* Darwin */</p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://www.opengroup.org/openbrand/register/brand3602.htm Mac® OS X® Mavericks, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
[http://openzfsonosx.org OpenZFS on OS X] (O3X) brings OpenZFS features to Apple's OS X. Formerly it was known as "ZFS-OSX" and "MacZFS development build."<br />
<br />
The first installer [http://o3x.org/wiki/Downloads release] of OpenZFS on OS X is [[OpenZFSOnOSX|ready for use]] by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=Main_Page&diff=1399Main Page2014-03-25T07:01:10Z<p>Ilovezfs: </p>
<hr />
<div><div id="mf-home"><br />
= Welcome to OpenZFS =<br />
__NOTOC__<br />
<br />
OpenZFS was [[announcement | announced in September 2013]] as the truly '''open source''' successor to the [[History | ZFS project]]. Our community '''brings together developers''' from the illumos, FreeBSD, Linux, and OS X [[distributions | platforms]], and a wide range of [[companies]] that build products on top of OpenZFS. <br />
<br />
OpenZFS is an '''outstanding storage platform''' that encompasses the functionality of traditional filesystems, volume managers, and more, with consistent reliability, functionality and performance across all [[distributions]]: <br />
<br />
{| class="wikitable"<br />
| '''illumos'''<br />
|[http://wiki.illumos.org/display/illumos/ZFS Webpage]<br />
|[https://github.com/illumos/illumos-gate/ GitHub]<br />
|-<br />
| '''FreeBSD'''<br />
|[https://wiki.freebsd.org/ZFS Webpage]<br />
|[https://github.com/freebsd/freebsd/ GitHub] <br />
|-<br />
| '''ZFS on Linux'''<br />
|[http://zfsonlinux.org/ Webpage]<br />
|[https://github.com/zfsonlinux/zfs/ GitHub]<br />
|-<br />
| '''OpenZFS on OS X'''<br />
|[http://openzfsonosx.org/ Webpage]<br />
|[https://github.com/openzfsonosx/ GitHub]<br />
|}<br />
<br />
== Goals ==<br />
<br />
The high-level goals of OpenZFS are:<br />
* to '''raise awareness''' of the quality, utility, and availability of open source implementations of ZFS<br />
* to encourage '''open communication''' about ongoing efforts to improve open source ZFS<br />
* to ensure '''consistent reliability''', functionality, and performance of all distributions of ZFS.<br />
<br />
The main technical goal of OpenZFS is '''easier sharing of code''' between platforms. Strategies include:<br />
* creating a platform-independent [[mailing list]] for developers to review ZFS code and architecture changes from all platforms<br />
* smoothing the [[illumos integration process]]<br />
* making it easy to run both ztest and the ZFS test suite (TestRunner or STF based) on each platform<br />
* [[Reduce code differences | reducing code differences]] between the platforms.<br />
<br />
== What's new? ==<br />
<br />
March: [[User:mahrens | Matt Ahrens]] will be delivering a keynote presentation at [http://2014.asiabsdcon.org/timetable.html.en#K1 AsiaBSDcon] in Tokyo. With additional ZFS-focused talks by Michael Dexter, Dru Lavigne, and Kris Moore.<br />
<br />
February: Adam Leventhal wrote about the new OpenZFS write throttle in a [http://blog.delphix.com/ahl/2014/openzfs-write-throttle/ blog post].<br />
<br />
January: [[User:Behlendorf | Brian Behlendorf]], lead engineer for [http://zfsonlinux.org ZFS on Linux], hosted [[OpenZFS Office Hours]]. View the [https://www.youtube.com/watch?v=GvCqOyDa1W8&list=PLaUVvul17xSegxJjny2Gz85IgIyq9wu8n video recording].<br />
<br />
November: [http://www.beginningwithi.com/2013/11/18/openzfs-developer-summit/ video] and [[Publications#2013_OpenZFS_Developer_Summit | slides]] from the [[OpenZFS Developer Summit]].<br />
<br />
== Site orientation ==<br />
* [[FAQ]]<br />
* How to [[participate]]<br />
* [[Companies]] with products that are based on OpenZFS<br />
* Download [[distributions]] that include OpenZFS<br />
* [[Events]] – the forthcoming [[OpenZFS Developer Summit]] and more<br />
* [[Developer resources]]<br />
** [[mailing list]]<br />
** [[illumos integration process]]<br />
** [[contributors]]<br />
** [[platform code differences]]<br />
** [[OpenZFS Office Hours]]<br />
** implementation<br />
*** [[Documentation/ZfsSend | ZFS send]]<br />
*** [[Documentation/Administrative Commands | administrative commands]]<br />
* [[Documentation]]<br />
** [[features]]<br />
** [[Publications| publications and conference talks]]<br />
** [[history]] – from ZFS to OpenZFS<br />
*** OpenZFS launch [[announcement]] – September 2013<br />
** [[performance tuning]]<br />
* [[Projects]]<br />
** [[reduce code differences]]<br />
** the [[Projects/ZFS Channel Programs | ZFS Channel Programs]] (ZCP) proposal<br />
* [[About OpenZFS]]<br />
<br />
[http://open-zfs.org/w/index.php?title=Special%3AAllPages&from=&to=&namespace=0&hideredirects=1 All main pages] (alphabetical order) …<br />
<br />
== Twitter ==<br />
<br />
<html><br />
<a class="twitter-timeline" href="https://twitter.com/OpenZFS" data-widget-id="378639669799288832">Tweets by @OpenZFS</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script><br />
<br />
<span><br />
<br><br />
<a href="https://twitter.com/openzfs" class="twitter-follow-button" data-show-count="true">Follow @openzfs</a><br />
<br><br />
<a href="https://twitter.com/share" class="twitter-share-button" data-via="OpenZFS">Tweet</a><br />
</span><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br />
</html></div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1397OpenZFSOnOSX2014-03-20T08:56:20Z<p>Ilovezfs: </p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* O3X wiki http://o3x.org/wiki or http://openzfsonosx.org/wiki<br />
<br />
Support is available on<br />
<br />
* O3X forums http://o3x.org/forum or http://openzfsonosx.org/forum<br />
<br />
* #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow the instructions for [http://o3x.org/wiki/Install#Installing_the_Official_Release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the instructions for [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG installing a development build DMG] on the wiki.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1395Distributions2014-03-16T06:23:31Z<p>Ilovezfs: /* OpenZFS on OS X */</p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://blog.opengroup.org/2012/07/25/apple-registers-mac-os-x-10-8-mountain-lion-to-the-unix-03-standard/ Mac® OS X® Mountain Lion, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
[http://openzfsonosx.org OpenZFS on OS X] (O3X) brings OpenZFS features to Apple's OS X. Formerly it was known as "ZFS-OSX" and "MacZFS development build."<br />
<br />
The first installer [http://o3x.org/wiki/Downloads release] of OpenZFS on OS X is [[OpenZFSOnOSX|ready for use]] by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1394Distributions2014-03-16T06:21:47Z<p>Ilovezfs: /* OpenZFS on OS X */</p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://blog.opengroup.org/2012/07/25/apple-registers-mac-os-x-10-8-mountain-lion-to-the-unix-03-standard/ Mac® OS X® Mountain Lion, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
[http://openzfsonosx.org OpenZFS on OS X] (O3X) brings OpenZFS features to Apple's OS X. Formerly it was known as "ZFS-OSX" and "MacZFS development build."<br />
<br />
The first installer [http://o3x.org/wiki/Downloads release] of OpenZFS on OS X is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1393OpenZFSOnOSX2014-03-16T06:14:27Z<p>Ilovezfs: /* To test without building */</p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* the O3X wiki http://o3x.org/wiki or http://openzfsonosx.org/wiki<br />
<br />
Support is available on<br />
<br />
* the O3X forums http://o3x.org/forum or http://openzfsonosx.org/forum<br />
<br />
* the #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow the instructions for [http://o3x.org/wiki/Install#Installing_the_Official_Release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the instructions for [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG installing a development build DMG] on the wiki.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1392OpenZFSOnOSX2014-03-16T06:13:32Z<p>Ilovezfs: /* To use the official release */</p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* the O3X wiki http://o3x.org/wiki or http://openzfsonosx.org/wiki<br />
<br />
Support is available on<br />
<br />
* the O3X forums http://o3x.org/forum or http://openzfsonosx.org/forum<br />
<br />
* the #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow the instructions for [http://o3x.org/wiki/Install#Installing_the_Official_Release installing the official release].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG instructions] on the wiki for using a development build DMG.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1391OpenZFSOnOSX2014-03-16T06:11:43Z<p>Ilovezfs: </p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* the O3X wiki http://o3x.org/wiki or http://openzfsonosx.org/wiki<br />
<br />
Support is available on<br />
<br />
* the O3X forums http://o3x.org/forum or http://openzfsonosx.org/forum<br />
<br />
* the #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow these [http://o3x.org/wiki/Install#Installing_the_Official_Release instructions].<br />
<br />
== To begin testing the most recent build ==<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
== To test without building ==<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG instructions] on the wiki for using a development build DMG.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
== Suggested focus areas for testers ==<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
== Notes ==<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1390OpenZFSOnOSX2014-03-16T06:10:48Z<p>Ilovezfs: </p>
<hr />
<div>[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
The first installer release of [http://openzfsonosx.org OpenZFS on OS X] is ready for use by people who are comfortable with administering ZFS from the Terminal or who are willing to learn to do so. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* the O3X wiki http://o3x.org/wiki or http://openzfsonosx.org/wiki<br />
<br />
Support is available on<br />
<br />
* the O3X forums http://o3x.org/forum or http://openzfsonosx.org/forum<br />
<br />
* the #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow these [http://o3x.org/wiki/Install#Installing_the_Official_Release instructions].<br />
<br />
=== To begin testing the most recent build ===<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
=== To test without building ===<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG instructions] on the wiki for using a development build DMG.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
=== Suggested focus areas for testers ===<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
=== Notes ===<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1389OpenZFSOnOSX2014-03-16T06:05:14Z<p>Ilovezfs: /* OpenZFS on OS X (O3X) */</p>
<hr />
<div>== OpenZFS on OS X (O3X) ==<br />
<br />
[[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
[http://openzfsonosx.org OpenZFS on OS X] is in beta and an installer is ready for use by people who are happy to use Terminal. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* the O3X wiki http://o3x.org/wiki or http://openzfsonosx.org/wiki<br />
<br />
Support is available on<br />
<br />
* the O3X forums http://o3x.org/forum or http://openzfsonosx.org/forum<br />
<br />
* the #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow these [http://o3x.org/wiki/Install#Installing_the_Official_Release instructions].<br />
<br />
=== To begin testing the most recent build ===<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
=== To test without building ===<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG instructions] on the wiki for using a development build DMG.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
=== Suggested focus areas for testers ===<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
=== Notes ===<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1388OpenZFSOnOSX2014-03-16T06:03:47Z<p>Ilovezfs: </p>
<hr />
<div>== OpenZFS on OS X (O3X) ==<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
[http://openzfsonosx.org OpenZFS on OS X] is in beta and an installer is ready for use by people who are happy to use Terminal. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== Support and Documentation ==<br />
<br />
Documentation is available on<br />
<br />
* the O3X wiki http://o3x.org/wiki or http://openzfsonosx.org/wiki<br />
<br />
Support is available on<br />
<br />
* the O3X forums http://o3x.org/forum or http://openzfsonosx.org/forum<br />
<br />
* the #openzfs-osx IRC channel irc://chat.freenode.net/#openzfs-osx<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow these [http://o3x.org/wiki/Install#Installing_the_Official_Release instructions].<br />
<br />
=== To begin testing the most recent build ===<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
=== To test without building ===<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG instructions] on the wiki for using a development build DMG.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask on IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
=== Suggested focus areas for testers ===<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
=== Notes ===<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you have MacZFS 74 or ZEVO installed: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding with installing O3X.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1387OpenZFSOnOSX2014-03-16T05:57:25Z<p>Ilovezfs: /* Suggested focus areas for testers */</p>
<hr />
<div>== OpenZFS on OS X (O3X) ==<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
[http://openzfsonosx.org OpenZFS on OS X] is in beta and an installer is ready for use by people who are happy to use Terminal. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow these [http://o3x.org/wiki/Install#Installing_the_Official_Release instructions].<br />
<br />
=== To begin testing the most recent build ===<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
=== To test without building ===<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG instructions] on the wiki for using a development build DMG.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask in IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
=== Suggested focus areas for testers ===<br />
<br />
* Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
* Identifying any abnormal behavior when used with older pools.<br />
<br />
* Finding incompatibilities with 3rd party software.<br />
<br />
=== Notes ===<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you normally use MacZFS 74 or ZEVO: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1386OpenZFSOnOSX2014-03-16T05:56:27Z<p>Ilovezfs: /* To use the official release */</p>
<hr />
<div>== OpenZFS on OS X (O3X) ==<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
[http://openzfsonosx.org OpenZFS on OS X] is in beta and an installer is ready for use by people who are happy to use Terminal. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow these [http://o3x.org/wiki/Install#Installing_the_Official_Release instructions].<br />
<br />
=== To begin testing the most recent build ===<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
=== To test without building ===<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG instructions] on the wiki for using a development build DMG.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask in IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
=== Suggested focus areas for testers ===<br />
<br />
Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
Identifying any abnormal behavior when used with older pools.<br />
<br />
Finding incompatibilities with 3rd party software. <br />
<br />
=== Notes ===<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you normally use MacZFS 74 or ZEVO: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1385OpenZFSOnOSX2014-03-16T05:55:37Z<p>Ilovezfs: /* To test without building */</p>
<hr />
<div>== OpenZFS on OS X (O3X) ==<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
[http://openzfsonosx.org OpenZFS on OS X] is in beta and an installer is ready for use by people who are happy to use Terminal. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow the [http://o3x.org/wiki/Install#Installing_the_Official_Release instructions].<br />
<br />
=== To begin testing the most recent build ===<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
=== To test without building ===<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. Follow the [http://o3x.org/wiki/Install#Installing_a_Development_Build_DMG instructions] on the wiki for using a development build DMG.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask in IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
=== Suggested focus areas for testers ===<br />
<br />
Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
Identifying any abnormal behavior when used with older pools.<br />
<br />
Finding incompatibilities with 3rd party software. <br />
<br />
=== Notes ===<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you normally use MacZFS 74 or ZEVO: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding.</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1384OpenZFSOnOSX2014-03-16T05:52:37Z<p>Ilovezfs: </p>
<hr />
<div>== OpenZFS on OS X (O3X) ==<br />
<br />
'''OpenZFS on OS X brings OpenZFS features to Apple's OS X'''. <br />
<br />
[http://openzfsonosx.org OpenZFS on OS X] is in beta and an installer is ready for use by people who are happy to use Terminal. It's compatible with OS X 10.6 through OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
== To use the official release ==<br />
<br />
[http://o3x.org/wiki/Downloads Download] the most recent installer from the [http://o3x.org/wiki O3X wiki] and follow the [http://o3x.org/wiki/Install#Installing_the_Official_Release instructions].<br />
<br />
=== To begin testing the most recent build ===<br />
<br />
The O3X wiki has instructions for [http://o3x.org/wiki/Install#Installing_from_Source installing from source].<br />
<br />
=== To test without building ===<br />
<br />
Development Build DMGs are added to http://lundman.net/ftp/osx.zfs/ – download the most recent signed .dmg file if you are on OS X 10.9, unsigned if you are on an earlier version of OS X. The disk image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation.<br />
<br />
These development build DMGs sometimes will not include the very most recent commits. If in doubt, please ask in IRC: <br />
<br />
* irc://chat.freenode.net/#openzfs-osx<br />
<br />
=== Suggested focus areas for testers ===<br />
<br />
Evaluating performance of various pool configurations as well as performance on older pools.<br />
<br />
Identifying any abnormal behavior when used with older pools.<br />
<br />
Finding incompatibilities with 3rd party software. <br />
<br />
=== Notes ===<br />
<br />
When using beta software with data of significant value, be especially diligent with your backup procedures. Remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you normally use MacZFS 74 or ZEVO: <br />
<br />
* you must uninstall that software before testing O3X (scripts for doing so are included with the O3X release download).<br />
* you must uninstall O3X before reverting to ZEVO or MacZFS 74 (an uninstaller script for O3X is also included with the release download).<br />
<br />
Either unload the older kernel extensions or reboot before proceeding.</div>Ilovezfshttps://openzfs.org/w/index.php?title=Distributions&diff=1383Distributions2014-03-16T05:19:00Z<p>Ilovezfs: /* OpenZFS on OS X */</p>
<hr />
<div>Open source distributions of OpenZFS are available for the following open source platforms. <br />
<br />
(For commercial products, see [[companies]].)<br />
<br />
== Darwin ==<br />
<br />
{|cellpadding="15"<br />
|[[File:UNIX-based.jpg | link=http://www.opensource.apple.com]]<br />
|<br />
At the core of [http://blog.opengroup.org/2012/07/25/apple-registers-mac-os-x-10-8-mountain-lion-to-the-unix-03-standard/ Mac® OS X® Mountain Lion, which is certified to The Open Group UNIX® 03 standard], are [http://opensource.apple.com Apple® open source] [http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin] technologies. <br />
|}<br />
<br />
=== OpenZFS on OS X ===<br />
{|cellpadding="20" | width="100%"<br />
|<br />
OpenZFS on OS X (O3X) brings OpenZFS features to Apple's OS X. Previously known as "ZFS-OSX" and "MacZFS development build". [http://openzfsonosx.org http://openzfsonosx.org/]<br />
<br />
[https://github.com/zfs-osx O3X] is a well-developed beta that is [[OpenZFSOnOSX | ready for testing]] by people who are happy to use Terminal. It's designed for use with Mac OS X 10.6 – OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks). <br />
<br />
O3X is a port of ZFS on Linux®. <br />
| align="right" valign="text-top"| [[file:o3x-logo.png | link=http://openzfsonosx.org]]<br />
|}<br />
<br />
== FreeBSD® ==<br />
<br />
{|cellpadding="15"<br />
|[[file:FreeBSD-logo.png | 120px | link=http://www.freebsd.org/]]<br />
|<br />
A full general purpose operating system with several specialized distributions.<br />
|}<br />
<br />
=== Debian® GNU/kFreeBSD ===<br />
{|cellpadding="25" | width="100%"<br />
|<br />
[https://wiki.debian.org/Debian_GNU/kFreeBSD Debian® GNU/kFreeBSD] is a general purpose GNU distribution for amd64/i386 that uses the FreeBSD kernel, which provides an OpenZFS implementation.<br />
<br />
An official Debian release, still using GNU libc and with ninety percent of the same software packages available.<br />
<br />
The ''wheezy'' stable release:<br />
* can dual-boot 9.0 (default) or 8.3 kernels of FreeBSD<br />
* uses pool version 28 (deduplication, raidz3, removable log devices)<br />
* lacks support for ''ashift='', and important development tools like DTrace<br />
* installer supports creation of pools, installing to them, and booting directly from them with GRUB2.<br />
<br />
The ''testing'' release will be updated with new FreeBSD kernel releases, gaining many OpenZFS enhancements, including support for lz4 compression.<br />
| align="right" valign="text-top" | [[file:Debian-openlogo-100.jpg | 80px | link=https://wiki.debian.org/Debian_GNU/kFreeBSD]]<br />
|}<br />
<br />
=== FreeBSD ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freebsd.org/ FreeBSD] is a general purpose server operating system. Versions 8.4 and 9.2 are OpenZFS; prior versions lack the associated feature set.<br />
* [http://www.freebsd.org/releases/ Download]<br />
* browse ZFS source code in [https://github.com/freebsd/freebsd/tree/master/sys/cddl/contrib/opensolaris/uts/common/fs/zfs GitHub] or [http://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ websvn] or [http://nxr.netbsd.org/search?q=&project=src-freebsd OpenGrok].<br />
| align="right" valign="text-top" | [[file:FreeBSD-logo.png |120px|link=http://freebsd.org]]<br />
|}<br />
<br />
=== FreeNAS® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.freenas.org/ FreeNAS] is NAS appliance software.<br />
<br />
[http://www.ixsystems.com/storage/ix/truenas/ Commercial support] is available for sister product TrueNAS from iXsystems.<br />
| align="right" valign="text-top" | [[file:FreeNAS_Shark_Transparent_on_dark.png |120px|link=http://www.freenas.org/]]<br />
|}<br />
<br />
=== PC-BSD® ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.pcbsd.org/ PC-BSD] is a workstation/desktop operating system.<br />
<br />
[http://www.ixsystems.com/support-center/ix/software/pc-bsd.html Commercial support] is available from iXsystems.<br />
| align="right" valign="text-top" | [[file:Pcbsd-logo.png|120px|link=http://www.pcbsd.org/]]<br />
|}<br />
<br />
== illumos ==<br />
{|cellpadding="15"<br />
|[[file:BigHighResPhoenixLogotypeRGB.png |120px|link=http://illumos.org]]<br />
|<br />
The [http://www.illumos.org illumos] codebase is the foundation for various distributions – comparable to the relationship between the Linux kernel and Linux distributions.<br />
The codebase originated as a fork from the last release of OpenSolaris.<br />
* Browse ZFS source code in [http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs opengrok] or [https://github.com/illumos/illumos-gate/tree/master/usr/src/uts/common/fs/zfs GitHub].<br />
|}<br />
<br />
=== OmniOS ===<br />
{|cellpadding="15" | width="100%"<br />
|<br />
[http://omnios.omniti.com/ OmniOS] is a general purpose server operating system. <br />
<br />
[http://omniti.com/does/omnios Commercial support] is available from [http://omniti.com/ OmniTI].<br />
<br />
* [http://omnios.omniti.com/wiki.php/Installation Download]<br />
* [https://github.com/omniti-labs/illumos-omnios/tree/master/usr/src/uts/common/fs/zfs source code]<br />
| align="right" valign="text-top"| [[file:OmniOS_logo.png |100px|link=http://omnios.omniti.com/]]<br />
|}<br />
<br />
=== OpenIndiana ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://openindiana.org/ OpenIndiana] (OI) is a general purpose server operating system.<br />
<br />
* [http://openindiana.org/download/ Download]<br />
* [https://hg.openindiana.org/ source code]<br />
| align="right" valign="text-top" | [[file:OpenIndiana_logo_x1200.png |120px|link=http://openindiana.org/]]<br />
|}<br />
<br />
=== SmartOS™ ===<br />
{|cellpadding="8" | width="100%"<br />
|<br />
[http://smartos.org SmartOS] is a specialised type 1 hypervisor platform that is lean enough to run entirely in memory and powerful enough to run as much as you want to throw at it. Provisioning is blindingly fast, thanks to zones and ZFS file system creation. SmartOS is a fundamental component of the [http://www.joyent.com/products/private-cloud Joyent® SmartDataCenter™] (SDC) product.<br />
* [http://wiki.smartos.org/display/DOC/Download+SmartOS Download]<br />
* [https://github.com/joyent/smartos-live source code]<br />
| align="right" valign="text-top" | [[File:Smartos-stacked-blue.png | 120px | link= http://smartos.org]]<br />
|}<br />
<br />
== Linux ==<br />
<br />
Since its inception in the 1990s, the Linux operating system has become the most widely used software in the world.<br />
<br />
=== Gentoo ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.gentoo.org Gentoo] provides first-party [[#ZFS_on_Linux | ZFS on Linux]] packages to itself and its derivatives. <br />
<br />
Gentoo can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience.<br />
<br />
Derivatives include: <br />
| align="right" valign="text-top" | [[file:Gblend.png |80px|link=http://www.gentoo.org/]]<br />
|-<br />
|<br />
* [http://www.funtoo.org Funtoo Linux], which features native UTF-8 support enabled by default, a git-based, distributed Portage Tree and funtoo overlay, an enhanced Portage with more compact mini-manifest tree, automated imports of new Gentoo changes every 12 hours, GPT/GUID boot support and streamlined boot configuration, enhanced network configuration, up-to-date stable and current Funtoo stages, all built using Funtoo's Metro build tool<br />
| align="right" valign="text-top"| [[file:Funtoo.png |80px|link=http://www.funtoo.org]]<br />
|-<br />
|<br />
* [http://www.pentoo.ch Pentoo], a security-focused livecd<br />
| [[file:PentooLogo.jpeg |120px|link=http://www.pentoo.ch]]<br />
|-<br />
|<br />
* [http://www.sabayon.org Sabayon], which emanates substantially from Gentoo's testing branch. <br />
| [[file:Sabayon-logo.png |120px|link=http://www.sabayon.org]]<br />
|}<br />
<br />
=== ZFS on Linux ===<br />
{|cellpadding="10" | width="100%"<br />
|<br />
[http://www.zfsonlinux.org ZFS on Linux] provides self-building packages for Debian, Fedora, RHEL/CentOS/SL, Ubuntu and build instructions for several other distributions. <br />
* Implemented in the kernel <br />
* maintained in a code repository that is independent from the mainline kernel.<br />
| align="right" valign="text-top"| [[file:zfs-linux.png |100px|link=http://zfsonlinux.org/]]<br />
|}<br />
<br />
== OSv ==<br />
<br />
{|cellpadding="15"<br />
|<br />
[http://osv.io OSv] is a new operating system designed for the cloud. It only runs virtualized, and the only file system it supports is ZFS.<br />
* Implemented in the kernel <br />
* ZFS codebase forked from FreeBSD; but planning to move to open-zfs.org upstream ASAP.<br />
|[[file:osv.png |100px|link=http://osv.io/]]<br />
|}<br />
<br />
----<br />
<center>Distribution logos used with permission. All trademarks are the property of their respective owners.</center></div>Ilovezfshttps://openzfs.org/w/index.php?title=MacZFS&diff=1382MacZFS2014-03-16T05:12:45Z<p>Ilovezfs: Ilovezfs moved page MacZFS to OpenZFSOnOSX</p>
<hr />
<div>#REDIRECT [[OpenZFSOnOSX]]</div>Ilovezfshttps://openzfs.org/w/index.php?title=OpenZFSOnOSX&diff=1381OpenZFSOnOSX2014-03-16T05:12:45Z<p>Ilovezfs: Ilovezfs moved page MacZFS to OpenZFSOnOSX</p>
<hr />
<div>== MacZFS ==<br />
<br />
{|cellpadding="20" <br />
| [[file:MacZFS-logo.png | link=http://maczfs.org]]<br />
| http://maczfs.org<br />
The April 2013 release of MacZFS is stable, but lacks the feature set that's associated with OpenZFS …<br />
|}<br />
<br />
== OpenZFS for OS X (ZFS-OSX) ==<br />
<br />
'''ZFS-OSX brings OpenZFS features to MacZFS'''. <br />
<br />
[http://openzfsonosx.org OpenZFS for OS X] is a well-developed alpha that is ready for testing by people who are happy to use Terminal. It's designed for use with Mac OS X 10.6 – OS X 10.9 (Snow Leopard, Lion, Mountain Lion and Mavericks).<br />
<br />
=== To begin testing the most recent build ===<br />
<br />
[http://zerobsd.tumblr.com/post/62586498252/os-x-with-zfs ZeroBSD | OS X with ZFS] offers an approach to obtaining the most recent code, building from that code and installing the built software. <br />
<br />
=== To test without building ===<br />
<br />
Disk images are ocasionally added to http://lundman.net/ftp/osx.zfs/ – aim for the most recent .dmg file. The image will contain built software – binaries, kernel extensions (KEXTs) and so on – that may be used with or without installation. <br />
<br />
These images are not designed to include the most recent fixes or enhancements. If in doubt, please ask in IRC: <br />
<br />
* irc://chat.freenode.net/#mac-zfs<br />
<br />
=== Suggested focus areas for testers ===<br />
<br />
A ZFS file system for your home directory<br />
* where ~ is the root of that file system. <br />
<br />
A ZFS file system containing multiple home directories. <br />
<br />
=== Notes ===<br />
<br />
ZFS-OSX is [https://github.com/zfs-osx/zfs/issues?direction=asc&sort=created&state=open not yet feature-complete]. <br />
<br />
Alpha software should not be used with data that is of significant value. Be thorough with your backups and please remember that ZFS alone is not a substitute for a good backup strategy.<br />
<br />
If you're limited to Leopard, or if you require the most stable MacZFS at this time, then instead of ZFS-OSX: consider relatively old version 74.3 of MacZFS.<br />
<br />
If you normally use MacZFS 74.3 or ZEVO: <br />
<br />
* you must uninstall that software before testing ZFS-OSX<br />
* you must uninstall ZFS-OSX before reverting to ZEVO or MacZFS 74.3<br />
<br />
– and [http://zevo.getgreenbytes.com/forum/viewtopic.php?p=5441#p5441 a restart of the Mac may be recommended].</div>Ilovezfshttps://openzfs.org/w/index.php?title=Features&diff=1380Features2014-03-16T05:07:07Z<p>Ilovezfs: /* synctask rewrite */</p>
<hr />
<div>This page describes some of the more important features and performance improvements that are part of OpenZFS.<br />
<br />
Help would be appreciated in porting features between platforms whose status is "not yet".<br />
<br />
== Feature Flags ==<br />
<br />
Originally the ZFS on-disk format was versioned with a single number which was increased whenever a new on-disk format change was introduced. This worked well when a single entity controlled the development of ZFS; however, in the more distributed development model of OpenZFS a single version number is not ideal. Every OpenZFS implementation would need to agree on every change to the on-disk format.<br />
<br />
One of the first OpenZFS projects was a new versioning system called "feature flags" which tags on-disk format changes with unique names. The system supports both completely independent format changes, as well as format changes that depend on each other. A pool's on-disk format is portable between OpenZFS implementations as long as all of the feature flags in use by the pool are supported by both implementations.<br />
<br />
All OpenZFS implementations now support feature flags and regularly port features between them to remain compatible.<br />
<br />
{| class="wikitable"<br />
|<br />
| '''illumos'''<br />
| '''FreeBSD'''<br />
| '''ZFS on Linux'''<br />
| '''ZFS-OSX'''<br />
|-<br />
| '''async_destroy'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''empty_bpobj'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''lz4_compress'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''multi_vdev_crash_dump'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''spacemap_histogram'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''enabled_txg'''<br />
| Y<br />
| C<br />
| N<br />
| N<br />
|-<br />
| '''hole_birth'''<br />
| Y<br />
| C<br />
| N<br />
| N<br />
|-<br />
| '''extensible_dataset'''<br />
| Y<br />
| C<br />
| N<br />
| N<br />
|-<br />
| '''bookmarks'''<br />
| Y<br />
| C<br />
| N<br />
| N<br />
|}<br />
<br />
Legend: Y = implemented, N = not implemented<br />
<br />
Legend FreeBSD: Y = implemented in -RELEASE, S = implemented in -STABLE, C = implemented in -CURRENT, N = not implemented<br />
<br />
For more details see these [http://blog.delphix.com/csiden/files/2012/01/ZFS_Feature_Flags.pdf slides (Jan 2012)] and [http://illumos.org/man/5/zpool-features <tt>zpool-features(5)</tt>] (illumos) or [http://www.freebsd.org/cgi/man.cgi?query=zpool-features&sektion=7&manpath=FreeBSD+11-current <tt>zpool-features(7)</tt>] (FreeBSD).<br />
<br />
== libzfs_core ==<br />
<br />
See this [http://blog.delphix.com/matt/2012/01/17/the-future-of-libzfs/ blog post (Jan 2012)] and associated [http://blog.delphix.com/matt/files/2012/01/The_Future_of_LibZFS.pdf slides] and [http://www.youtube.com/watch?feature=player_embedded&list=PL1A94C8EECCAF7340&v=iJ0S91ygErE video] for more details.<br />
<br />
First introduced in:<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4445fffbbb1ea25fd0e9ea68b9380dd7a6709025 June 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de August 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/50b0b2d9ea604d29ed729be8fa61bb77ae3ff4e9 October 2013]<br />
|}<br />
<br />
== CLI Usability ==<br />
<br />
These are improvements to the command line interface. While the end result is a generally more friendly user interface, getting the desired behavior often required modifications to the core of ZFS.<br />
<br />
''Listed in chronological order (oldest first).''<br />
<br />
==== Pool Comment ====<br />
<br />
OpenZFS has a per-pool comment property which can be set with the <tt>zpool set</tt> command and can be read even if the pool is not imported, so it is accessible even if pool import fails.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/8704186e373c9ed74daa395ff3f7fd745396df9e Nov 2011]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/d96eb2b1538db13ee7a716ec0e1162f5735edc12 Aug 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/d96eb2b1538db13ee7a716ec0e1162f5735edc12 Aug 2012]<br />
|}<br />
<br />
==== Size Estimates for <tt>zfs send</tt> and <tt>zfs destroy</tt> ====<br />
<br />
This feature enhances OpenZFS's internal space accounting information. This new accounting information is used to provide a <tt>-n</tt> (dry-run) option for <tt>zfs send</tt> which can instantly calculate the amount of send stream data a specific <tt>zfs send</tt> command would generate. It is also used for a <tt>-n</tt> option for <tt>zfs destroy</tt> which can instantly calculate the amount of space that would be reclaimed by a specific <tt>zfs destroy</tt> command.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|}<br />
<br />
==== vdev Information in <tt>zpool list</tt> ====<br />
<br />
OpenZFS adds a <tt>-v</tt> option to the <tt>zpool list</tt> command which shows detailed sizing information about the vdevs in the pool:<br />
<br />
$ zpool list -v<br />
NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT<br />
dcenter 5.24T 3.85T 1.39T - 73% 1.00x ONLINE -<br />
mirror 556G 469G 86.7G -<br />
c2t1d0 - - - -<br />
c2t0d0 - - - -<br />
mirror 556G 493G 63.0G -<br />
c2t3d0 - - - -<br />
c2t2d0 - - - -<br />
mirror 556G 493G 62.7G -<br />
c2t5d0 - - - -<br />
c2t4d0 - - - -<br />
mirror 556G 494G 62.5G -<br />
c2t8d0 - - - -<br />
c2t6d0 - - - -<br />
mirror 556G 494G 62.2G -<br />
c2t10d0 - - - -<br />
c2t9d0 - - - -<br />
mirror 556G 494G 61.9G -<br />
c2t12d0 - - - -<br />
c2t11d0 - - - -<br />
mirror 1016G 507G 509G -<br />
c1t1d0 - - - -<br />
c1t5d0 - - - -<br />
mirror 1016G 496G 520G -<br />
c1t3d0 - - - -<br />
c1t4d0 - - - -<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4263d13f00c9691fa14620eff82abef795be0693 Jan 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/38ef930079cbb1df5de9df3c1064426dba3976b1 May 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/1bd201e70d57464fd26bf9089ea4b44fd49e4f2d Sept 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/1bd201e70d57464fd26bf9089ea4b44fd49e4f2d Sept 2012]<br />
|}<br />
<br />
==== ZFS list snapshot property alias ====<br />
<br />
Functionally identical to Solaris 11 extension <code>zfs list -t snap</code>.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/256999 Oct 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/cf81b00a73fe47fdb21586ac1cc179b734540973 Apr 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/cf81b00a73fe47fdb21586ac1cc179b734540973 Apr 2012]<br />
|}<br />
<br />
==== ZFS snapshot alias ====<br />
<br />
Functionally identical to Solaris 11 extension <code>zfs snap</code>.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/256999 Oct 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/10b75496bb0cb7a7b8146c263164adc37f1d176a Apr 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/10b75496bb0cb7a7b8146c263164adc37f1d176a Apr 2012]<br />
|}<br />
<br />
==== <tt>zfs send</tt> Progress Reporting ====<br />
<br />
OpenZFS introduces a <tt>-v</tt> option to <tt>zfs send</tt> which reports per-second information on how much data has been sent, how long it has taken, and how much data remains to be sent.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4e3c9f4489a18514e5e8caeb91d4e6db07c98415 May 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/046ff8962602e8d65b6b3fae48573513ab7e433f May 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/37abac6d559a1da8ab8e5379442f491b73998f6a Sept 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/37abac6d559a1da8ab8e5379442f491b73998f6a Sept 2012]<br />
|}<br />
<br />
==== Arbitrary Snapshot Arguments to <tt>zfs snapshot</tt> ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4445fffbbb1ea25fd0e9ea68b9380dd7a6709025 June 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de August 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de September 2013]<br />
|}<br />
<br />
== Performance ==<br />
<br />
These are significant performance improvements, often requiring substantial restructuring of the source code.<br />
<br />
''Listed in chronological order (oldest first).''<br />
<br />
==== SA based xattrs ====<br />
<br />
Improves performance of linux-style (short) xattrs by storing them in the dnode_phys_t's bonus block. (Not to be confused with [http://en.wikipedia.org/wiki/Extended_file_attributes#Solaris Solaris-style Extended Attributes] which are full-fledged files or "forks", like NTFS streams. This work could be extended to also improve the performance on illumos of small Extended Attributes whose permissions are the same as the containing file.)<br />
<br />
Requires a disk format change and is off by default until Filesystem (ZPL) Feature Flags are implemented (not to be confused with [[Features#Feature_Flags_Overview | zpool Feature Flags]]).<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet (needs additional functionality)<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/82a37189aac955c81a59a5ecc3400475adb56355 Oct 2011]<br />
|-<br />
|'''ZFS-OSX'''<br />
|??<br />
|}<br />
<br />
Note that SA based xattrs are [https://github.com/zfsonlinux/zfs/commit/6a7c0ccca44ad02c476a111d8f7911fc8b12fff7 no longer used on symlinks] as of Aug 2013 until an issue is resolved.<br />
<br />
==== Use the slog even with logbias=throughput ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|??<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/5d7a86d114c2706a8d14d94b71f81ad5cdf066c5 Oct 2011]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/5d7a86d114c2706a8d14d94b71f81ad5cdf066c5 Oct 2011]<br />
|}<br />
<br />
==== Asynchronous Filesystem and Volume Destruction ====<br />
<br />
Destroying a filesystem requires traversing all of its data in order to return its used blocks to the pool's free list. Before this feature the filesystem was not fully removed until all blocks had been reclaimed. If the destroy operation was interrupted by a reboot or power outage the next attempt to import the pool (probably during boot) would need to complete the destroy operation synchronously, possibly delaying a boot for long periods of time.<br />
<br />
With asynchronous destruction the filesystem's data is immediately moved to a "to be freed" list, allowing the destroy operation to complete without traversing any of the filesystem's data. A background process reclaims blocks from this "to be freed" list and is capable of resuming this process after reboots without slowing the pool import process.<br />
<br />
The new freeing algorithm also has a significant performance improvement when destroying clones. The old algorithm took time proportional to the number of blocks ''referenced'' by the clone, even if most of those blocks could not be reclaimed because they were still referenced by the clone's origin. The new algorithm only takes time proportional to the number of blocks unique to the clone.<br />
<br />
See this [http://blog.delphix.com/matt/2012/07/11/performance-of-zfs-destroy/ blog post] for more detailed performance analysis.<br />
<br />
Note: The <tt>async_destroy</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/ad135b5d644628e791c3188a6ecbd9c257961ef8 May 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/cc61ab2f133566dca51970d44cc49a4355039b5d June 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/9ae529ec5dbdc828ff8326beae58062971d74b2e Jan 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/9ae529ec5dbdc828ff8326beae58062971d74b2e Jan 2013]<br />
|}<br />
<br />
==== Reduce Number of Empty bpobjs ====<br />
<br />
Every time OpenZFS takes a snapshot it creates on-disk block pointer objects (bpobj's) to track blocks associated with that snapshot. In common use cases most of these bpobj's are empty, but the number of bpobjs per-snapshot is proportional to the number of snapshots already taken of the same filesystem or volume. When a single filesystem or volume has many (tens of thousands) snapshots these unecessary empty bpobjs can waste space and cause performance problems. OpenZFS waits to create each bpobjs until the first entry is added to it, thus eliminating the empty bpobjs.<br />
<br />
Note: The <tt>empty_bpobj</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/f17457368189aa911f774c38c1f21875a568bdca Aug 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/d9fa2f486ee98b2557e1d5ad5f1af418c663cfc8 Aug 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/753c38392ddff9d3cf140bb4d28f3bfba52c92d2 Dec 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/753c38392ddff9d3cf140bb4d28f3bfba52c92d2 Dec 2012]<br />
|}<br />
<br />
==== Single Copy ARC ====<br />
<br />
OpenZFS caches disk blocks in-memory in the adaptive replacement cache (ARC). Originally when the same disk block was accessed from different clones it was cached multiple times (one for each clone accessing the block) in case a clone planned to modify the block. With these changes OpenZFS caches at most one copy of every block unless a clone is actually modifying the block.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/9253d63df408bb48584e0b1abfcc24ef2472382e Sep 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/8e1fdec2c76a948b16ebf8e4abe2cb73a60d3477 Nov 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/1eb5bfa3dcdaecb19543d9df13131374a7a42947 Dec 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/1eb5bfa3dcdaecb19543d9df13131374a7a42947 Dec 2012]<br />
|}<br />
<br />
==== TRIM Support ====<br />
<br />
TRIM support provides the ability to pass deletes / frees through to underlying vdevs that help to ensure devices such as SSD's, which rely on receiving TRIM / UNMAP requests for sectors which are no longer needed, maintain optimal performance.<br />
<br />
The current FreeBSD implementation builds a map of regions that were freed. On every write the<br />
code consults the map and removes ranges that were freed before, but are now overwritten.<br />
<br />
Freed blocks are not TRIMed immediately, there is a low priority thread that TRIMs ranges when the time comes.<br />
<br />
Support for TRIM has been demonstrated to significantly improved the general performance of SSD in the field, eliminating the need for regular secure erase cycles on busy hosts.<br />
<br />
An alternative method, which is arguably better, and works by tracking the metaslab allocator is also in progress and can be found here:<br />
[http://cr.illumos.org/~webrev/skiselkov/zfs_unmap/ ZFS TRIM Support for illumos]<br />
<br />
There is [https://github.com/zfsonlinux/zfs/pull/1016 a pull request for ZFS On Linux] which implements FreeBSD's (Sep 2012) ZFS TRIM support.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/base?view=revision&sortby=file&revision=240868 Sep 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|not yet ported<br />
|-<br />
|'''ZFS-OSX'''<br />
|not yet ported<br />
|}<br />
<br />
==== FASTWRITE Algorithm ====<br />
<br />
Improves synchronous IO performance.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/920dd524fb2997225d4b1ac180bcbc14b045fda6 Oct 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/920dd524fb2997225d4b1ac180bcbc14b045fda6 Oct 2012]<br />
|}<br />
<br />
Note that a [https://github.com/ryao/zfs/commit/858822a04b4563657b2267131e90d9687d67e31b locking enhancement] is being reviewed.<br />
<br />
==== Block Freeing Performance Improvments ====<br />
<br />
Performance analysis of OpenZFS revealed that the algorithms used when freeing blocks could cause significant performance problems when freeing a large amount of blocks in a single transaction or when dealing with fragmented pools. Several performance improvements were made in this area.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/01f55e48fb4d524eaf70687728aa51b7762e2e97 Nov 2012]<br />
|[https://github.com/illumos/illumos-gate/commit/16a4a8074274d2d7cc408589cf6359f4a378c861 Feb 2013]<br />
|[https://github.com/illumos/illumos-gate/commit/9eb57f7f3fbb970d4b9b89dcd5ecf543fe2414d5 Feb 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/5d9b3f284b13ac492326e05f6ba4c00e98adf05c Nov 2012]<br />
|[https://github.com/freebsd/freebsd/commit/18e9a0422b52091035dae9d69bde9dd571a8ff7e Feb 2013]<br />
|[https://github.com/freebsd/freebsd/commit/18e9a0422b52091035dae9d69bde9dd571a8ff7e Feb 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/55d85d5a8c45c4559a4a0e675c37b0c3afb19c2f May 2013]<br />
|[https://github.com/zfsonlinux/zfs/commit/e51be06697762215dc3b679f8668987034a5a048 June 2013]<br />
|not yet<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/55d85d5a8c45c4559a4a0e675c37b0c3afb19c2f May 2013]<br />
|[https://github.com/zfs-osx/zfs/commit/e51be06697762215dc3b679f8668987034a5a048 June 2013]<br />
|not yet<br />
|}<br />
<br />
==== nop-write ====<br />
<br />
ZFS supports end-to-end checksumming of every data block. When a cryptographically secure checksum is being used OpenZFS will compare the checksums of incoming writes to checksum of the existing on-disk data and avoid issuing any write i/o for data that has not changed. This can help performance and snapshot space usage in situations were the same files are regularly overwritten with almost-identical data (e.g. regular full-backups of large random-access files).<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/80901aea8e78a2c20751f61f01bebd1d5b5c2ba5 Nov 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/3a0bfecf052237768517963f169d0797e2978f59 Nov 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|Not yet (as of Sept. 13, 2013)<br />
|-<br />
|'''ZFS-OSX'''<br />
|not yet<br />
|}<br />
<br />
==== lz4 compression ====<br />
<br />
OpenZFS supports on-the-fly compression of all user data with a variety of compression algorithm. This feature adds support for the lz4 compression algorithm. lz4 is usually faster and compresses data better than lzjb, the old default OpenZFS compression algorithm.<br />
<br />
Note: The <tt>lz4_compress</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/a6f561b4aee75d0d028e7b36b151c8ed8a86bc76 Jan 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/c6d9dc1ad2d2e36220845b84a2d180bd97354797 Feb 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/9759c60f1a1503e48dc5c45a209c3edd5758319f Jan 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/9759c60f1a1503e48dc5c45a209c3edd5758319f Jan 2013]<br />
|}<br />
<br />
==== synctask rewrite ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/3b2aab18808792cbd248a12f1edf139b89833c13 Feb 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/13fe019870c8779bf2f5b3ff731b512cf89133ef Sept 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/13fe019870c8779bf2f5b3ff731b512cf89133ef Sept 2013]<br />
|}<br />
<br />
==== l2arc compression ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/aad02571bc59671aa3103bb070ae365f531b0b62 Jun 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/b20363fe596a7e3a55d5b62f4d3fdb482c65c47a Jun 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/3a17a7a99a1a6332d0999f9be68e2b8dc3933de1 Aug 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/3a17a7a99a1a6332d0999f9be68e2b8dc3933de1 Aug 2013]<br />
|}<br />
<br />
==== ARC Shouldn't Cache Freed Blocks ====<br />
<br />
Originally cached blocks in the ARC remained cached until they were evicted due to memory pressure, even if the underlying disk block was freed. In some workloads these freed blocks were so frequently accessed before they were freed that the ARC continued to cache them while evicting blocks which had not been freed yet. Since freed blocks could never be accessed again continuing to cache them was unnecessary. In OpenZFS ARC blocks are evicted immediately when their underlying data blocks are freed.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/6e6d5868f52089b9026785bd90257a3d3f6e5ee2 Jun 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/13d822743426263ee50bcf047ab41a1e386156a8 Jun 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/df4474f92d0b1b8d54e1914fdd56be2b75f1ff5e Jun 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/df4474f92d0b1b8d54e1914fdd56be2b75f1ff5e Jun 2013]<br />
|}<br />
<br />
==== Improve N-way mirror read performance ====<br />
<br />
Queues read requests to least busy leaf vdev in mirrors.<br />
<br />
In addition to the vdev load biasing first implemented by ZFS on Linux in July 2013, the FreeBSD October 2013 version added I/O locality and device rotational information to further enhance the performance.<br />
<br />
{| class="wikitable"<br />
!OS<br />
!Load<br />
!Load + I/O Locality & Rotational Information<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|N/A<br />
|[http://svnweb.freebsd.org/changeset/base/256956 23rd October 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/556011dbec2d10579819078559a77630fc559112 Jul 2013]<br />
|not yet ported<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/556011dbec2d10579819078559a77630fc559112 Jul 2013]<br />
|not yet ported<br />
|}<br />
<br />
==== Smoother Write Throttle ====<br />
<br />
The write throttle (dsl_pool_tempreserve_space() and txg_constrain_throughput()) is rewritten to produce much more consistent delays when under constant load. The new write throttle is based on the amount of dirty data, rather than guesses about future performance of the system. When there is a lot of dirty data, each transaction (e.g. write() syscall) will be delayed by the same small amount. This eliminates the "brick wall of wait" that the old write throttle could hit, causing all transactions to wait several seconds until the next txg opens. One of the keys to the new write throttle is decrementing the amount of dirty data as i/o completes, rather than at the end of spa_sync(). Note that the write throttle is only applied once the i/o scheduler is issuing the maximum number of outstanding async writes. See the block comments in dsl_pool.c and above dmu_tx_delay() for more details.<br />
<br />
The ZFS i/o scheduler (vdev_queue.c) now divides i/os into 5 classes: sync read, sync write, async read, async write, and scrub/resilver. The scheduler issues a number of concurrent i/os from each class to the device. Once a class has been selected, an i/o is selected from this class using either an elevator algorithem (async, scrub classes) or FIFO (sync classes). The number of concurrent async write i/os is tuned dynamically based on i/o load, to achieve good sync i/o latency when there is not a high load of writes, and good write throughput when there is. See the block comment in vdev_queue.c for more details.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/69962b5647e4a8b9b14998733b765925381b727e Aug 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/258632 Nov 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|not yet<br />
|-<br />
|'''ZFS-OSX'''<br />
|not yet<br />
|}<br />
<br />
== Dataset Properties ==<br />
<br />
These are new filesystem, volume, and snapshot properties which can be accessed with the <tt>zfs(1)</tt> command's <tt>get</tt> subcommand. See the <tt>zfs(1)</tt> manpage for your distribution for more details on each of these properties.<br />
<br />
{| class="wikitable"<br />
!Property<br />
!Description<br />
!illumos<br />
!FreeBSD<br />
!ZFS on Linux<br />
!ZFS-OSX<br />
|-<br />
|<tt>refcompressratio</tt><br />
|The compression ratio acheived for all data referenced by (but not necessarily unique to) a snapshot, filesystem, or volume, expressed as a multiplier.<br />
|[https://github.com/illumos/illumos-gate/commit/187d6ac08adc31ea6868bde0cfbbb288826254e8 Jun 2011]<br />
|[https://github.com/freebsd/freebsd/commit/333e34b938a2b5e7b036e02b36408880b415109c Jun 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/77999e804fff35782ab4b578d2cecf064c54a841 Aug 2012]<br />
|[https://github.com/zfs-osx/zfs/commit/77999e804fff35782ab4b578d2cecf064c54a841 Aug 2012]<br />
|-<br />
|<tt>clones</tt><br />
|For snapshots, this property is a comma-separated list of filesystems or volumes which are clones of this snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/zfs-osx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>written</tt><br />
|The amount of referenced space written to this dataset since the previous snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/zfs-osx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>written@''<snap>''</tt><br />
|The amount of referenced space written to this dataset since the specified snapshot. This is the space referenced by this dataset, but not referenced by the specified snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/zfs-osx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>logicalused</tt>, <tt>logicalreferenced</tt><br />
|The amount of space used or referenced, before taking into account compression.<br />
|[https://github.com/illumos/illumos-gate/commit/77372cb0f35e8d3615ca2e16044f033397e88e21 Feb 2013]<br />
|[https://github.com/freebsd/freebsd/commit/2bed8f5691b7572d6f31bfc68e9f762a938af863 Mar 2013]<br />
|not yet<br />
|not yet<br />
|-<br />
|}</div>Ilovezfshttps://openzfs.org/w/index.php?title=Features&diff=1379Features2014-03-16T05:04:19Z<p>Ilovezfs: /* Arbitrary Snapshot Arguments to zfs snapshot */</p>
<hr />
<div>This page describes some of the more important features and performance improvements that are part of OpenZFS.<br />
<br />
Help would be appreciated in porting features between platforms whose status is "not yet".<br />
<br />
== Feature Flags ==<br />
<br />
Originally the ZFS on-disk format was versioned with a single number which was increased whenever a new on-disk format change was introduced. This worked well when a single entity controlled the development of ZFS; however, in the more distributed development model of OpenZFS a single version number is not ideal. Every OpenZFS implementation would need to agree on every change to the on-disk format.<br />
<br />
One of the first OpenZFS projects was a new versioning system called "feature flags" which tags on-disk format changes with unique names. The system supports both completely independent format changes, as well as format changes that depend on each other. A pool's on-disk format is portable between OpenZFS implementations as long as all of the feature flags in use by the pool are supported by both implementations.<br />
<br />
All OpenZFS implementations now support feature flags and regularly port features between them to remain compatible.<br />
<br />
{| class="wikitable"<br />
|<br />
| '''illumos'''<br />
| '''FreeBSD'''<br />
| '''ZFS on Linux'''<br />
| '''ZFS-OSX'''<br />
|-<br />
| '''async_destroy'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''empty_bpobj'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''lz4_compress'''<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|-<br />
| '''multi_vdev_crash_dump'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''spacemap_histogram'''<br />
| Y<br />
| S<br />
| N<br />
| N<br />
|-<br />
| '''enabled_txg'''<br />
| Y<br />
| C<br />
| N<br />
| N<br />
|-<br />
| '''hole_birth'''<br />
| Y<br />
| C<br />
| N<br />
| N<br />
|-<br />
| '''extensible_dataset'''<br />
| Y<br />
| C<br />
| N<br />
| N<br />
|-<br />
| '''bookmarks'''<br />
| Y<br />
| C<br />
| N<br />
| N<br />
|}<br />
<br />
Legend: Y = implemented, N = not implemented<br />
<br />
Legend FreeBSD: Y = implemented in -RELEASE, S = implemented in -STABLE, C = implemented in -CURRENT, N = not implemented<br />
<br />
For more details see these [http://blog.delphix.com/csiden/files/2012/01/ZFS_Feature_Flags.pdf slides (Jan 2012)] and [http://illumos.org/man/5/zpool-features <tt>zpool-features(5)</tt>] (illumos) or [http://www.freebsd.org/cgi/man.cgi?query=zpool-features&sektion=7&manpath=FreeBSD+11-current <tt>zpool-features(7)</tt>] (FreeBSD).<br />
<br />
== libzfs_core ==<br />
<br />
See this [http://blog.delphix.com/matt/2012/01/17/the-future-of-libzfs/ blog post (Jan 2012)] and associated [http://blog.delphix.com/matt/files/2012/01/The_Future_of_LibZFS.pdf slides] and [http://www.youtube.com/watch?feature=player_embedded&list=PL1A94C8EECCAF7340&v=iJ0S91ygErE video] for more details.<br />
<br />
First introduced in:<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4445fffbbb1ea25fd0e9ea68b9380dd7a6709025 June 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de August 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/50b0b2d9ea604d29ed729be8fa61bb77ae3ff4e9 October 2013]<br />
|}<br />
<br />
== CLI Usability ==<br />
<br />
These are improvements to the command line interface. While the end result is a generally more friendly user interface, getting the desired behavior often required modifications to the core of ZFS.<br />
<br />
''Listed in chronological order (oldest first).''<br />
<br />
==== Pool Comment ====<br />
<br />
OpenZFS has a per-pool comment property which can be set with the <tt>zpool set</tt> command and can be read even if the pool is not imported, so it is accessible even if pool import fails.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/8704186e373c9ed74daa395ff3f7fd745396df9e Nov 2011]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/d96eb2b1538db13ee7a716ec0e1162f5735edc12 Aug 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/d96eb2b1538db13ee7a716ec0e1162f5735edc12 Aug 2012]<br />
|}<br />
<br />
==== Size Estimates for <tt>zfs send</tt> and <tt>zfs destroy</tt> ====<br />
<br />
This feature enhances OpenZFS's internal space accounting information. This new accounting information is used to provide a <tt>-n</tt> (dry-run) option for <tt>zfs send</tt> which can instantly calculate the amount of send stream data a specific <tt>zfs send</tt> command would generate. It is also used for a <tt>-n</tt> option for <tt>zfs destroy</tt> which can instantly calculate the amount of space that would be reclaimed by a specific <tt>zfs destroy</tt> command.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|}<br />
<br />
==== vdev Information in <tt>zpool list</tt> ====<br />
<br />
OpenZFS adds a <tt>-v</tt> option to the <tt>zpool list</tt> command which shows detailed sizing information about the vdevs in the pool:<br />
<br />
$ zpool list -v<br />
NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT<br />
dcenter 5.24T 3.85T 1.39T - 73% 1.00x ONLINE -<br />
mirror 556G 469G 86.7G -<br />
c2t1d0 - - - -<br />
c2t0d0 - - - -<br />
mirror 556G 493G 63.0G -<br />
c2t3d0 - - - -<br />
c2t2d0 - - - -<br />
mirror 556G 493G 62.7G -<br />
c2t5d0 - - - -<br />
c2t4d0 - - - -<br />
mirror 556G 494G 62.5G -<br />
c2t8d0 - - - -<br />
c2t6d0 - - - -<br />
mirror 556G 494G 62.2G -<br />
c2t10d0 - - - -<br />
c2t9d0 - - - -<br />
mirror 556G 494G 61.9G -<br />
c2t12d0 - - - -<br />
c2t11d0 - - - -<br />
mirror 1016G 507G 509G -<br />
c1t1d0 - - - -<br />
c1t5d0 - - - -<br />
mirror 1016G 496G 520G -<br />
c1t3d0 - - - -<br />
c1t4d0 - - - -<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4263d13f00c9691fa14620eff82abef795be0693 Jan 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/38ef930079cbb1df5de9df3c1064426dba3976b1 May 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/1bd201e70d57464fd26bf9089ea4b44fd49e4f2d Sept 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/1bd201e70d57464fd26bf9089ea4b44fd49e4f2d Sept 2012]<br />
|}<br />
<br />
==== ZFS list snapshot property alias ====<br />
<br />
Functionally identical to Solaris 11 extension <code>zfs list -t snap</code>.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/256999 Oct 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/cf81b00a73fe47fdb21586ac1cc179b734540973 Apr 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/cf81b00a73fe47fdb21586ac1cc179b734540973 Apr 2012]<br />
|}<br />
<br />
==== ZFS snapshot alias ====<br />
<br />
Functionally identical to Solaris 11 extension <code>zfs snap</code>.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/256999 Oct 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/10b75496bb0cb7a7b8146c263164adc37f1d176a Apr 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/10b75496bb0cb7a7b8146c263164adc37f1d176a Apr 2012]<br />
|}<br />
<br />
==== <tt>zfs send</tt> Progress Reporting ====<br />
<br />
OpenZFS introduces a <tt>-v</tt> option to <tt>zfs send</tt> which reports per-second information on how much data has been sent, how long it has taken, and how much data remains to be sent.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4e3c9f4489a18514e5e8caeb91d4e6db07c98415 May 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/046ff8962602e8d65b6b3fae48573513ab7e433f May 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/37abac6d559a1da8ab8e5379442f491b73998f6a Sept 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/37abac6d559a1da8ab8e5379442f491b73998f6a Sept 2012]<br />
|}<br />
<br />
==== Arbitrary Snapshot Arguments to <tt>zfs snapshot</tt> ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/4445fffbbb1ea25fd0e9ea68b9380dd7a6709025 June 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de August 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/6f1ffb06655008c9b519108ed29fbf03acd6e5de September 2013]<br />
|}<br />
<br />
== Performance ==<br />
<br />
These are significant performance improvements, often requiring substantial restructuring of the source code.<br />
<br />
''Listed in chronological order (oldest first).''<br />
<br />
==== SA based xattrs ====<br />
<br />
Improves performance of linux-style (short) xattrs by storing them in the dnode_phys_t's bonus block. (Not to be confused with [http://en.wikipedia.org/wiki/Extended_file_attributes#Solaris Solaris-style Extended Attributes] which are full-fledged files or "forks", like NTFS streams. This work could be extended to also improve the performance on illumos of small Extended Attributes whose permissions are the same as the containing file.)<br />
<br />
Requires a disk format change and is off by default until Filesystem (ZPL) Feature Flags are implemented (not to be confused with [[Features#Feature_Flags_Overview | zpool Feature Flags]]).<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet (needs additional functionality)<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/82a37189aac955c81a59a5ecc3400475adb56355 Oct 2011]<br />
|-<br />
|'''ZFS-OSX'''<br />
|??<br />
|}<br />
<br />
Note that SA based xattrs are [https://github.com/zfsonlinux/zfs/commit/6a7c0ccca44ad02c476a111d8f7911fc8b12fff7 no longer used on symlinks] as of Aug 2013 until an issue is resolved.<br />
<br />
==== Use the slog even with logbias=throughput ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|??<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/5d7a86d114c2706a8d14d94b71f81ad5cdf066c5 Oct 2011]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/5d7a86d114c2706a8d14d94b71f81ad5cdf066c5 Oct 2011]<br />
|}<br />
<br />
==== Asynchronous Filesystem and Volume Destruction ====<br />
<br />
Destroying a filesystem requires traversing all of its data in order to return its used blocks to the pool's free list. Before this feature the filesystem was not fully removed until all blocks had been reclaimed. If the destroy operation was interrupted by a reboot or power outage the next attempt to import the pool (probably during boot) would need to complete the destroy operation synchronously, possibly delaying a boot for long periods of time.<br />
<br />
With asynchronous destruction the filesystem's data is immediately moved to a "to be freed" list, allowing the destroy operation to complete without traversing any of the filesystem's data. A background process reclaims blocks from this "to be freed" list and is capable of resuming this process after reboots without slowing the pool import process.<br />
<br />
The new freeing algorithm also has a significant performance improvement when destroying clones. The old algorithm took time proportional to the number of blocks ''referenced'' by the clone, even if most of those blocks could not be reclaimed because they were still referenced by the clone's origin. The new algorithm only takes time proportional to the number of blocks unique to the clone.<br />
<br />
See this [http://blog.delphix.com/matt/2012/07/11/performance-of-zfs-destroy/ blog post] for more detailed performance analysis.<br />
<br />
Note: The <tt>async_destroy</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/ad135b5d644628e791c3188a6ecbd9c257961ef8 May 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/cc61ab2f133566dca51970d44cc49a4355039b5d June 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/9ae529ec5dbdc828ff8326beae58062971d74b2e Jan 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/9ae529ec5dbdc828ff8326beae58062971d74b2e Jan 2013]<br />
|}<br />
<br />
==== Reduce Number of Empty bpobjs ====<br />
<br />
Every time OpenZFS takes a snapshot it creates on-disk block pointer objects (bpobj's) to track blocks associated with that snapshot. In common use cases most of these bpobj's are empty, but the number of bpobjs per-snapshot is proportional to the number of snapshots already taken of the same filesystem or volume. When a single filesystem or volume has many (tens of thousands) snapshots these unecessary empty bpobjs can waste space and cause performance problems. OpenZFS waits to create each bpobjs until the first entry is added to it, thus eliminating the empty bpobjs.<br />
<br />
Note: The <tt>empty_bpobj</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/f17457368189aa911f774c38c1f21875a568bdca Aug 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/d9fa2f486ee98b2557e1d5ad5f1af418c663cfc8 Aug 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/753c38392ddff9d3cf140bb4d28f3bfba52c92d2 Dec 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/753c38392ddff9d3cf140bb4d28f3bfba52c92d2 Dec 2012]<br />
|}<br />
<br />
==== Single Copy ARC ====<br />
<br />
OpenZFS caches disk blocks in-memory in the adaptive replacement cache (ARC). Originally when the same disk block was accessed from different clones it was cached multiple times (one for each clone accessing the block) in case a clone planned to modify the block. With these changes OpenZFS caches at most one copy of every block unless a clone is actually modifying the block.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/9253d63df408bb48584e0b1abfcc24ef2472382e Sep 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/8e1fdec2c76a948b16ebf8e4abe2cb73a60d3477 Nov 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/1eb5bfa3dcdaecb19543d9df13131374a7a42947 Dec 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/1eb5bfa3dcdaecb19543d9df13131374a7a42947 Dec 2012]<br />
|}<br />
<br />
==== TRIM Support ====<br />
<br />
TRIM support provides the ability to pass deletes / frees through to underlying vdevs that help to ensure devices such as SSD's, which rely on receiving TRIM / UNMAP requests for sectors which are no longer needed, maintain optimal performance.<br />
<br />
The current FreeBSD implementation builds a map of regions that were freed. On every write the<br />
code consults the map and removes ranges that were freed before, but are now overwritten.<br />
<br />
Freed blocks are not TRIMed immediately, there is a low priority thread that TRIMs ranges when the time comes.<br />
<br />
Support for TRIM has been demonstrated to significantly improved the general performance of SSD in the field, eliminating the need for regular secure erase cycles on busy hosts.<br />
<br />
An alternative method, which is arguably better, and works by tracking the metaslab allocator is also in progress and can be found here:<br />
[http://cr.illumos.org/~webrev/skiselkov/zfs_unmap/ ZFS TRIM Support for illumos]<br />
<br />
There is [https://github.com/zfsonlinux/zfs/pull/1016 a pull request for ZFS On Linux] which implements FreeBSD's (Sep 2012) ZFS TRIM support.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/base?view=revision&sortby=file&revision=240868 Sep 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|not yet ported<br />
|-<br />
|'''ZFS-OSX'''<br />
|not yet ported<br />
|}<br />
<br />
==== FASTWRITE Algorithm ====<br />
<br />
Improves synchronous IO performance.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|??<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/920dd524fb2997225d4b1ac180bcbc14b045fda6 Oct 2012]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/920dd524fb2997225d4b1ac180bcbc14b045fda6 Oct 2012]<br />
|}<br />
<br />
Note that a [https://github.com/ryao/zfs/commit/858822a04b4563657b2267131e90d9687d67e31b locking enhancement] is being reviewed.<br />
<br />
==== Block Freeing Performance Improvments ====<br />
<br />
Performance analysis of OpenZFS revealed that the algorithms used when freeing blocks could cause significant performance problems when freeing a large amount of blocks in a single transaction or when dealing with fragmented pools. Several performance improvements were made in this area.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/01f55e48fb4d524eaf70687728aa51b7762e2e97 Nov 2012]<br />
|[https://github.com/illumos/illumos-gate/commit/16a4a8074274d2d7cc408589cf6359f4a378c861 Feb 2013]<br />
|[https://github.com/illumos/illumos-gate/commit/9eb57f7f3fbb970d4b9b89dcd5ecf543fe2414d5 Feb 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/5d9b3f284b13ac492326e05f6ba4c00e98adf05c Nov 2012]<br />
|[https://github.com/freebsd/freebsd/commit/18e9a0422b52091035dae9d69bde9dd571a8ff7e Feb 2013]<br />
|[https://github.com/freebsd/freebsd/commit/18e9a0422b52091035dae9d69bde9dd571a8ff7e Feb 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/55d85d5a8c45c4559a4a0e675c37b0c3afb19c2f May 2013]<br />
|[https://github.com/zfsonlinux/zfs/commit/e51be06697762215dc3b679f8668987034a5a048 June 2013]<br />
|not yet<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/55d85d5a8c45c4559a4a0e675c37b0c3afb19c2f May 2013]<br />
|[https://github.com/zfs-osx/zfs/commit/e51be06697762215dc3b679f8668987034a5a048 June 2013]<br />
|not yet<br />
|}<br />
<br />
==== nop-write ====<br />
<br />
ZFS supports end-to-end checksumming of every data block. When a cryptographically secure checksum is being used OpenZFS will compare the checksums of incoming writes to checksum of the existing on-disk data and avoid issuing any write i/o for data that has not changed. This can help performance and snapshot space usage in situations were the same files are regularly overwritten with almost-identical data (e.g. regular full-backups of large random-access files).<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/80901aea8e78a2c20751f61f01bebd1d5b5c2ba5 Nov 2012]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/3a0bfecf052237768517963f169d0797e2978f59 Nov 2012]<br />
|-<br />
|'''ZFS on Linux'''<br />
|Not yet (as of Sept. 13, 2013)<br />
|-<br />
|'''ZFS-OSX'''<br />
|not yet<br />
|}<br />
<br />
==== lz4 compression ====<br />
<br />
OpenZFS supports on-the-fly compression of all user data with a variety of compression algorithm. This feature adds support for the lz4 compression algorithm. lz4 is usually faster and compresses data better than lzjb, the old default OpenZFS compression algorithm.<br />
<br />
Note: The <tt>lz4_compress</tt> feature flag must be enabled to take advantage of this.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/a6f561b4aee75d0d028e7b36b151c8ed8a86bc76 Jan 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/c6d9dc1ad2d2e36220845b84a2d180bd97354797 Feb 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/9759c60f1a1503e48dc5c45a209c3edd5758319f Jan 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/9759c60f1a1503e48dc5c45a209c3edd5758319f Jan 2013]<br />
|}<br />
<br />
==== synctask rewrite ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/3b2aab18808792cbd248a12f1edf139b89833c13 Feb 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/f1985e5cd725ff1816cd4afbdee2d95b661883f0 March 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/13fe019870c8779bf2f5b3ff731b512cf89133ef Sept 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|not yet<br />
|}<br />
<br />
==== l2arc compression ====<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/aad02571bc59671aa3103bb070ae365f531b0b62 Jun 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/b20363fe596a7e3a55d5b62f4d3fdb482c65c47a Jun 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/3a17a7a99a1a6332d0999f9be68e2b8dc3933de1 Aug 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/3a17a7a99a1a6332d0999f9be68e2b8dc3933de1 Aug 2013]<br />
|}<br />
<br />
==== ARC Shouldn't Cache Freed Blocks ====<br />
<br />
Originally cached blocks in the ARC remained cached until they were evicted due to memory pressure, even if the underlying disk block was freed. In some workloads these freed blocks were so frequently accessed before they were freed that the ARC continued to cache them while evicting blocks which had not been freed yet. Since freed blocks could never be accessed again continuing to cache them was unnecessary. In OpenZFS ARC blocks are evicted immediately when their underlying data blocks are freed.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/6e6d5868f52089b9026785bd90257a3d3f6e5ee2 Jun 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[https://github.com/freebsd/freebsd/commit/13d822743426263ee50bcf047ab41a1e386156a8 Jun 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/df4474f92d0b1b8d54e1914fdd56be2b75f1ff5e Jun 2013]<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/df4474f92d0b1b8d54e1914fdd56be2b75f1ff5e Jun 2013]<br />
|}<br />
<br />
==== Improve N-way mirror read performance ====<br />
<br />
Queues read requests to least busy leaf vdev in mirrors.<br />
<br />
In addition to the vdev load biasing first implemented by ZFS on Linux in July 2013, the FreeBSD October 2013 version added I/O locality and device rotational information to further enhance the performance.<br />
<br />
{| class="wikitable"<br />
!OS<br />
!Load<br />
!Load + I/O Locality & Rotational Information<br />
|-<br />
|'''illumos'''<br />
|not yet ported<br />
|not yet ported<br />
|-<br />
|'''FreeBSD'''<br />
|N/A<br />
|[http://svnweb.freebsd.org/changeset/base/256956 23rd October 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|[https://github.com/zfsonlinux/zfs/commit/556011dbec2d10579819078559a77630fc559112 Jul 2013]<br />
|not yet ported<br />
|-<br />
|'''ZFS-OSX'''<br />
|[https://github.com/zfs-osx/zfs/commit/556011dbec2d10579819078559a77630fc559112 Jul 2013]<br />
|not yet ported<br />
|}<br />
<br />
==== Smoother Write Throttle ====<br />
<br />
The write throttle (dsl_pool_tempreserve_space() and txg_constrain_throughput()) is rewritten to produce much more consistent delays when under constant load. The new write throttle is based on the amount of dirty data, rather than guesses about future performance of the system. When there is a lot of dirty data, each transaction (e.g. write() syscall) will be delayed by the same small amount. This eliminates the "brick wall of wait" that the old write throttle could hit, causing all transactions to wait several seconds until the next txg opens. One of the keys to the new write throttle is decrementing the amount of dirty data as i/o completes, rather than at the end of spa_sync(). Note that the write throttle is only applied once the i/o scheduler is issuing the maximum number of outstanding async writes. See the block comments in dsl_pool.c and above dmu_tx_delay() for more details.<br />
<br />
The ZFS i/o scheduler (vdev_queue.c) now divides i/os into 5 classes: sync read, sync write, async read, async write, and scrub/resilver. The scheduler issues a number of concurrent i/os from each class to the device. Once a class has been selected, an i/o is selected from this class using either an elevator algorithem (async, scrub classes) or FIFO (sync classes). The number of concurrent async write i/os is tuned dynamically based on i/o load, to achieve good sync i/o latency when there is not a high load of writes, and good write throughput when there is. See the block comment in vdev_queue.c for more details.<br />
<br />
{| class="wikitable"<br />
|-<br />
|'''illumos'''<br />
|[https://github.com/illumos/illumos-gate/commit/69962b5647e4a8b9b14998733b765925381b727e Aug 2013]<br />
|-<br />
|'''FreeBSD'''<br />
|[http://svnweb.freebsd.org/changeset/base/258632 Nov 2013]<br />
|-<br />
|'''ZFS on Linux'''<br />
|not yet<br />
|-<br />
|'''ZFS-OSX'''<br />
|not yet<br />
|}<br />
<br />
== Dataset Properties ==<br />
<br />
These are new filesystem, volume, and snapshot properties which can be accessed with the <tt>zfs(1)</tt> command's <tt>get</tt> subcommand. See the <tt>zfs(1)</tt> manpage for your distribution for more details on each of these properties.<br />
<br />
{| class="wikitable"<br />
!Property<br />
!Description<br />
!illumos<br />
!FreeBSD<br />
!ZFS on Linux<br />
!ZFS-OSX<br />
|-<br />
|<tt>refcompressratio</tt><br />
|The compression ratio acheived for all data referenced by (but not necessarily unique to) a snapshot, filesystem, or volume, expressed as a multiplier.<br />
|[https://github.com/illumos/illumos-gate/commit/187d6ac08adc31ea6868bde0cfbbb288826254e8 Jun 2011]<br />
|[https://github.com/freebsd/freebsd/commit/333e34b938a2b5e7b036e02b36408880b415109c Jun 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/77999e804fff35782ab4b578d2cecf064c54a841 Aug 2012]<br />
|[https://github.com/zfs-osx/zfs/commit/77999e804fff35782ab4b578d2cecf064c54a841 Aug 2012]<br />
|-<br />
|<tt>clones</tt><br />
|For snapshots, this property is a comma-separated list of filesystems or volumes which are clones of this snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/zfs-osx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>written</tt><br />
|The amount of referenced space written to this dataset since the previous snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/zfs-osx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>written@''<snap>''</tt><br />
|The amount of referenced space written to this dataset since the specified snapshot. This is the space referenced by this dataset, but not referenced by the specified snapshot.<br />
|[https://github.com/illumos/illumos-gate/commit/e5351341b58845eee9d722bd71543d5a7c26b6cc Nov 2011]<br />
|[https://github.com/freebsd/freebsd/commit/73cab7197174153a718dedc97ff344341bcf6098 Nov 2011]<br />
|[https://github.com/zfsonlinux/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|[https://github.com/zfs-osx/zfs/commit/330d06f90d143b41b276796526a66a1c1fff046d Jul 2012]<br />
|-<br />
|<tt>logicalused</tt>, <tt>logicalreferenced</tt><br />
|The amount of space used or referenced, before taking into account compression.<br />
|[https://github.com/illumos/illumos-gate/commit/77372cb0f35e8d3615ca2e16044f033397e88e21 Feb 2013]<br />
|[https://github.com/freebsd/freebsd/commit/2bed8f5691b7572d6f31bfc68e9f762a938af863 Mar 2013]<br />
|not yet<br />
|not yet<br />
|-<br />
|}</div>Ilovezfs