Blame


1 1a8f27c3 2004-05-14 devnull .TH VENTI 8
2 1a8f27c3 2004-05-14 devnull .SH NAME
3 1a8f27c3 2004-05-14 devnull venti \- an archival block storage server
4 1a8f27c3 2004-05-14 devnull .SH SYNOPSIS
5 1a8f27c3 2004-05-14 devnull .B venti/venti
6 1a8f27c3 2004-05-14 devnull [
7 1a8f27c3 2004-05-14 devnull .B -dsw
8 1a8f27c3 2004-05-14 devnull ]
9 1a8f27c3 2004-05-14 devnull [
10 1a8f27c3 2004-05-14 devnull .B -a
11 1a8f27c3 2004-05-14 devnull .I ventiaddress
12 1a8f27c3 2004-05-14 devnull ]
13 1a8f27c3 2004-05-14 devnull [
14 1a8f27c3 2004-05-14 devnull .B -B
15 1a8f27c3 2004-05-14 devnull .I blockcachesize
16 1a8f27c3 2004-05-14 devnull ]
17 1a8f27c3 2004-05-14 devnull [
18 1a8f27c3 2004-05-14 devnull .B -c
19 1a8f27c3 2004-05-14 devnull .I config
20 1a8f27c3 2004-05-14 devnull ]
21 1a8f27c3 2004-05-14 devnull [
22 1a8f27c3 2004-05-14 devnull .B -C
23 1a8f27c3 2004-05-14 devnull .I cachesize
24 1a8f27c3 2004-05-14 devnull ]
25 1a8f27c3 2004-05-14 devnull [
26 1a8f27c3 2004-05-14 devnull .B -h
27 1a8f27c3 2004-05-14 devnull .I httpaddress
28 1a8f27c3 2004-05-14 devnull ]
29 1a8f27c3 2004-05-14 devnull [
30 1a8f27c3 2004-05-14 devnull .B -I
31 1a8f27c3 2004-05-14 devnull .I icachesize
32 1a8f27c3 2004-05-14 devnull ]
33 1a8f27c3 2004-05-14 devnull .PP
34 1a8f27c3 2004-05-14 devnull .B venti/sync
35 1a8f27c3 2004-05-14 devnull [
36 1a8f27c3 2004-05-14 devnull .B -h
37 1a8f27c3 2004-05-14 devnull .I host
38 1a8f27c3 2004-05-14 devnull ]
39 1a8f27c3 2004-05-14 devnull .SH DESCRIPTION
40 1a8f27c3 2004-05-14 devnull .I Venti
41 1a8f27c3 2004-05-14 devnull is a block storage server intended for archival data.
42 1a8f27c3 2004-05-14 devnull In a Venti server,
43 1a8f27c3 2004-05-14 devnull the SHA1 hash of a block's contents acts as the block
44 1a8f27c3 2004-05-14 devnull identifier for read and write operations.
45 1a8f27c3 2004-05-14 devnull This approach enforces a write-once policy, preventing accidental or
46 1a8f27c3 2004-05-14 devnull malicious destruction of data. In addition, duplicate copies of a
47 1a8f27c3 2004-05-14 devnull block are coalesced, reducing the consumption of storage and
48 1a8f27c3 2004-05-14 devnull simplifying the implementation of clients.
49 1a8f27c3 2004-05-14 devnull .PP
50 1a8f27c3 2004-05-14 devnull Storage for
51 1a8f27c3 2004-05-14 devnull .I venti
52 1a8f27c3 2004-05-14 devnull consists of a data log and an index, both of which
53 1a8f27c3 2004-05-14 devnull can be spread across multiple files.
54 1a8f27c3 2004-05-14 devnull The files containing the data log are themselves divided into self-contained sections called arenas.
55 1a8f27c3 2004-05-14 devnull Each arena contains a large number of data blocks and is sized to
56 1a8f27c3 2004-05-14 devnull facilitate operations such as copying to removable media.
57 1a8f27c3 2004-05-14 devnull The index provides a mapping between the a Sha1 fingerprint and
58 1a8f27c3 2004-05-14 devnull the location of the corresponding block in the data log.
59 1a8f27c3 2004-05-14 devnull .PP
60 1a8f27c3 2004-05-14 devnull The index and data log are typically stored on raw disk partitions.
61 1a8f27c3 2004-05-14 devnull To improve the robustness, the data log should be stored on
62 1a8f27c3 2004-05-14 devnull a device that provides RAID functionality. The index does
63 1a8f27c3 2004-05-14 devnull not require such protection, since if necessary, it can
64 1a8f27c3 2004-05-14 devnull can be regenerated from the data log.
65 1a8f27c3 2004-05-14 devnull The performance of
66 1a8f27c3 2004-05-14 devnull .I venti
67 1a8f27c3 2004-05-14 devnull is typically limited to the random access performance
68 1a8f27c3 2004-05-14 devnull of the index. This performance can be improved by spreading the
69 1a8f27c3 2004-05-14 devnull index accross multiple disks.
70 1a8f27c3 2004-05-14 devnull .PP
71 1a8f27c3 2004-05-14 devnull The storage for
72 1a8f27c3 2004-05-14 devnull .I venti
73 1a8f27c3 2004-05-14 devnull is initialized using
74 1a8f27c3 2004-05-14 devnull .IR fmtarenas ,
75 1a8f27c3 2004-05-14 devnull .IR fmtisect ,
76 1a8f27c3 2004-05-14 devnull and
77 1a8f27c3 2004-05-14 devnull .I fmtindex
78 1a8f27c3 2004-05-14 devnull (see
79 1a8f27c3 2004-05-14 devnull .IR ventiaux (8)).
80 1a8f27c3 2004-05-14 devnull A configuration file,
81 1a8f27c3 2004-05-14 devnull .IR venti.conf (6),
82 1a8f27c3 2004-05-14 devnull ties the index sections and data arenas together.
83 1a8f27c3 2004-05-14 devnull .PP
84 1a8f27c3 2004-05-14 devnull A Venti
85 1a8f27c3 2004-05-14 devnull server is accessed via an undocumented network protocol.
86 1a8f27c3 2004-05-14 devnull Two client applications are included in this distribution:
87 1a8f27c3 2004-05-14 devnull .IR vac (1)
88 1a8f27c3 2004-05-14 devnull and
89 1a8f27c3 2004-05-14 devnull .IR vacfs (4).
90 1a8f27c3 2004-05-14 devnull .I Vac
91 1a8f27c3 2004-05-14 devnull copies files from a Plan 9 file system to Venti, creating an
92 1a8f27c3 2004-05-14 devnull archive and returning the fingerprint of the root.
93 1a8f27c3 2004-05-14 devnull This archive can be mounted in Plan 9 using
94 1a8f27c3 2004-05-14 devnull .IR vacfs .
95 1a8f27c3 2004-05-14 devnull These two commands enable a rudimentary backup system.
96 1a8f27c3 2004-05-14 devnull A future release will include a Plan 9 file system that uses
97 1a8f27c3 2004-05-14 devnull Venti as a replacement for the WORM device of
98 1a8f27c3 2004-05-14 devnull .IR fs (4).
99 1a8f27c3 2004-05-14 devnull .PP
100 1a8f27c3 2004-05-14 devnull The
101 1a8f27c3 2004-05-14 devnull .I venti
102 1a8f27c3 2004-05-14 devnull server provides rudimentary status information via
103 1a8f27c3 2004-05-14 devnull a built-in http server. The URL files it serves are:
104 1a8f27c3 2004-05-14 devnull .TP
105 1a8f27c3 2004-05-14 devnull .B stats
106 1a8f27c3 2004-05-14 devnull Various internal statistics.
107 1a8f27c3 2004-05-14 devnull .TP
108 1a8f27c3 2004-05-14 devnull .B index
109 1a8f27c3 2004-05-14 devnull An enumeration of the index sections and all non empty arenas, including various statistics.
110 1a8f27c3 2004-05-14 devnull .TP
111 1a8f27c3 2004-05-14 devnull .B storage
112 1a8f27c3 2004-05-14 devnull A summary of the state of the data log.
113 1a8f27c3 2004-05-14 devnull .TP
114 1a8f27c3 2004-05-14 devnull .B xindex
115 1a8f27c3 2004-05-14 devnull An enumeration of the index sections and all non empty arenas, in XML format.
116 1a8f27c3 2004-05-14 devnull .PP
117 1a8f27c3 2004-05-14 devnull Several auxiliary utilities (see
118 1a8f27c3 2004-05-14 devnull .IR ventiaux (8))
119 1a8f27c3 2004-05-14 devnull aid in maintaining the storage for Venti.
120 1a8f27c3 2004-05-14 devnull With the exception of
121 1a8f27c3 2004-05-14 devnull .I rdarena ,
122 1a8f27c3 2004-05-14 devnull these utilities should generally be run after killing the
123 1a8f27c3 2004-05-14 devnull .I venti
124 1a8f27c3 2004-05-14 devnull server.
125 1a8f27c3 2004-05-14 devnull The utilities are:
126 1a8f27c3 2004-05-14 devnull .TP
127 1a8f27c3 2004-05-14 devnull .I checkarenas
128 1a8f27c3 2004-05-14 devnull Check the integrity, and optionally fix, Venti arenas.
129 1a8f27c3 2004-05-14 devnull .TP
130 1a8f27c3 2004-05-14 devnull .I checkindex
131 1a8f27c3 2004-05-14 devnull Check the integrity, and optionally fix, a Venti index.
132 1a8f27c3 2004-05-14 devnull .TP
133 1a8f27c3 2004-05-14 devnull .I buildindex
134 1a8f27c3 2004-05-14 devnull Rebuild a Venti index from scratch.
135 1a8f27c3 2004-05-14 devnull .TP
136 1a8f27c3 2004-05-14 devnull .I rdarena
137 1a8f27c3 2004-05-14 devnull Extract a Venti arena and write to standard output.
138 1a8f27c3 2004-05-14 devnull .PD
139 1a8f27c3 2004-05-14 devnull .PP
140 1a8f27c3 2004-05-14 devnull Options to
141 1a8f27c3 2004-05-14 devnull .I venti
142 1a8f27c3 2004-05-14 devnull are:
143 1a8f27c3 2004-05-14 devnull .TP
144 1a8f27c3 2004-05-14 devnull .BI -a " ventiaddress
145 1a8f27c3 2004-05-14 devnull The network address on which the server listens for incoming connections.
146 1a8f27c3 2004-05-14 devnull The default is
147 1a8f27c3 2004-05-14 devnull .LR tcp!*!venti .
148 1a8f27c3 2004-05-14 devnull .TP
149 1a8f27c3 2004-05-14 devnull .BI -B " blockcachesize
150 1a8f27c3 2004-05-14 devnull The size, in bytes, of memory allocated to caching raw disk blocks.
151 1a8f27c3 2004-05-14 devnull .TP
152 1a8f27c3 2004-05-14 devnull .BI -c " config
153 1a8f27c3 2004-05-14 devnull Specifies the
154 1a8f27c3 2004-05-14 devnull Venti
155 1a8f27c3 2004-05-14 devnull configuration file.
156 1a8f27c3 2004-05-14 devnull Defaults to
157 1a8f27c3 2004-05-14 devnull .LR venti.conf .
158 1a8f27c3 2004-05-14 devnull .TP
159 1a8f27c3 2004-05-14 devnull .BI -C " cachesize
160 1a8f27c3 2004-05-14 devnull The size, in bytes, of memory allocated to caching
161 1a8f27c3 2004-05-14 devnull Venti
162 1a8f27c3 2004-05-14 devnull blocks.
163 1a8f27c3 2004-05-14 devnull .TP
164 1a8f27c3 2004-05-14 devnull .BI -d
165 1a8f27c3 2004-05-14 devnull Produce various debugging information on standard error.
166 1a8f27c3 2004-05-14 devnull .TP
167 1a8f27c3 2004-05-14 devnull .BI -h " httpaddress
168 1a8f27c3 2004-05-14 devnull The network address of Venti's built-in
169 1a8f27c3 2004-05-14 devnull http
170 1a8f27c3 2004-05-14 devnull server.
171 1a8f27c3 2004-05-14 devnull The default is
172 1a8f27c3 2004-05-14 devnull .LR tcp!*!http .
173 1a8f27c3 2004-05-14 devnull .TP
174 1a8f27c3 2004-05-14 devnull .BI -I " icachesize
175 1a8f27c3 2004-05-14 devnull The size, in bytes, of memory allocated to caching the index mapping fingerprints
176 1a8f27c3 2004-05-14 devnull to locations in
177 1a8f27c3 2004-05-14 devnull .IR venti 's
178 1a8f27c3 2004-05-14 devnull data log.
179 1a8f27c3 2004-05-14 devnull .TP
180 1a8f27c3 2004-05-14 devnull .B -s
181 1a8f27c3 2004-05-14 devnull Do not run in the background.
182 1a8f27c3 2004-05-14 devnull Normally,
183 1a8f27c3 2004-05-14 devnull the foreground process will exit once the Venti server
184 1a8f27c3 2004-05-14 devnull is initialized and ready for connections.
185 1a8f27c3 2004-05-14 devnull .TP
186 1a8f27c3 2004-05-14 devnull .B -w
187 1a8f27c3 2004-05-14 devnull Enable write buffering. This option increase the performance of writes to
188 1a8f27c3 2004-05-14 devnull .I venti
189 1a8f27c3 2004-05-14 devnull at the cost of returning success to the client application before the
190 1a8f27c3 2004-05-14 devnull data has been written to disk.
191 1a8f27c3 2004-05-14 devnull The server implements a
192 1a8f27c3 2004-05-14 devnull .I sync
193 1a8f27c3 2004-05-14 devnull rpc that waits for completion of all the writes buffered at the time
194 1a8f27c3 2004-05-14 devnull the rpc was received.
195 1a8f27c3 2004-05-14 devnull Applications such as
196 1a8f27c3 2004-05-14 devnull .IR vac (1)
197 1a8f27c3 2004-05-14 devnull and the
198 1a8f27c3 2004-05-14 devnull .I sync
199 1a8f27c3 2004-05-14 devnull command described below
200 1a8f27c3 2004-05-14 devnull use this rpc to make sure that the data is correctly written to disk.
201 1a8f27c3 2004-05-14 devnull Use of this option is recommended.
202 1a8f27c3 2004-05-14 devnull .PD
203 1a8f27c3 2004-05-14 devnull .PP
204 1a8f27c3 2004-05-14 devnull The units for the various cache sizes above can be specified by appending a
205 1a8f27c3 2004-05-14 devnull .LR k ,
206 1a8f27c3 2004-05-14 devnull .LR m ,
207 1a8f27c3 2004-05-14 devnull or
208 1a8f27c3 2004-05-14 devnull .LR g
209 1a8f27c3 2004-05-14 devnull to indicate kilobytes, megabytes, or gigabytes respectively.
210 1a8f27c3 2004-05-14 devnull The command line options override options found in the
211 1a8f27c3 2004-05-14 devnull .IR venti.conf (6)
212 1a8f27c3 2004-05-14 devnull file.
213 1a8f27c3 2004-05-14 devnull .PP
214 1a8f27c3 2004-05-14 devnull .I Sync
215 1a8f27c3 2004-05-14 devnull connects to a running Venti server and executes a sync rpc
216 1a8f27c3 2004-05-14 devnull (described with the
217 1a8f27c3 2004-05-14 devnull .B -w
218 1a8f27c3 2004-05-14 devnull option above).
219 1a8f27c3 2004-05-14 devnull If sync exits successfully, it means that all writes buffered at the
220 1a8f27c3 2004-05-14 devnull time the command was issued are now on disk.
221 1a8f27c3 2004-05-14 devnull .SH SOURCE
222 1a8f27c3 2004-05-14 devnull .B /sys/src/cmd/venti
223 1a8f27c3 2004-05-14 devnull .SH "SEE ALSO"
224 1a8f27c3 2004-05-14 devnull .IR venti.conf (6),
225 1a8f27c3 2004-05-14 devnull .IR ventiaux (8),
226 1a8f27c3 2004-05-14 devnull .IR vac (1),
227 1a8f27c3 2004-05-14 devnull .IR vacfs (4).
228 1a8f27c3 2004-05-14 devnull .br
229 1a8f27c3 2004-05-14 devnull Sean Quinlan and Sean Dorward,
230 1a8f27c3 2004-05-14 devnull ``Venti: a new approach to archival storage'',
231 1a8f27c3 2004-05-14 devnull .I "Usenix Conference on File and Storage Technologies" ,
232 1a8f27c3 2004-05-14 devnull 2002.