1$NetBSD: storage,v 1.9 2012/01/14 22:06:16 agc Exp $ 2 3NetBSD Storage Roadmap 4====================== 5 6This is a small roadmap document, and deals with the storage and file 7systems side of the operating system. 8 9The following elements and projects are pencilled in for 6.0, but 10please do not rely on them being there. 11 12Features that will be in 6.0: 132. logical volume management 143. a native port of Sun's ZFS 154. ReFUSE, perfuse and pud 166. Support for flash devices - NAND, and flash file system 177. rump extensions 189. in-kernel iSCSI initiator 1910. RAIDframe parity map 2011. quota system re-work 21 22Features that are planned for future releases: 231. devfs/udevfsd 245. web-based management tools for storage subsystems 258. virtualised disks in userland 2612. lfs renovation 27 28We'll continue to update this roadmap as features and dates get firmed up. 29 30Some explanations 31================= 32 331. udevfsd 34---------- 35 36There has always been discussion over devfs, and experience with it 37seems mixed (to be kind). At the same time, carrying around a whole 38populated /dev seems quite possible and effective, but maybe a bit 39unwieldy. jmcneill's udevfsd addresses this in a different way, and 40is currently in othersrc/external/bsd/udevfsd. Not planned for 6.0 41right now. 42 43Responsible: jmcneill 44 452. Logical Volume Management 46---------------------------- 47 48Based on the Linux lvm2 and devmapper software, with a new kernel component 49for NetBSD written. Merged in 5.99.5 sources, will be in 6.0. 50 51Responsible: haad, martin 52 533. Native port of Sun's ZFS 54--------------------------- 55 56Two Summer of Code projects have been held, concentrating on the 57provision of ZFS support for NetBSD. Mostly completed by haad, and 58building on ver's work, this is the port of Sun's ZFS, with 59modifications to make it compile on NetBSD by ad@, and based on the 60Sun code for the block layer. Discussions are still taking place to 61get the design right for support for the openat(2) system call family, 62and the correct architecture for reclaiming vnodes. 63 64The ZFS source code has been committed to the repository. 65 66Responsible: haad, ad, ver 67 684. ReFUSE, perfuse and pud 69-------------------------- 70 71FUSE has two interfaces, the normal high-level one, and a lower-level 72interface which is closer to the way standard file systems operate. 73manu's perfuse adds the low-level functionality in the same way that 74ReFUSE adds the high-level functionality. In addition, there is the 75"pass to userspace device" framework added by pooka as part of rump. 76All 3 will be in 6.0. 77 78Responsible: pooka, manu, agc 79 805. Web-based Management tools for Storage Subsystems 81---------------------------------------------------- 82 83Standard tools for managing the storage subsystems that NetBSD 84provides, using a standard web-server as the basic user interface on 85the storage device, allowing remote management by a standard web 86browser. CIM and related functinoality are interesting datapoints in 87this space, although credentials and authentication are always 88challenges in this space. Will not make it into 6.0 89 90Responsible: agc 91 926. Support for flash devices - NAND, and flash file system 93---------------------------------------------------------- 94 95ahoka has have contributed many things in this area, including 96flash(4), flash(9), flashctl(8) and nand(9). In addition, the 97University of Szeged has contributed chfs, 98http://en.wikipedia.org/wiki/CHFS, which is described as "the first 99open source flash specific file system written for NetBSD". All of 100these will be in 6.0. 101 102Responsible: ahoka 103 1047. RUMP Extensions 105------------------ 106 107Rump support has been in NetBSD for 2 releases now, and continues to be 108developed actively. Recent additions have included cgd support, and smbfs 109client support. 110 111Responsible: pooka 112 113 1148. Virtualised disks in Userland 115-------------------------------- 116 117For better support of virtualization, a library which provides a consistent 118view of virtualized disk images has been developed by jmcneill. This will 119not make it into 6.0, although some extra functionality for reading vmdk 120images is available in othersrc/external/bsd/vmdk. 121 122Responsible: jmcneill, agc 123 124 1259. In-kernel iSCSI Initiator 126---------------------------- 127 128NetBSD has had a userland implementation of an iSCSI initiator since 129NetBSD 4.99.35, based on ReFUSE. Wasabi Systems kindly contributed their 130kernel-based iSCSI initiator, and it will be in 6.0. 131 132Responsible: riz, agc 133 134 13510. RAIDframe parity map 136------------------------ 137 138Jed Davis successfully completed a Summer of Code project to implement 139parity map zones for RAIDframe. Parity mapping drastically reduces 140the amount of time spent rewriting parity after an unclean shutdown by 141keeping better track of which regions might have had outstanding 142writes. Enabled by default; can be disabled on a per-set basis, or 143tuned, with the new raidctl(8) commands. 144 145Merged in 5.99.22 sources, and will be in 6.0. A separate set of 146patches is available for NetBSD-5. 147 148Responsible: jld 149 150 15111. quota system re-work 152------------------------ 153 154The quota system has been re-worked by bouyer, and is in -current 155right now. dholland is updating and modifying this rework so that it 156is a more generalised solution, with better features for security. 157This is expected to be in 6.0, although there is a lot of work to 158complete. 159 160Responsible: bouyer, dholland 161 162 16312. LFS renovation 164------------------ 165 166LFS had been de-emphasised in the time period leading up to the 1675.0 release, but is undergoing some rework by perseant, and dholland 168has some contributions in this area too. 169 170Responsible: perseant, dholland 171 172 173Alistair Crooks, David Holland 174Sat Jan 14 05:52:37 PST 2012 175