venti.1 (3258B)
1 .TH VENTI 1 2 .SH NAME 3 read, write, copy \- simple Venti clients 4 .SH SYNOPSIS 5 .B venti/read 6 [ 7 .B -h 8 .I host 9 ] 10 [ 11 .B -t 12 .I type 13 ] 14 .I score 15 .br 16 .B venti/write 17 [ 18 .B -z 19 ] 20 [ 21 .B -h 22 .I host 23 ] 24 [ 25 .B -t 26 .I type 27 ] 28 .br 29 .B venti/copy 30 [ 31 .B -fimrVv 32 ] 33 [ 34 .B -t 35 .I type 36 ] 37 .I srchost 38 .I dsthost 39 .I score 40 .SH DESCRIPTION 41 Venti is a SHA1-addressed block storage server. 42 See 43 .MR venti (7) 44 for a full introduction. 45 .PP 46 .I Read 47 reads a block with the given 48 .I score 49 and numeric 50 .I type 51 from the server 52 .I host 53 and prints the block to standard output. 54 If the 55 .B -h 56 option is omitted, 57 .I read 58 consults the environment variable 59 .B $venti 60 for the name of the Venti server. 61 If the 62 .B -t 63 option is omitted, 64 .I read 65 will try each type, one at a time, until it finds 66 one that works. 67 It prints the corresponding 68 .B read 69 .B -t 70 command to standard error 71 to indicate the type of the block. 72 .PP 73 .I Write 74 writes at most 56 kilobytes of data from standard input 75 to the server 76 .I host 77 and prints the resulting score to standard output. 78 If the 79 .B -t 80 option is omitted, 81 .I write 82 uses type 0, 83 denoting a data block. 84 If the 85 .B -z 86 option is given, 87 .I write 88 zero truncates the block before writing it to the server. 89 .PP 90 .I Copy 91 expects 92 .I score 93 to be the score of a 94 .B VtRoot 95 block. 96 It copies the entire tree of blocks reachable from 97 the root block from the server 98 .I srchost 99 to the server 100 .IR dsthost . 101 .PP 102 Venti's blocks are arranged in a directed acyclic graph (see venti(6)); 103 there may be multiple paths from a root score to an 104 interior block (for example, if the same file contents are stored 105 under multiple names in an archive). 106 .I Copy 107 runs more efficiently if it does not copy blocks 108 (and all their children) multiple times. 109 The 110 .B -f 111 option causes 112 .I copy 113 to assume that if a block already exists on the destination 114 Venti server, all its children also exist and need not be considered. 115 The 116 .B -m 117 option causes 118 .I copy 119 to maintain an in-memory list of blocks it has copied 120 and avoid considering the same block multiple times. 121 The 122 .B -f 123 option is only useful if the destination Venti server is 124 known not to have lost any blocks due to disk corruption 125 or other failures. 126 The 127 .B -m 128 option is only useful if enough memory is available to 129 hold the block list, which typically requires about 1% 130 of the total number of bytes being copied. 131 .PP 132 The 133 .B -i 134 and 135 .B -r 136 options control 137 .IR copy 's 138 reaction to errors reading 139 from 140 .IR srchost . 141 .I Copy 142 always prints information to standard error 143 about each read error. 144 By default, 145 .I copy 146 exits after printing the first error. 147 If the 148 .B -i 149 option is given, read errors are ignored. 150 This is dangerous behavior because it breaks the 151 assumption made by `fast' mode. 152 If the 153 .B -r 154 option is given, 155 .I copy 156 replaces pointers to unreadable blocks with 157 pointers to the zero block. 158 It writes the new root score to standard output. 159 The 160 .B -v 161 option prints scores as it copies them, total writes, and other 162 debugging information. 163 The 164 .B -V 165 option prints debugging information about the Venti protocol 166 messages send/received. 167 .SH SOURCE 168 .B \*9/src/cmd/venti 169 .SH SEE ALSO 170 .MR vac (1) , 171 .MR venti (3) , 172 .MR vacfs (4) , 173 .MR venti (7) , 174 .MR vbackup (8) , 175 .MR venti (8) , 176 .MR venti-fmt (8) 177 .SH BUGS 178 There should be programs to read and write 179 venti files and directories.