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