diff options
Diffstat (limited to 'man/man8/venti.8')
-rw-r--r-- | man/man8/venti.8 | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/man/man8/venti.8 b/man/man8/venti.8 new file mode 100644 index 00000000..be112a6a --- /dev/null +++ b/man/man8/venti.8 @@ -0,0 +1,232 @@ +.TH VENTI 8 +.SH NAME +venti \- an archival block storage server +.SH SYNOPSIS +.B venti/venti +[ +.B -dsw +] +[ +.B -a +.I ventiaddress +] +[ +.B -B +.I blockcachesize +] +[ +.B -c +.I config +] +[ +.B -C +.I cachesize +] +[ +.B -h +.I httpaddress +] +[ +.B -I +.I icachesize +] +.PP +.B venti/sync +[ +.B -h +.I host +] +.SH DESCRIPTION +.I Venti +is a block storage server intended for archival data. +In a Venti server, +the SHA1 hash of a block's contents acts as the block +identifier for read and write operations. +This approach enforces a write-once policy, preventing accidental or +malicious destruction of data. In addition, duplicate copies of a +block are coalesced, reducing the consumption of storage and +simplifying the implementation of clients. +.PP +Storage for +.I venti +consists of a data log and an index, both of which +can be spread across multiple files. +The files containing the data log are themselves divided into self-contained sections called arenas. +Each arena contains a large number of data blocks and is sized to +facilitate operations such as copying to removable media. +The index provides a mapping between the a Sha1 fingerprint and +the location of the corresponding block in the data log. +.PP +The index and data log are typically stored on raw disk partitions. +To improve the robustness, the data log should be stored on +a device that provides RAID functionality. The index does +not require such protection, since if necessary, it can +can be regenerated from the data log. +The performance of +.I venti +is typically limited to the random access performance +of the index. This performance can be improved by spreading the +index accross multiple disks. +.PP +The storage for +.I venti +is initialized using +.IR fmtarenas , +.IR fmtisect , +and +.I fmtindex +(see +.IR ventiaux (8)). +A configuration file, +.IR venti.conf (6), +ties the index sections and data arenas together. +.PP +A Venti +server is accessed via an undocumented network protocol. +Two client applications are included in this distribution: +.IR vac (1) +and +.IR vacfs (4). +.I Vac +copies files from a Plan 9 file system to Venti, creating an +archive and returning the fingerprint of the root. +This archive can be mounted in Plan 9 using +.IR vacfs . +These two commands enable a rudimentary backup system. +A future release will include a Plan 9 file system that uses +Venti as a replacement for the WORM device of +.IR fs (4). +.PP +The +.I venti +server provides rudimentary status information via +a built-in http server. The URL files it serves are: +.TP +.B stats +Various internal statistics. +.TP +.B index +An enumeration of the index sections and all non empty arenas, including various statistics. +.TP +.B storage +A summary of the state of the data log. +.TP +.B xindex +An enumeration of the index sections and all non empty arenas, in XML format. +.PP +Several auxiliary utilities (see +.IR ventiaux (8)) +aid in maintaining the storage for Venti. +With the exception of +.I rdarena , +these utilities should generally be run after killing the +.I venti +server. +The utilities are: +.TP +.I checkarenas +Check the integrity, and optionally fix, Venti arenas. +.TP +.I checkindex +Check the integrity, and optionally fix, a Venti index. +.TP +.I buildindex +Rebuild a Venti index from scratch. +.TP +.I rdarena +Extract a Venti arena and write to standard output. +.PD +.PP +Options to +.I venti +are: +.TP +.BI -a " ventiaddress +The network address on which the server listens for incoming connections. +The default is +.LR tcp!*!venti . +.TP +.BI -B " blockcachesize +The size, in bytes, of memory allocated to caching raw disk blocks. +.TP +.BI -c " config +Specifies the +Venti +configuration file. +Defaults to +.LR venti.conf . +.TP +.BI -C " cachesize +The size, in bytes, of memory allocated to caching +Venti +blocks. +.TP +.BI -d +Produce various debugging information on standard error. +.TP +.BI -h " httpaddress +The network address of Venti's built-in +http +server. +The default is +.LR tcp!*!http . +.TP +.BI -I " icachesize +The size, in bytes, of memory allocated to caching the index mapping fingerprints +to locations in +.IR venti 's +data log. +.TP +.B -s +Do not run in the background. +Normally, +the foreground process will exit once the Venti server +is initialized and ready for connections. +.TP +.B -w +Enable write buffering. This option increase the performance of writes to +.I venti +at the cost of returning success to the client application before the +data has been written to disk. +The server implements a +.I sync +rpc that waits for completion of all the writes buffered at the time +the rpc was received. +Applications such as +.IR vac (1) +and the +.I sync +command described below +use this rpc to make sure that the data is correctly written to disk. +Use of this option is recommended. +.PD +.PP +The units for the various cache sizes above can be specified by appending a +.LR k , +.LR m , +or +.LR g +to indicate kilobytes, megabytes, or gigabytes respectively. +The command line options override options found in the +.IR venti.conf (6) +file. +.PP +.I Sync +connects to a running Venti server and executes a sync rpc +(described with the +.B -w +option above). +If sync exits successfully, it means that all writes buffered at the +time the command was issued are now on disk. +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti.conf (6), +.IR ventiaux (8), +.IR vac (1), +.IR vacfs (4). +.br +Sean Quinlan and Sean Dorward, +``Venti: a new approach to archival storage'', +.I "Usenix Conference on File and Storage Technologies" , +2002. |