Projects

From OpenZFS
Revision as of 21:46, 25 August 2013 by Ryao (talk | contribs) (Add TRIM)
Jump to navigation Jump to search

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?
  • 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 [1] 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

General features

  • 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[2] support
  • Unified ashift handling [3]
  • Collapsible ZAP objects (e.g. fatzip -> microzap downgrades)
  • Raidz Hybrid Allocator (preferably compatible with pool version 29 for Solaris 10u11 compatibility)
  • 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.

Please add and edit ideas here