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