xref: /netbsd-src/doc/roadmaps/storage (revision 6a493d6bc668897c91594964a732d38505b70cbb)
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