Difference between revisions of "Projects"
Jump to navigation
Jump to search
Line 36: | Line 36: | ||
== General feature ideas == | == General feature ideas == | ||
* [[Projects/ZFS Channel Programs | ZFS Channel Programs]] | |||
* device removal | * device removal | ||
** based on indirect vdevs, rather than bprewrite | ** based on indirect vdevs, rather than bprewrite | ||
Line 58: | Line 59: | ||
** [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). | ||
== 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 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. | 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 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. |
Revision as of 04:05, 15 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
- ZFS Channel Programs
- 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).
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