Projects

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 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

 * ZFS Channel Programs
 * device removal
 * based on indirect vdevs, rather than bprewrite
 * Reflink support
 * Unified ashift handling
 * 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
 * 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).

Lustre feature ideas
The Lustre project supports the use of ZFS as an Object Storage Target. They maintain their own feature request page with ZFS project ideas. Below is a list of project ideas that are well defined, benefit Lustre and have no clear benefit outside of that context.


 * Collapsible ZAP objects (e.g. fatzip -> microzap downgrades)
 * Data on Separate Devices
 * Large dnodes
 * TinyZAP