storage revision 1.9
11.9Sagc$NetBSD: storage,v 1.9 2012/01/14 22:06:16 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.9Sagc4. ReFUSE, perfuse and pud
161.9Sagc6. Support for flash devices - NAND, and flash file system
171.8Sagc7. rump extensions
181.9Sagc9. in-kernel iSCSI initiator
191.8Sagc10. RAIDframe parity map
201.9Sagc11. quota system re-work
211.8Sagc
221.9SagcFeatures that are planned for future releases:
231.9Sagc1. devfs/udevfsd
241.5Sagc5. web-based management tools for storage subsystems
251.5Sagc8. virtualised disks in userland
261.9Sagc12. lfs renovation
271.1Sagc
281.4SagcWe'll continue to update this roadmap as features and dates get firmed up.
291.1Sagc
301.1SagcSome explanations
311.1Sagc=================
321.1Sagc
331.9Sagc1. udevfsd
341.9Sagc----------
351.1Sagc
361.9SagcThere has always been discussion over devfs, and experience with it
371.9Sagcseems mixed (to be kind). At the same time, carrying around a whole
381.9Sagcpopulated /dev seems quite possible and effective, but maybe a bit
391.9Sagcunwieldy. jmcneill's udevfsd addresses this in a different way, and
401.9Sagcis currently in othersrc/external/bsd/udevfsd. Not planned for 6.0
411.9Sagcright now.
421.1Sagc
431.9SagcResponsible: jmcneill
441.1Sagc
451.5Sagc2. Logical Volume Management
461.5Sagc----------------------------
471.1Sagc
481.1SagcBased on the Linux lvm2 and devmapper software, with a new kernel component
491.3Sagcfor NetBSD written. Merged in 5.99.5 sources, will be in 6.0.
501.1Sagc
511.1SagcResponsible: haad, martin
521.1Sagc
531.5Sagc3. Native port of Sun's ZFS
541.5Sagc---------------------------
551.5Sagc
561.5SagcTwo Summer of Code projects have been held, concentrating on the
571.5Sagcprovision of ZFS support for NetBSD.  Mostly completed by haad, and
581.5Sagcbuilding on ver's work, this is the port of Sun's ZFS, with
591.5Sagcmodifications to make it compile on NetBSD by ad@, and based on the
601.5SagcSun code for the block layer. Discussions are still taking place to
611.5Sagcget the design right for support for the openat(2) system call family,
621.5Sagcand the correct architecture for reclaiming vnodes.
631.1Sagc
641.5SagcThe ZFS source code has been committed to the repository.
651.1Sagc
661.5SagcResponsible: haad, ad, ver
671.1Sagc
681.9Sagc4. ReFUSE, perfuse and pud
691.9Sagc--------------------------
701.1Sagc
711.1SagcFUSE has two interfaces, the normal high-level one, and a lower-level
721.9Sagcinterface which is closer to the way standard file systems operate. 
731.9Sagcmanu's perfuse adds the low-level functionality in the same way that
741.9SagcReFUSE adds the high-level functionality.  In addition, there is the
751.9Sagc"pass to userspace device" framework added by pooka as part of rump. 
761.9SagcAll 3 will be in 6.0.
771.1Sagc
781.9SagcResponsible: pooka, manu, agc
791.1Sagc
801.5Sagc5. Web-based Management tools for Storage Subsystems
811.5Sagc----------------------------------------------------
821.1Sagc
831.9SagcStandard tools for managing the storage subsystems that NetBSD
841.9Sagcprovides, using a standard web-server as the basic user interface on
851.9Sagcthe storage device, allowing remote management by a standard web
861.9Sagcbrowser.  CIM and related functinoality are interesting datapoints in
871.9Sagcthis space, although credentials and authentication are always
881.9Sagcchallenges in this space. Will not make it into 6.0
891.1Sagc
901.1SagcResponsible: agc
911.1Sagc
921.9Sagc6. Support for flash devices - NAND, and flash file system
931.9Sagc----------------------------------------------------------
941.5Sagc
951.9Sagcahoka has have contributed many things in this area, including
961.9Sagcflash(4), flash(9), flashctl(8) and nand(9).  In addition, the
971.9SagcUniversity of Szeged has contributed chfs,
981.9Sagchttp://en.wikipedia.org/wiki/CHFS, which is described as "the first
991.9Sagcopen source flash specific file system written for NetBSD".  All of
1001.9Sagcthese will be in 6.0.
1011.5Sagc
1021.9SagcResponsible: ahoka
1031.5Sagc
1041.5Sagc7. RUMP Extensions
1051.5Sagc------------------
1061.5Sagc
1071.5SagcRump support has been in NetBSD for 2 releases now, and continues to be
1081.5Sagcdeveloped actively. Recent additions have included cgd support, and smbfs
1091.5Sagcclient support.
1101.5Sagc
1111.5SagcResponsible: pooka
1121.5Sagc
1131.8Sagc
1141.5Sagc8. Virtualised disks in Userland
1151.5Sagc--------------------------------
1161.5Sagc
1171.5SagcFor better support of virtualization, a library which provides a consistent 
1181.9Sagcview of virtualized disk images has been developed by jmcneill. This will
1191.9Sagcnot make it into 6.0, although some extra functionality for reading vmdk
1201.9Sagcimages is available in othersrc/external/bsd/vmdk.
1211.5Sagc
1221.9SagcResponsible: jmcneill, agc
1231.5Sagc
1241.8Sagc
1251.5Sagc9. In-kernel iSCSI Initiator
1261.5Sagc----------------------------
1271.5Sagc
1281.7SceggerNetBSD has had a userland implementation of an iSCSI initiator since
1291.9SagcNetBSD 4.99.35, based on ReFUSE.  Wasabi Systems kindly contributed their
1301.9Sagckernel-based iSCSI initiator, and it will be in 6.0.
1311.5Sagc
1321.9SagcResponsible: riz, agc
1331.5Sagc
1341.1Sagc
1351.8Sagc10. RAIDframe parity map
1361.8Sagc------------------------
1371.8Sagc
1381.8SagcJed Davis successfully completed a Summer of Code project to implement
1391.8Sagcparity map zones for RAIDframe.  Parity mapping drastically reduces
1401.8Sagcthe amount of time spent rewriting parity after an unclean shutdown by
1411.8Sagckeeping better track of which regions might have had outstanding
1421.8Sagcwrites.  Enabled by default; can be disabled on a per-set basis, or
1431.8Sagctuned, with the new raidctl(8) commands.
1441.8Sagc
1451.8SagcMerged in 5.99.22 sources, and will be in 6.0.  A separate set of
1461.8Sagcpatches is available for NetBSD-5.
1471.8Sagc
1481.8SagcResponsible: jld
1491.8Sagc
1501.9Sagc
1511.9Sagc11. quota system re-work
1521.9Sagc------------------------
1531.9Sagc
1541.9SagcThe quota system has been re-worked by bouyer, and is in -current
1551.9Sagcright now.  dholland is updating and modifying this rework so that it
1561.9Sagcis a more generalised solution, with better features for security. 
1571.9SagcThis is expected to be in 6.0, although there is a lot of work to
1581.9Sagccomplete.
1591.9Sagc
1601.9SagcResponsible: bouyer, dholland
1611.9Sagc
1621.9Sagc
1631.9Sagc12. LFS renovation
1641.9Sagc------------------
1651.9Sagc
1661.9SagcLFS had been de-emphasised in the time period leading up to the
1671.9Sagc5.0 release, but is undergoing some rework by perseant, and dholland
1681.9Sagchas some contributions in this area too.
1691.9Sagc
1701.9SagcResponsible: perseant, dholland
1711.9Sagc
1721.9Sagc
1731.9SagcAlistair Crooks, David Holland
1741.9SagcSat Jan 14 05:52:37 PST 2012
175