storage revision 1.8
11.8Sagc$NetBSD: storage,v 1.8 2009/11/17 21:09:54 agc Exp $
21.1Sagc
31.1SagcNetBSD Storage Roadmap
41.1Sagc======================
51.1Sagc
61.1SagcThis is a small roadmap document, and deals with the storage and file
71.1Sagcsystems side of the operating system.
81.1Sagc
91.3SagcThe following elements and projects are pencilled in for 6.0, but
101.1Sagcplease do not rely on them being there.
111.1Sagc
121.8SagcFeatures that will be in 6.0:
131.5Sagc2. logical volume management
141.5Sagc3. a native port of Sun's ZFS
151.8Sagc7. rump extensions
161.8Sagc10. RAIDframe parity map
171.8Sagc
181.8SagcFeatures that are planned for 6.0:
191.8Sagc1. devfs
201.5Sagc4. ReFUSE-lowlevel
211.5Sagc5. web-based management tools for storage subsystems
221.5Sagc6. support for flash devices - NAND and MMC/SD
231.5Sagc8. virtualised disks in userland
241.5Sagc9. in-kernel iSCSI initiator
251.5Sagc
261.5SagcWe currently expect to branch 6.0 in the March 2010 timeframe, with a view
271.5Sagcto a 6.0 release later in 2010.
281.1Sagc
291.4SagcWe'll continue to update this roadmap as features and dates get firmed up.
301.1Sagc
311.1SagcSome explanations
321.1Sagc=================
331.1Sagc
341.5Sagc1. devfs
351.1Sagc---------
361.1Sagc
371.1SagcDevfs will allow device special files (the files used to access
381.1Sagcdevices) to be created dynamically as and when they are attached to
391.1Sagcthe system.  This will greatly reduce the number of files in a /dev
401.1Sagcdirectory and removes the need to run the MAKEDEV script when support
411.1Sagcfor new devices is added to the NetBSD kernel.  NetBSD's devfs
421.1Sagcimplementation will also allow multiple instances of the file system
431.1Sagcto be mounted simultaneously, which is very useful for chroot jails.
441.5SagcPlease contact core@ if you are interested in devfs development.
451.1Sagc
461.1SagcResponsible: mjf
471.1Sagc
481.5Sagc2. Logical Volume Management
491.5Sagc----------------------------
501.1Sagc
511.1SagcBased on the Linux lvm2 and devmapper software, with a new kernel component
521.3Sagcfor NetBSD written. Merged in 5.99.5 sources, will be in 6.0.
531.1Sagc
541.1SagcResponsible: haad, martin
551.1Sagc
561.5Sagc3. Native port of Sun's ZFS
571.5Sagc---------------------------
581.5Sagc
591.5SagcTwo Summer of Code projects have been held, concentrating on the
601.5Sagcprovision of ZFS support for NetBSD.  Mostly completed by haad, and
611.5Sagcbuilding on ver's work, this is the port of Sun's ZFS, with
621.5Sagcmodifications to make it compile on NetBSD by ad@, and based on the
631.5SagcSun code for the block layer. Discussions are still taking place to
641.5Sagcget the design right for support for the openat(2) system call family,
651.5Sagcand the correct architecture for reclaiming vnodes.
661.1Sagc
671.5SagcThe ZFS source code has been committed to the repository.
681.1Sagc
691.5SagcResponsible: haad, ad, ver
701.1Sagc
711.5Sagc4. ReFUSE-lowlevel
721.5Sagc------------------
731.1Sagc
741.1SagcFUSE has two interfaces, the normal high-level one, and a lower-level
751.1Sagcinterface which is closer to the way standard file systems operate. This
761.1Sagcadds the low-level functionality in the same way that ReFUSE adds the
771.1Sagchigh-level functionality
781.1Sagc
791.1SagcResponsible: pooka, agc
801.1Sagc
811.5Sagc5. Web-based Management tools for Storage Subsystems
821.5Sagc----------------------------------------------------
831.1Sagc
841.1SagcStandard tools for managing the storage subsystems that NetBSD provides,
851.1Sagcusing a standard web-server as the basic user interface on the storage
861.1Sagcdevice, allowing remote management by a standard web browser.
871.1Sagc
881.1SagcResponsible: agc
891.1Sagc
901.5Sagc6. Support for flash devices - NAND and MMC/SD
911.5Sagc----------------------------------------------
921.5Sagc
931.5SagcThe NetBSD Foundation is interested in having a file system which is
941.5Sagcoptimised to work with today's flash devices, including SSDs both with
951.5Sagcwear-levelling functionality and without, as well as support for NAND,
961.5Sagcand MMC/SD devices. Please get in touch with core@ if you're interested
971.5Sagcin helping out with this area of development.
981.5Sagc
991.5SagcResponsible: TBD
1001.5Sagc
1011.5Sagc7. RUMP Extensions
1021.5Sagc------------------
1031.5Sagc
1041.5SagcRump support has been in NetBSD for 2 releases now, and continues to be
1051.5Sagcdeveloped actively. Recent additions have included cgd support, and smbfs
1061.5Sagcclient support.
1071.5Sagc
1081.5SagcResponsible: pooka
1091.5Sagc
1101.8Sagc
1111.5Sagc8. Virtualised disks in Userland
1121.5Sagc--------------------------------
1131.5Sagc
1141.5SagcFor better support of virtualization, a library which provides a consistent 
1151.5Sagcview of virtualized disk images has been developed by jmcneill.
1161.5Sagc
1171.5SagcResponsible: jmcneill
1181.5Sagc
1191.8Sagc
1201.5Sagc9. In-kernel iSCSI Initiator
1211.5Sagc----------------------------
1221.5Sagc
1231.7SceggerNetBSD has had a userland implementation of an iSCSI initiator since
1241.5SagcNetBSD 4.99.35, based on ReFUSE.  There is a possibility that an
1251.5Sagcin-kernel initiator may be available - please contact core if you are
1261.5Sagcinterested in this functionality.
1271.5Sagc
1281.5SagcResponsible: core
1291.5Sagc
1301.1Sagc
1311.8Sagc10. RAIDframe parity map
1321.8Sagc------------------------
1331.8Sagc
1341.8SagcJed Davis successfully completed a Summer of Code project to implement
1351.8Sagcparity map zones for RAIDframe.  Parity mapping drastically reduces
1361.8Sagcthe amount of time spent rewriting parity after an unclean shutdown by
1371.8Sagckeeping better track of which regions might have had outstanding
1381.8Sagcwrites.  Enabled by default; can be disabled on a per-set basis, or
1391.8Sagctuned, with the new raidctl(8) commands.
1401.8Sagc
1411.8SagcMerged in 5.99.22 sources, and will be in 6.0.  A separate set of
1421.8Sagcpatches is available for NetBSD-5.
1431.8Sagc
1441.8SagcResponsible: jld
1451.8Sagc
1461.1SagcAlistair Crooks
1471.8SagcTue Nov 17 07:17:20 PST 2009
148