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

 * 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).
 * ZFS Channel Programs

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