Blame


1 bdf5b5cd 2005-07-13 devnull .TH VENTI 8
2 bdf5b5cd 2005-07-13 devnull .SH NAME
3 bdf5b5cd 2005-07-13 devnull venti.conf \- venti configuration
4 bdf5b5cd 2005-07-13 devnull .SH DESCRIPTION
5 bdf5b5cd 2005-07-13 devnull Venti is a SHA1-addressed archival storage server.
6 bdf5b5cd 2005-07-13 devnull See
7 bdf5b5cd 2005-07-13 devnull .IR venti (7)
8 bdf5b5cd 2005-07-13 devnull for a full introduction to the system.
9 bdf5b5cd 2005-07-13 devnull This page documents the structure and operation of the server.
10 bdf5b5cd 2005-07-13 devnull .PP
11 bdf5b5cd 2005-07-13 devnull A venti server requires multiple disks or disk partitions,
12 bdf5b5cd 2005-07-13 devnull each of which must be properly formatted before the server
13 bdf5b5cd 2005-07-13 devnull can be run.
14 bdf5b5cd 2005-07-13 devnull .SS Disk
15 bdf5b5cd 2005-07-13 devnull The venti server maintains three disk structures, typically
16 bdf5b5cd 2005-07-13 devnull stored on raw disk partitions:
17 bdf5b5cd 2005-07-13 devnull the append-only
18 bdf5b5cd 2005-07-13 devnull .IR "data log" ,
19 bdf5b5cd 2005-07-13 devnull which holds, in sequential order,
20 bdf5b5cd 2005-07-13 devnull the contents of every block written to the server;
21 bdf5b5cd 2005-07-13 devnull the
22 bdf5b5cd 2005-07-13 devnull .IR index ,
23 bdf5b5cd 2005-07-13 devnull which helps locate a block in the data log given its score;
24 bdf5b5cd 2005-07-13 devnull and optionally the
25 bdf5b5cd 2005-07-13 devnull .IR "bloom filter" ,
26 bdf5b5cd 2005-07-13 devnull a concise summary of which scores are present in the index.
27 bdf5b5cd 2005-07-13 devnull The data log is the primary storage.
28 bdf5b5cd 2005-07-13 devnull To improve the robustness, it should be stored on
29 bdf5b5cd 2005-07-13 devnull a device that provides RAID functionality.
30 bdf5b5cd 2005-07-13 devnull The index and the bloom filter are optimizations
31 bdf5b5cd 2005-07-13 devnull employed to access the data log efficiently and can be rebuilt
32 bdf5b5cd 2005-07-13 devnull if lost or damaged.
33 bdf5b5cd 2005-07-13 devnull .PP
34 bdf5b5cd 2005-07-13 devnull The data log is logically split into sections called
35 bdf5b5cd 2005-07-13 devnull .IR arenas ,
36 bdf5b5cd 2005-07-13 devnull typically sized for easy offline backup
37 bdf5b5cd 2005-07-13 devnull (e.g., 500MB).
38 bdf5b5cd 2005-07-13 devnull A data log may comprise many disks, each storing
39 bdf5b5cd 2005-07-13 devnull one or more arenas.
40 bdf5b5cd 2005-07-13 devnull Such disks are called
41 bdf5b5cd 2005-07-13 devnull .IR "arena partitions" .
42 bdf5b5cd 2005-07-13 devnull Arena partitions are filled in the order given in the configuration.
43 bdf5b5cd 2005-07-13 devnull .PP
44 bdf5b5cd 2005-07-13 devnull The index is logically split into block-sized pieces called
45 bdf5b5cd 2005-07-13 devnull .IR buckets ,
46 bdf5b5cd 2005-07-13 devnull each of which is responsible for a particular range of scores.
47 bdf5b5cd 2005-07-13 devnull An index may be split across many disks, each storing many buckets.
48 bdf5b5cd 2005-07-13 devnull Such disks are called
49 bdf5b5cd 2005-07-13 devnull .IR "index sections" .
50 bdf5b5cd 2005-07-13 devnull .PP
51 bdf5b5cd 2005-07-13 devnull The index must be sized so that no bucket is full.
52 bdf5b5cd 2005-07-13 devnull When a bucket fills, the server must be shut down and
53 bdf5b5cd 2005-07-13 devnull the index made larger.
54 bdf5b5cd 2005-07-13 devnull Since scores appear random, each bucket will contain
55 bdf5b5cd 2005-07-13 devnull approximately the same number of entries.
56 bdf5b5cd 2005-07-13 devnull Index entries are 40 bytes long. Assuming that a typical block
57 bdf5b5cd 2005-07-13 devnull being written to the server is 8192 bytes and compresses to 4096
58 bdf5b5cd 2005-07-13 devnull bytes, the active index is expected to be about 1% of
59 bdf5b5cd 2005-07-13 devnull the active data log.
60 bdf5b5cd 2005-07-13 devnull Storing smaller blocks increases the relative index footprint;
61 bdf5b5cd 2005-07-13 devnull storing larger blocks decreases it.
62 bdf5b5cd 2005-07-13 devnull To allow variation in both block size and the random distribution
63 bdf5b5cd 2005-07-13 devnull of scores to buckets, the suggested index size is 5% of
64 bdf5b5cd 2005-07-13 devnull the active data log.
65 bdf5b5cd 2005-07-13 devnull .PP
66 bdf5b5cd 2005-07-13 devnull The (optional) bloom filter is a large bitmap that is stored on disk but
67 bdf5b5cd 2005-07-13 devnull also kept completely in memory while the venti server runs.
68 bdf5b5cd 2005-07-13 devnull It helps the venti server efficiently detect scores that are
69 bdf5b5cd 2005-07-13 devnull .I not
70 bdf5b5cd 2005-07-13 devnull already stored in the index.
71 bdf5b5cd 2005-07-13 devnull The bloom filter starts out zeroed.
72 bdf5b5cd 2005-07-13 devnull Each score recorded in the bloom filter is hashed to choose
73 bdf5b5cd 2005-07-13 devnull .I nhash
74 bdf5b5cd 2005-07-13 devnull bits to set in the bloom filter.
75 bdf5b5cd 2005-07-13 devnull A score is definitely not stored in the index of any of its
76 bdf5b5cd 2005-07-13 devnull .I nhash
77 bdf5b5cd 2005-07-13 devnull bits are not set.
78 bdf5b5cd 2005-07-13 devnull The bloom filter thus has two parameters:
79 bdf5b5cd 2005-07-13 devnull .I nhash
80 bdf5b5cd 2005-07-13 devnull (maximum 32)
81 bdf5b5cd 2005-07-13 devnull and the total bitmap size
82 bdf5b5cd 2005-07-13 devnull (maximum 512MB, 2\s-2\u32\d\s+2 bits).
83 bdf5b5cd 2005-07-13 devnull .PP
84 bdf5b5cd 2005-07-13 devnull The bloom filter should be sized so that
85 bdf5b5cd 2005-07-13 devnull .I nhash
86 bdf5b5cd 2005-07-13 devnull \(ti
87 bdf5b5cd 2005-07-13 devnull .I nblock
88 bdf5b5cd 2005-07-13 devnull \(ti
89 bdf5b5cd 2005-07-13 devnull 0.7
90 bdf5b5cd 2005-07-13 devnull \(<=
91 bdf5b5cd 2005-07-13 devnull 0.7 \(ti
92 bdf5b5cd 2005-07-13 devnull .IR b ,
93 bdf5b5cd 2005-07-13 devnull where
94 bdf5b5cd 2005-07-13 devnull .I nblock
95 bdf5b5cd 2005-07-13 devnull is the expected number of blocks stored on the server
96 bdf5b5cd 2005-07-13 devnull and
97 bdf5b5cd 2005-07-13 devnull .I b
98 bdf5b5cd 2005-07-13 devnull is the bitmap size in bits.
99 bdf5b5cd 2005-07-13 devnull The false positive rate of the bloom filter when sized
100 bdf5b5cd 2005-07-13 devnull this way is approximately 2\s-2\u\-\fInblock\fR\d\s+2.
101 bdf5b5cd 2005-07-13 devnull .I Nhash
102 bdf5b5cd 2005-07-13 devnull less than 10 are not very useful;
103 bdf5b5cd 2005-07-13 devnull .I nhash
104 bdf5b5cd 2005-07-13 devnull greater than 24 are probably a waste of memory.
105 bdf5b5cd 2005-07-13 devnull .I Fmtbloom
106 bdf5b5cd 2005-07-13 devnull (see
107 bdf5b5cd 2005-07-13 devnull .IR venti-fmt (8))
108 bdf5b5cd 2005-07-13 devnull can be given either
109 bdf5b5cd 2005-07-13 devnull .I nhash
110 bdf5b5cd 2005-07-13 devnull or
111 bdf5b5cd 2005-07-13 devnull .IR nblock ;
112 bdf5b5cd 2005-07-13 devnull if given
113 bdf5b5cd 2005-07-13 devnull .IR nblock ,
114 bdf5b5cd 2005-07-13 devnull it will derive an appropriate
115 bdf5b5cd 2005-07-13 devnull .IR nhash .
116 bdf5b5cd 2005-07-13 devnull .SS Memory
117 bdf5b5cd 2005-07-13 devnull Venti can make effective use of large amounts of memory
118 bdf5b5cd 2005-07-13 devnull for various caches.
119 bdf5b5cd 2005-07-13 devnull .PP
120 bdf5b5cd 2005-07-13 devnull The
121 bdf5b5cd 2005-07-13 devnull .I "lump cache
122 bdf5b5cd 2005-07-13 devnull holds recently-accessed venti data blocks, which the server refers to as
123 bdf5b5cd 2005-07-13 devnull .IR lumps .
124 bdf5b5cd 2005-07-13 devnull The lump cache should be at least 1MB but can profitably be much larger.
125 bdf5b5cd 2005-07-13 devnull The lump cache can be thought of as the level-1 cache:
126 bdf5b5cd 2005-07-13 devnull read requests handled by the lump cache can
127 bdf5b5cd 2005-07-13 devnull be served instantly.
128 bdf5b5cd 2005-07-13 devnull .PP
129 bdf5b5cd 2005-07-13 devnull The
130 bdf5b5cd 2005-07-13 devnull .I "block cache
131 bdf5b5cd 2005-07-13 devnull holds recently-accessed
132 bdf5b5cd 2005-07-13 devnull .I disk
133 bdf5b5cd 2005-07-13 devnull blocks from the arena partitions.
134 bdf5b5cd 2005-07-13 devnull The block cache needs to be able to simultaneously hold two blocks
135 bdf5b5cd 2005-07-13 devnull from each arena plus four blocks for the currently-filling arena.
136 bdf5b5cd 2005-07-13 devnull The block cache can be thought of as the level-2 cache:
137 bdf5b5cd 2005-07-13 devnull read requests handled by the block cache are slower than those
138 bdf5b5cd 2005-07-13 devnull handled by the lump cache, since the lump data must be extracted
139 bdf5b5cd 2005-07-13 devnull from the raw disk blocks and possibly decompressed, but no
140 bdf5b5cd 2005-07-13 devnull disk accesses are necessary.
141 bdf5b5cd 2005-07-13 devnull .PP
142 bdf5b5cd 2005-07-13 devnull The
143 bdf5b5cd 2005-07-13 devnull .I "index cache
144 bdf5b5cd 2005-07-13 devnull holds recently-accessed or prefetched
145 bdf5b5cd 2005-07-13 devnull index entries.
146 bdf5b5cd 2005-07-13 devnull The index cache needs to be able to hold index entries
147 bdf5b5cd 2005-07-13 devnull for three or four arenas, at least, in order for prefetching
148 bdf5b5cd 2005-07-13 devnull to work properly. Each index entry is 50 bytes.
149 bdf5b5cd 2005-07-13 devnull Assuming 500MB arenas of
150 bdf5b5cd 2005-07-13 devnull 128,000 blocks that are 4096 bytes each after compression,
151 bdf5b5cd 2005-07-13 devnull the minimum index cache size is about 6MB.
152 bdf5b5cd 2005-07-13 devnull The index cache can be thought of as the level-3 cache:
153 bdf5b5cd 2005-07-13 devnull read requests handled by the index cache must still go
154 bdf5b5cd 2005-07-13 devnull to disk to fetch the arena blocks, but the costly random
155 bdf5b5cd 2005-07-13 devnull access to the index is avoided.
156 bdf5b5cd 2005-07-13 devnull .PP
157 bdf5b5cd 2005-07-13 devnull The size of the index cache determines how long venti
158 bdf5b5cd 2005-07-13 devnull can sustain its `burst' write throughput, during which time
159 bdf5b5cd 2005-07-13 devnull the only disk accesses on the critical path
160 bdf5b5cd 2005-07-13 devnull are sequential writes to the arena partitions.
161 bdf5b5cd 2005-07-13 devnull For example, if you want to be able to sustain 10MB/s
162 bdf5b5cd 2005-07-13 devnull for an hour, you need enough index cache to hold entries
163 bdf5b5cd 2005-07-13 devnull for 36GB of blocks. Assuming 8192-byte blocks,
164 bdf5b5cd 2005-07-13 devnull you need room for almost five million index entries.
165 bdf5b5cd 2005-07-13 devnull Since index entries are 50 bytes each, you need 250MB
166 bdf5b5cd 2005-07-13 devnull of index cache.
167 bdf5b5cd 2005-07-13 devnull If the background index update process can make a single
168 bdf5b5cd 2005-07-13 devnull pass through the index in an hour, which is possible,
169 bdf5b5cd 2005-07-13 devnull then you can sustain the 10MB/s indefinitely (at least until
170 bdf5b5cd 2005-07-13 devnull the arenas are all filled).
171 bdf5b5cd 2005-07-13 devnull .PP
172 bdf5b5cd 2005-07-13 devnull The
173 bdf5b5cd 2005-07-13 devnull .I "bloom filter
174 bdf5b5cd 2005-07-13 devnull requires memory equal to its size on disk,
175 bdf5b5cd 2005-07-13 devnull as discussed above.
176 bdf5b5cd 2005-07-13 devnull .PP
177 bdf5b5cd 2005-07-13 devnull A reasonable starting allocation is to
178 bdf5b5cd 2005-07-13 devnull divide memory equally (in thirds) between
179 bdf5b5cd 2005-07-13 devnull the bloom filter, the index cache, and the lump and block caches;
180 bdf5b5cd 2005-07-13 devnull the third of memory allocated to the lump and block caches
181 bdf5b5cd 2005-07-13 devnull should be split unevenly, with more (say, two thirds)
182 bdf5b5cd 2005-07-13 devnull going to the block cache.
183 bdf5b5cd 2005-07-13 devnull .SS Network
184 bdf5b5cd 2005-07-13 devnull The venti server announces two network services, one
185 bdf5b5cd 2005-07-13 devnull (conventionally TCP port
186 bdf5b5cd 2005-07-13 devnull .BR venti ,
187 bdf5b5cd 2005-07-13 devnull 17034) serving
188 bdf5b5cd 2005-07-13 devnull the venti protocol as described in
189 bdf5b5cd 2005-07-13 devnull .IR venti (7),
190 bdf5b5cd 2005-07-13 devnull and one serving HTTP
191 bdf5b5cd 2005-07-13 devnull (conventionally TCP port
192 bdf5b5cd 2005-07-13 devnull .BR venti ,
193 bdf5b5cd 2005-07-13 devnull 80).
194 bdf5b5cd 2005-07-13 devnull .PP
195 bdf5b5cd 2005-07-13 devnull The venti web server provides the following
196 bdf5b5cd 2005-07-13 devnull URLs for accessing status information:
197 bdf5b5cd 2005-07-13 devnull .TP
198 bdf5b5cd 2005-07-13 devnull .B /index
199 bdf5b5cd 2005-07-13 devnull A summary of the usage of the arenas and index sections.
200 bdf5b5cd 2005-07-13 devnull .TP
201 bdf5b5cd 2005-07-13 devnull .B /xindex
202 bdf5b5cd 2005-07-13 devnull An XML version of
203 bdf5b5cd 2005-07-13 devnull .BR /index .
204 bdf5b5cd 2005-07-13 devnull .TP
205 bdf5b5cd 2005-07-13 devnull .B /storage
206 bdf5b5cd 2005-07-13 devnull Brief storage totals.
207 bdf5b5cd 2005-07-13 devnull .TP
208 bdf5b5cd 2005-07-13 devnull .BI /set/ variable
209 bdf5b5cd 2005-07-13 devnull The current integer value of
210 bdf5b5cd 2005-07-13 devnull .IR variable .
211 bdf5b5cd 2005-07-13 devnull Variables are:
212 bdf5b5cd 2005-07-13 devnull .BR compress ,
213 bdf5b5cd 2005-07-13 devnull whether or not to compress blocks
214 bdf5b5cd 2005-07-13 devnull (for debugging);
215 bdf5b5cd 2005-07-13 devnull .BR logging ,
216 bdf5b5cd 2005-07-13 devnull whether to write entries to the debugging logs;
217 bdf5b5cd 2005-07-13 devnull .BR stats ,
218 bdf5b5cd 2005-07-13 devnull whether to collect run-time statistics;
219 bdf5b5cd 2005-07-13 devnull .BR icachesleeptime ,
220 bdf5b5cd 2005-07-13 devnull the time in milliseconds between successive updates
221 bdf5b5cd 2005-07-13 devnull of megabytes of the index cache;
222 bdf5b5cd 2005-07-13 devnull .BR arenasumsleeptime ,
223 bdf5b5cd 2005-07-13 devnull the time in milliseconds between reads while
224 bdf5b5cd 2005-07-13 devnull checksumming an arena in the background.
225 bdf5b5cd 2005-07-13 devnull The two sleep times should be (but are not) managed by venti;
226 bdf5b5cd 2005-07-13 devnull they exist to provide more experience with their effects.
227 bdf5b5cd 2005-07-13 devnull The other variables exist only for debugging and
228 bdf5b5cd 2005-07-13 devnull performance measurement.
229 bdf5b5cd 2005-07-13 devnull .TP
230 bdf5b5cd 2005-07-13 devnull .BI /set/ variable / value
231 bdf5b5cd 2005-07-13 devnull Set
232 bdf5b5cd 2005-07-13 devnull .I variable
233 bdf5b5cd 2005-07-13 devnull to
234 bdf5b5cd 2005-07-13 devnull .IR value .
235 bdf5b5cd 2005-07-13 devnull .TP
236 bdf5b5cd 2005-07-13 devnull .BI /graph/ name / param / param / \fR...
237 bdf5b5cd 2005-07-13 devnull A PNG image graphing the named run-time statistic over time.
238 bdf5b5cd 2005-07-13 devnull The details of names and parameters are undocumented;
239 bdf5b5cd 2005-07-13 devnull see
240 bdf5b5cd 2005-07-13 devnull .B httpd.c
241 bdf5b5cd 2005-07-13 devnull in the venti sources.
242 bdf5b5cd 2005-07-13 devnull .TP
243 bdf5b5cd 2005-07-13 devnull .B /log
244 bdf5b5cd 2005-07-13 devnull A list of all debugging logs present in the server's memory.
245 bdf5b5cd 2005-07-13 devnull .TP
246 bdf5b5cd 2005-07-13 devnull .BI /log/ name
247 bdf5b5cd 2005-07-13 devnull The contents of the debugging log with the given
248 bdf5b5cd 2005-07-13 devnull .IR name .
249 bdf5b5cd 2005-07-13 devnull .TP
250 bdf5b5cd 2005-07-13 devnull .B /flushicache
251 bdf5b5cd 2005-07-13 devnull Force venti to begin flushing the index cache to disk.
252 bdf5b5cd 2005-07-13 devnull The request response will not be sent until the flush
253 bdf5b5cd 2005-07-13 devnull has completed.
254 bdf5b5cd 2005-07-13 devnull .TP
255 bdf5b5cd 2005-07-13 devnull .B /flushdcache
256 bdf5b5cd 2005-07-13 devnull Force venti to begin flushing the arena block cache to disk.
257 bdf5b5cd 2005-07-13 devnull The request response will not be sent until the flush
258 bdf5b5cd 2005-07-13 devnull has completed.
259 bdf5b5cd 2005-07-13 devnull .PD
260 bdf5b5cd 2005-07-13 devnull .PP
261 bdf5b5cd 2005-07-13 devnull Requests for other files are served by consulting a
262 bdf5b5cd 2005-07-13 devnull directory named in the configuration file
263 bdf5b5cd 2005-07-13 devnull (see
264 bdf5b5cd 2005-07-13 devnull .B webroot
265 bdf5b5cd 2005-07-13 devnull below).
266 bdf5b5cd 2005-07-13 devnull .SS Configuration File
267 bdf5b5cd 2005-07-13 devnull A venti configuration file
268 bdf5b5cd 2005-07-13 devnull enumerates the various index sections and
269 bdf5b5cd 2005-07-13 devnull arenas that constitute a venti system.
270 bdf5b5cd 2005-07-13 devnull The components are indicated by the name of the file, typically
271 bdf5b5cd 2005-07-13 devnull a disk partition, in which they reside. The configuration
272 bdf5b5cd 2005-07-13 devnull file is the only location that file names are used. Internally,
273 bdf5b5cd 2005-07-13 devnull venti uses the names assigned when the components were formatted
274 bdf5b5cd 2005-07-13 devnull with
275 bdf5b5cd 2005-07-13 devnull .I fmtarenas
276 bdf5b5cd 2005-07-13 devnull or
277 bdf5b5cd 2005-07-13 devnull .I fmtisect
278 bdf5b5cd 2005-07-13 devnull (see
279 bdf5b5cd 2005-07-13 devnull .IR venti-fmt (8)).
280 bdf5b5cd 2005-07-13 devnull In particular, only the configuration needs to be
281 bdf5b5cd 2005-07-13 devnull changed if a component is moved to a different file.
282 bdf5b5cd 2005-07-13 devnull .PP
283 bdf5b5cd 2005-07-13 devnull The configuration file consists of lines in the form described below.
284 bdf5b5cd 2005-07-13 devnull Lines starting with
285 bdf5b5cd 2005-07-13 devnull .B #
286 bdf5b5cd 2005-07-13 devnull are comments.
287 bdf5b5cd 2005-07-13 devnull .TP
288 bdf5b5cd 2005-07-13 devnull .BI index " name
289 bdf5b5cd 2005-07-13 devnull Names the index for the system.
290 bdf5b5cd 2005-07-13 devnull .TP
291 bdf5b5cd 2005-07-13 devnull .BI arenas " file
292 bdf5b5cd 2005-07-13 devnull .I File
293 bdf5b5cd 2005-07-13 devnull is an arena partition, formatted using
294 bdf5b5cd 2005-07-13 devnull .IR fmtarenas .
295 bdf5b5cd 2005-07-13 devnull .TP
296 bdf5b5cd 2005-07-13 devnull .BI isect " file
297 bdf5b5cd 2005-07-13 devnull .I File
298 bdf5b5cd 2005-07-13 devnull is an index section, formatted using
299 bdf5b5cd 2005-07-13 devnull .IR fmtisect .
300 bdf5b5cd 2005-07-13 devnull .PP
301 bdf5b5cd 2005-07-13 devnull After formatting a venti system using
302 bdf5b5cd 2005-07-13 devnull .IR fmtindex ,
303 bdf5b5cd 2005-07-13 devnull the order of arenas and index sections should not be changed.
304 bdf5b5cd 2005-07-13 devnull Additional arenas can be appended to the configuration;
305 bdf5b5cd 2005-07-13 devnull run
306 bdf5b5cd 2005-07-13 devnull .I fmtindex
307 bdf5b5cd 2005-07-13 devnull with the
308 bdf5b5cd 2005-07-13 devnull .B -a
309 bdf5b5cd 2005-07-13 devnull flag to update the index.
310 bdf5b5cd 2005-07-13 devnull .PP
311 bdf5b5cd 2005-07-13 devnull The configuration file also holds configuration parameters
312 bdf5b5cd 2005-07-13 devnull for the venti server itself.
313 bdf5b5cd 2005-07-13 devnull These are:
314 bdf5b5cd 2005-07-13 devnull .TF httpaddr netaddr
315 bdf5b5cd 2005-07-13 devnull .TP
316 bdf5b5cd 2005-07-13 devnull .BI mem " size
317 bdf5b5cd 2005-07-13 devnull lump cache size
318 bdf5b5cd 2005-07-13 devnull .TP
319 bdf5b5cd 2005-07-13 devnull .BI bcmem " size
320 bdf5b5cd 2005-07-13 devnull block cache size
321 bdf5b5cd 2005-07-13 devnull .TP
322 bdf5b5cd 2005-07-13 devnull .BI icmem " size
323 bdf5b5cd 2005-07-13 devnull index cache size
324 bdf5b5cd 2005-07-13 devnull .TP
325 bdf5b5cd 2005-07-13 devnull .BI addr " netaddr
326 bdf5b5cd 2005-07-13 devnull network address to announce venti service
327 bdf5b5cd 2005-07-13 devnull (default
328 bdf5b5cd 2005-07-13 devnull .BR tcp!*!venti )
329 bdf5b5cd 2005-07-13 devnull .TP
330 bdf5b5cd 2005-07-13 devnull .BI httpaddr " netaddr
331 bdf5b5cd 2005-07-13 devnull network address to announce HTTP service
332 bdf5b5cd 2005-07-13 devnull (default
333 bdf5b5cd 2005-07-13 devnull .BR tcp!*!http )
334 bdf5b5cd 2005-07-13 devnull .TP
335 bdf5b5cd 2005-07-13 devnull .B queuewrites
336 bdf5b5cd 2005-07-13 devnull queue writes in memory
337 bdf5b5cd 2005-07-13 devnull (default is not to queue)
338 bdf5b5cd 2005-07-13 devnull .TP
339 bdf5b5cd 2005-07-13 devnull .BI webroot " dir
340 bdf5b5cd 2005-07-13 devnull directory tree containing files for HTTP server
341 bdf5b5cd 2005-07-13 devnull to consult for unrecognized URLs
342 bdf5b5cd 2005-07-13 devnull .PD
343 bdf5b5cd 2005-07-13 devnull .PP
344 bdf5b5cd 2005-07-13 devnull The units for the various cache sizes above can be specified by appending a
345 bdf5b5cd 2005-07-13 devnull .LR k ,
346 bdf5b5cd 2005-07-13 devnull .LR m ,
347 bdf5b5cd 2005-07-13 devnull or
348 bdf5b5cd 2005-07-13 devnull .LR g
349 bdf5b5cd 2005-07-13 devnull (case-insensitive)
350 bdf5b5cd 2005-07-13 devnull to indicate kilobytes, megabytes, or gigabytes respectively.
351 bdf5b5cd 2005-07-13 devnull .SS Command Line
352 bdf5b5cd 2005-07-13 devnull Options to
353 bdf5b5cd 2005-07-13 devnull .I venti
354 bdf5b5cd 2005-07-13 devnull are:
355 bdf5b5cd 2005-07-13 devnull .TP
356 bdf5b5cd 2005-07-13 devnull .BI -c " config
357 bdf5b5cd 2005-07-13 devnull The server configuration file
358 bdf5b5cd 2005-07-13 devnull (default
359 bdf5b5cd 2005-07-13 devnull .BR venti.conf )
360 bdf5b5cd 2005-07-13 devnull .TP
361 bdf5b5cd 2005-07-13 devnull .BI -o " line
362 bdf5b5cd 2005-07-13 devnull Set a server parameter, using the same syntax
363 bdf5b5cd 2005-07-13 devnull as in the configuration file.
364 bdf5b5cd 2005-07-13 devnull The
365 bdf5b5cd 2005-07-13 devnull .B -o
366 bdf5b5cd 2005-07-13 devnull options override the configuration file.
367 bdf5b5cd 2005-07-13 devnull .TP
368 bdf5b5cd 2005-07-13 devnull .B -d
369 bdf5b5cd 2005-07-13 devnull Produce various debugging information on standard error.
370 bdf5b5cd 2005-07-13 devnull Implies
371 bdf5b5cd 2005-07-13 devnull .BR -s .
372 bdf5b5cd 2005-07-13 devnull .TP
373 bdf5b5cd 2005-07-13 devnull .B -L
374 bdf5b5cd 2005-07-13 devnull Enable logging. By default all logging is disabled.
375 bdf5b5cd 2005-07-13 devnull Logging slows server operation considerably.
376 bdf5b5cd 2005-07-13 devnull .TP
377 bdf5b5cd 2005-07-13 devnull .B -s
378 bdf5b5cd 2005-07-13 devnull Do not run in the background.
379 bdf5b5cd 2005-07-13 devnull Normally,
380 bdf5b5cd 2005-07-13 devnull the foreground process will exit once the Venti server
381 bdf5b5cd 2005-07-13 devnull is initialized and ready for connections.
382 bdf5b5cd 2005-07-13 devnull .PD
383 bdf5b5cd 2005-07-13 devnull .SH EXAMPLE
384 bdf5b5cd 2005-07-13 devnull A simple configuration:
385 bdf5b5cd 2005-07-13 devnull .IP
386 bdf5b5cd 2005-07-13 devnull .EX
387 bdf5b5cd 2005-07-13 devnull % cat venti.conf
388 bdf5b5cd 2005-07-13 devnull index main
389 bdf5b5cd 2005-07-13 devnull isect /tmp/disks/isect0
390 bdf5b5cd 2005-07-13 devnull isect /tmp/disks/isect1
391 bdf5b5cd 2005-07-13 devnull arenas /tmp/disks/arenas
392 bdf5b5cd 2005-07-13 devnull mem 10M
393 bdf5b5cd 2005-07-13 devnull bcmem 20M
394 bdf5b5cd 2005-07-13 devnull icmem 30M
395 bdf5b5cd 2005-07-13 devnull %
396 bdf5b5cd 2005-07-13 devnull .EE
397 bdf5b5cd 2005-07-13 devnull .PP
398 bdf5b5cd 2005-07-13 devnull Format the index sections, the arena partition, and
399 bdf5b5cd 2005-07-13 devnull finally the main index:
400 bdf5b5cd 2005-07-13 devnull .IP
401 bdf5b5cd 2005-07-13 devnull .EX
402 bdf5b5cd 2005-07-13 devnull % venti/fmtisect isect0. /tmp/disks/isect0 &
403 bdf5b5cd 2005-07-13 devnull % venti/fmtisect isect1. /tmp/disks/isect1 &
404 bdf5b5cd 2005-07-13 devnull % venti/fmtarenas arenas0. /tmp/disks/arenas &
405 bdf5b5cd 2005-07-13 devnull % wait
406 bdf5b5cd 2005-07-13 devnull % venti/fmtindex venti.conf
407 bdf5b5cd 2005-07-13 devnull %
408 bdf5b5cd 2005-07-13 devnull .EE
409 bdf5b5cd 2005-07-13 devnull .PP
410 bdf5b5cd 2005-07-13 devnull Start the server and check the storage statistics:
411 bdf5b5cd 2005-07-13 devnull .IP
412 bdf5b5cd 2005-07-13 devnull .EX
413 bdf5b5cd 2005-07-13 devnull % venti/venti
414 bdf5b5cd 2005-07-13 devnull % hget http://$sysname/storage
415 bdf5b5cd 2005-07-13 devnull .EE
416 bdf5b5cd 2005-07-13 devnull .SH "SEE ALSO"
417 bdf5b5cd 2005-07-13 devnull .IR venti (1),
418 bdf5b5cd 2005-07-13 devnull .IR venti (3),
419 bdf5b5cd 2005-07-13 devnull .IR venti (7),
420 bdf5b5cd 2005-07-13 devnull .IR venti-backup (8)
421 bdf5b5cd 2005-07-13 devnull .IR venti-fmt (8)
422 bdf5b5cd 2005-07-13 devnull .br
423 bdf5b5cd 2005-07-13 devnull Sean Quinlan and Sean Dorward,
424 bdf5b5cd 2005-07-13 devnull ``Venti: a new approach to archival storage'',
425 bdf5b5cd 2005-07-13 devnull .I "Usenix Conference on File and Storage Technologies" ,
426 bdf5b5cd 2005-07-13 devnull 2002.
427 bdf5b5cd 2005-07-13 devnull .SH BUGS
428 bdf5b5cd 2005-07-13 devnull Setting up a venti server is too complicated.
429 bdf5b5cd 2005-07-13 devnull .PP
430 bdf5b5cd 2005-07-13 devnull Venti should not require the user to decide how to
431 bdf5b5cd 2005-07-13 devnull partition its memory usage.