Difference between revisions of "Projects"

From OpenZFS
Jump to navigation Jump to search
(Make Lustre feature ideas section)
m (Move channel ideas back to general features)
Line 58: Line 58:
** [http://www.listbox.com/member/archive/182191/2013/02/search/Ymxvb20gZmlsdGVycw/sort/time_rev/page/1/entry/8:16/20130212183221:70E13332-756C-11E2-996D-F0C715E11FC0/ Bloom Filter]
** [http://www.listbox.com/member/archive/182191/2013/02/search/Ymxvb20gZmlsdGVycw/sort/time_rev/page/1/entry/8:16/20130212183221:70E13332-756C-11E2-996D-F0C715E11FC0/ Bloom Filter]
** Use SLAB allocation for deduplication table entries (easy to implement; will reduce DDT entries from 512-bytes to 320-bytes).
** Use SLAB allocation for deduplication table entries (easy to implement; will reduce DDT entries from 512-bytes to 320-bytes).
* [http://wiki.lustre.org/index.php/Architecture_-_ZFS_TinyZAP TinyZAP]
* [http://open-zfs.org/wiki/Project_Ideas/ZFS_Channel_Programs ZFS Channel Programs]
 
== Lustre feature ideas ==
== Lustre feature ideas ==
The [http://www.lustre.org/ Lustre project] supports the use of ZFS as an Object Storage Target. They maintain their [http://wiki.lustre.org/index.php/Architecture_-_ZFS_for_Lustre#ZFS_Features_Required_by_Lustre own page] with feature requests. Below are project ideas for features that have no clear benefit outside of that context.
The [http://www.lustre.org/ Lustre project] supports the use of ZFS as an Object Storage Target. They maintain their [http://wiki.lustre.org/index.php/Architecture_-_ZFS_for_Lustre#ZFS_Features_Required_by_Lustre own page] with feature requests. Below are project ideas for features that have no clear benefit outside of that context.
Line 65: Line 64:
* Collapsible ZAP objects (e.g. fatzip -> microzap downgrades)
* Collapsible ZAP objects (e.g. fatzip -> microzap downgrades)
* [http://wiki.lustre.org/index.php/Architecture_-_ZFS_large_dnodes Large dnodes]
* [http://wiki.lustre.org/index.php/Architecture_-_ZFS_large_dnodes Large dnodes]
* [http://open-zfs.org/wiki/Project_Ideas/ZFS_Channel_Programs ZFS Channel Programs]
* [http://wiki.lustre.org/index.php/Architecture_-_ZFS_TinyZAP TinyZAP]

Revision as of 13:44, 13 September 2013

Active projects

Projects that are currently being worked on. Ideally these should each have a responsible engineer and a link to a design document or page explaining how they will work.

  • resumable send/receive User:Csiden
  • Storage of small files in dnode User:Mahrens
  • Raspberry Pi support ( ryao is working on this)
    • Based on ZFS on Linux, which already works on ARM
    • Some unresolved issues with running out of kernel virtual address space

Inter-platform coordination ideas

Ideas for projects that would help coordinate changes between platforms:

  • Mechanism for pull changes from one place to another
    • Make it easier to build, test, code review, and integrate ZFS changes into illumos
  • Cross-Platform Test Suite
    • One sourcebase rather than porting STF to every platform?
    • Maybe integrate XFS Test Suite
  • Userland ZFS
    • we already have ztest / libzpool
    • want to expand this to also be able to test more of zfs in userland
    • want to be able to run /sbin/zfs, /sbin/zpool against userland implementation
    • want to be able to run most of testrunner (and/or STF) test suite against userland implementation
  • ZFS (ZPL) Version Feature Flags
    • Import ZFS on Linux sa=xattr into Illumos
  • /dev/zfs ioctl interface versioning
    • Ensure that future additions/changes to the interface maintain maximum compatibility with userland tools
    • Enable FreeBSD Linux jails / Illumos lx brandz to use ZFS on Linux utilities
  • Port ZPIOS [1] to Illumos from ZFS on Linux
    • This requires a rewrite to stop using Linux interfaces.
  • Virtual machine images with OpenZFS (see discussion on talk page)
    • to easily try OpenZFS on a choice of distributions within a virtual machine
    • images could be built for running on public clouds
    • images for installing to real hardware

General feature ideas

  • device removal
    • based on indirect vdevs, rather than bprewrite
  • Reflink[2] support
  • Unified ashift handling [3]
  • Raidz Hybrid Allocator (preferably compatible with pool version 29 for Solaris 10u11 compatibility)
  • 1MB blocksize (preferably compatible with pool version 32, as pool-feature-flag)
  • Replace larger ZIO caches with explicit pages.
    • Subproject: Document useful kernel interfaces for page manipulation on various platforms
  • Improved SPA namespace collision management
    • Mostly needed by virtual machine hosts
    • work in progress in Gentoo
    • Temporary pool names in zpool import [4]
    • Temporary pool names in zpool create
  • TRIM Support
    • Realtime TRIM
    • Freespace TRIM
      • Walk metaslab space maps and issue discard commands to the vdevs.
  • Platform agnostic encryption support (preferably compatible with pool version 30, as pool-feature-flag)
    • The early ZFS encryption code published in the zfs-crypto repository of OpenSolaris.org could be a starting point. A copy is available from Richard Yao upon request.
  • Deduplication improvements
    • Bloom Filter
    • Use SLAB allocation for deduplication table entries (easy to implement; will reduce DDT entries from 512-bytes to 320-bytes).
  • ZFS Channel Programs

Lustre feature ideas

The Lustre project supports the use of ZFS as an Object Storage Target. They maintain their own page with feature requests. Below are project ideas for features that have no clear benefit outside of that context.