Blob


1 .TH VENTI 1
2 .SH NAME
3 read, write, copy \- simple Venti clients
4 .SH SYNOPSIS
5 .B venti/read
6 [
7 .B -h
8 .I host
9 ]
10 [
11 .B -t
12 .I type
13 ]
14 .I score
15 .br
16 .B venti/write
17 [
18 .B -z
19 ]
20 [
21 .B -h
22 .I host
23 ]
24 [
25 .B -t
26 .I type
27 ]
28 .br
29 .B venti/copy
30 [
31 .B -fimrVv
32 ]
33 [
34 .B -t
35 .I type
36 ]
37 .I srchost
38 .I dsthost
39 .I score
40 .SH DESCRIPTION
41 Venti is a SHA1-addressed block storage server.
42 See
43 .MR venti (7)
44 for a full introduction.
45 .PP
46 .I Read
47 reads a block with the given
48 .I score
49 and numeric
50 .I type
51 from the server
52 .I host
53 and prints the block to standard output.
54 If the
55 .B -h
56 option is omitted,
57 .I read
58 consults the environment variable
59 .B $venti
60 for the name of the Venti server.
61 If the
62 .B -t
63 option is omitted,
64 .I read
65 will try each type, one at a time, until it finds
66 one that works.
67 It prints the corresponding
68 .B read
69 .B -t
70 command to standard error
71 to indicate the type of the block.
72 .PP
73 .I Write
74 writes at most 56 kilobytes of data from standard input
75 to the server
76 .I host
77 and prints the resulting score to standard output.
78 If the
79 .B -t
80 option is omitted,
81 .I write
82 uses type 0,
83 denoting a data block.
84 If the
85 .B -z
86 option is given,
87 .I write
88 zero truncates the block before writing it to the server.
89 .PP
90 .I Copy
91 expects
92 .I score
93 to be the score of a
94 .B VtRoot
95 block.
96 It copies the entire tree of blocks reachable from
97 the root block from the server
98 .I srchost
99 to the server
100 .IR dsthost .
101 .PP
102 Venti's blocks are arranged in a directed acyclic graph (see venti(6));
103 there may be multiple paths from a root score to an
104 interior block (for example, if the same file contents are stored
105 under multiple names in an archive).
106 .I Copy
107 runs more efficiently if it does not copy blocks
108 (and all their children) multiple times.
109 The
110 .B -f
111 option causes
112 .I copy
113 to assume that if a block already exists on the destination
114 Venti server, all its children also exist and need not be considered.
115 The
116 .B -m
117 option causes
118 .I copy
119 to maintain an in-memory list of blocks it has copied
120 and avoid considering the same block multiple times.
121 The
122 .B -f
123 option is only useful if the destination Venti server is
124 known not to have lost any blocks due to disk corruption
125 or other failures.
126 The
127 .B -m
128 option is only useful if enough memory is available to
129 hold the block list, which typically requires about 1%
130 of the total number of bytes being copied.
131 .PP
132 The
133 .B -i
134 and
135 .B -r
136 options control
137 .IR copy 's
138 reaction to errors reading
139 from
140 .IR srchost .
141 .I Copy
142 always prints information to standard error
143 about each read error.
144 By default,
145 .I copy
146 exits after printing the first error.
147 If the
148 .B -i
149 option is given, read errors are ignored.
150 This is dangerous behavior because it breaks the
151 assumption made by `fast' mode.
152 If the
153 .B -r
154 option is given,
155 .I copy
156 replaces pointers to unreadable blocks with
157 pointers to the zero block.
158 It writes the new root score to standard output.
159 The
160 .B -v
161 option prints scores as it copies them, total writes, and other
162 debugging information.
163 The
164 .B -V
165 option prints debugging information about the Venti protocol
166 messages send/received.
167 .SH SOURCE
168 .B \*9/src/cmd/venti
169 .SH SEE ALSO
170 .MR vac (1) ,
171 .MR venti (3) ,
172 .MR vacfs (4) ,
173 .MR venti (7) ,
174 .MR vbackup (8) ,
175 .MR venti (8) ,
176 .MR venti-fmt (8)
177 .SH BUGS
178 There should be programs to read and write
179 venti files and directories.