Projects

Inter-platform coordination
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 ZFSOnLinux 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 ZFSOnLinux utilities
 * Port ZPIOS to Illumos from ZFSOnLinux
 * This requires a rewrite to stop using Linux interfaces.
 * Virtual machine images of various distributions? To play around with ZFS preconfigured on each of them
 * Suggest a common design/format of these (e.g. qcow2? vdi? ~256MiB raw disk image of a compressed ZFS root filesystem? BIOS bootable?)
 * Images could even be designed to work directly on some public clouds
 * Raspberry Pi images ~Ryao
 * Is that really possible?? ZFS on 32-bit ARM?  With only 512MiB RAM?  I've managed this on i386 with Debian GNU/kFreeBSD but it was understandably slow.  It would be great to demo and share knowledge of extreme use-cases like this;  some platforms/distros may possess an advantage where others simply wouldn't be able to do it.  ~StevenC
 * ZFSOnLinux already works on ARM, although no one seems to have used it as their rootfs yet. I am working on an image, but there are some issues with Linux's limited virtual kernel address space on ARM and how Linux handles being out of kernel virtual address space (it does not). I am in the process of writing a patch to ZFS that should reduce kernel virtual address space usage to an acceptable level. ~Richard Yao

General features
Please add and edit ideas here
 * device removal
 * based on indirect vdevs, rather than bprewrite
 * resumable send/receive
 * work in progress at Delphix
 * Storage of small files in dnode
 * work in progress at Delphix
 * Reflink support
 * Unified ashift handling
 * Collapsible ZAP objects (e.g. fatzip -> microzap downgrades)
 * 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.