VENTI-BACKUP(8) VENTI-BACKUP(8)
NAME
rdarena, wrarena - copy arenas between venti servers
SYNOPSIS
venti/rdarena [ -qv ] arenapart arenaname
venti/wrarena [ -o fileoffset ] [ -h host ] arenafile [
clumpoffset ]
DESCRIPTION
Rdarena extracts the named arena from the arena partition
arenapart and writes this arena to standard output. This
command is typically used to back up an arena to external
media. The -v option generates more verbose output on stan-
dard error; -q generates only errors on standard error.
Wrarena writes the blocks contained in the arena arenafile
(typically, the output of rdarena) to a Venti server. It is
typically used to reinitialize a Venti server from backups
of the arenas. For example,
venti/rdarena /dev/sdC0/arenas arena.0 >external.media
venti/wrarena -h venti2 external.media
writes the blocks contained in arena.0 to the Venti server
venti2 (typically not the one using /dev/sdC0/arenas).
The -o option specifies that the arena starts at byte
fileoffset (default 0) in arenafile . This is useful for
reading directly from the Venti arena partition:
venti/wrarena -h venti2 -o 335872 /dev/sdC0/arenas
(In this example, 335872 is the offset shown in the Venti
server's index list (344064) minus one block (8192). You
will need to substitute your own arena offsets and block
size.)
Finally, the optional offset argument specifies that the
writing should begin with the clump starting at offset
within the arena. Wrarena prints the offset it stopped at
(because there were no more data blocks). This could be
used to incrementally back up a Venti server to another
Venti server:
last=`{cat last}
venti/wrarena -h venti2 -o 335872 /dev/sdC0/arenas $last >output
awk '/^end offset/ { print $3 }' offset >last
Of course, one would need to add wrapper code to keep track
Page 1 Plan 9 (printed 10/24/25)
VENTI-BACKUP(8) VENTI-BACKUP(8)
of which arenas have been processed. See
/sys/src/cmd/venti/words/backup.example for a version that
does this.
SOURCE
/sys/src/cmd/venti/srv
SEE ALSO
venti(6), venti(8)
BUGS
Wrarena can't read a pipe or network connection containing
an arena; it needs a file already containing the entire
arena.
Page 2 Plan 9 (printed 10/24/25)