Blob


1 .TH VENTI-BACKUP 8
2 .SH NAME
3 rdarena, wrarena \- copy arenas between venti servers
4 .SH SYNOPSIS
5 .PP
6 .B venti/rdarena
7 [
8 .B -qv
9 ]
10 .I arenapart
11 .I arenaname
12 .PP
13 .B venti/wrarena
14 [
15 .B -o
16 .I fileoffset
17 ]
18 [
19 .B -h
20 .I host
21 ]
22 .I arenafile
23 [
24 .I clumpoffset
25 ]
26 .SH DESCRIPTION
27 .PP
28 .I Rdarena
29 extracts the named
30 .I arena
31 from the arena partition
32 .I arenapart
33 and writes this arena to standard output.
34 This command is typically used to back up an arena to external media.
35 The
36 .B -v
37 option generates more verbose output on standard error;
38 .B -q
39 generates only errors on standard error.
40 .PP
41 .I Wrarena
42 writes the blocks contained in the arena
43 .I arenafile
44 (typically, the output of
45 .IR rdarena )
46 to a Venti server.
47 It is typically used to reinitialize a Venti server from backups of the arenas.
48 For example,
49 .IP
50 .EX
51 venti/rdarena /dev/sdC0/arenas arena.0 >external.media
52 venti/wrarena -h venti2 external.media
53 .EE
54 .LP
55 writes the blocks contained in
56 .B arena.0
57 to the Venti server
58 .B venti2
59 (typically not the one using
60 .BR /dev/sdC0/arenas ).
61 .PP
62 The
63 .B -o
64 option specifies that the arena starts at byte
65 .I fileoffset
66 (default
67 .BR 0 )
68 in
69 .I arenafile .
70 This is useful for reading directly from
71 the Venti arena partition:
72 .IP
73 .EX
74 venti/wrarena -h venti2 -o 335872 /dev/sdC0/arenas
75 .EE
76 .LP
77 (In this example, 335872 is the offset shown in the Venti
78 server's index list (344064) minus one block (8192).
79 You will need to substitute your own arena offsets
80 and block size.)
81 .PP
82 Finally, the optional
83 .I offset
84 argument specifies that the writing should begin with the
85 clump starting at
86 .I offset
87 within the arena.
88 .I Wrarena
89 prints the offset it stopped at (because there were no more data blocks).
90 This could be used to incrementally back up a Venti server
91 to another Venti server:
92 .IP
93 .EX
94 last=`{cat last}
95 venti/wrarena -h venti2 -o 335872 /dev/sdC0/arenas $last >output
96 awk '/^end offset/ { print $3 }' offset >last
97 .EE
98 .LP
99 Of course, one would need to add wrapper code to keep track
100 of which arenas have been processed.
101 See
102 .B /sys/src/cmd/venti/words/backup.example
103 for a version that does this.
104 .SH SOURCE
105 .B \*9/src/cmd/venti/srv
106 .SH SEE ALSO
107 .MR venti (7) ,
108 .MR venti (8)
109 .SH BUGS
110 .I Wrarena
111 can't read a pipe or network connection containing an arena;
112 it needs a file already containing the entire arena.