VENTI-BACKUP(8)

πŸ“¦ version 0_git20260208, in alpine 3.24, arch rolling, nixos 26.05, nixpkgs unstable

🌸 NAME 🌸

okay bestie, welcome to VENTI-BACKUP(8) from the System Manager's Manual. This is the page for rdarena and wrarena β€” the little duo that copies 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. It's typically used to back up an arena to external media. 🫢

  • -v β€” generates more verbose output on standard error. chatty mode, but on stderr.
  • -q β€” generates only errors on standard error. quiet queen energy.

wrarena writes the blocks contained in the arena arenafile (typically, the output of rdarena) to a Venti server. It's 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

This writes the blocks contained in arena.0 to the Venti server venti2 (typically not the one using /dev/sdC0/arenas). ✨

  • -h host β€” points wrarena at the Venti server host; in the example above, that's venti2. πŸ’…
  • -o fileoffset β€” 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. 😭 math is math.

Finally, the optional offset argument (clumpoffset in the synopsis) 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 of which arenas have been processed. See /sys/src/cmd/venti/words/backup.example for a version that does this. πŸ¦‹

πŸ“¦ SOURCE πŸ“¦

/src/cmd/venti/srv β€” that's where the source lives, bestie. πŸ‘‘

🌈 SEE ALSO 🌈

venti(7), venti(8) β€” go read those too, iykyk. πŸ’œ

πŸ’€ BUGS πŸ’€

Wrarena can't read a pipe or network connection containing an arena; it needs a file already containing the entire arena. So no pipe/network-stream situation β€” it literally needs the whole arena in a file first. 😭 important caveat, fr fr.


okay bye bestie 🫢 β€” this page's footer/version tag is VENTI-BACKUP(8), and the source/version pointer in the source section is /src/cmd/venti/srv. mwah πŸ’‹πŸŽ€