123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- .TH VENTI 8
- .SH NAME
- venti \- an archival block storage server
- .SH SYNOPSIS
- .B venti/venti
- [
- .B -dw
- ]
- [
- .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 -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.
|