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