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