volutil(8) volutil(8) NAME volutil - volume utility subsystem SYNOPSIS volutil [-h <server>] [ -t timeout(1,3x,3x cbreak)] [ -d debuglevel] <command> <parame- ters ... > DESCRIPTION Volutil is a RPC interface to the volume utility subsystem of the file(1,n) server. The volume utilities are used to perform administrative func- tions like creating, cloning, purging, dumping and restoring volumes. Each of these functions can be invoked via the <command> parameter. Each command has a set(7,n,1 builtins) of parameters that it expects. These are listed below along with a short description of each command. The volutil utility may be instructed to perform the operations on a server at a remote site by specifying the server to which to connect with the -h option. The default is to connect to a server on the local machine. The -t option may be used to specify the timeout(1,3x,3x cbreak) (in(1,8) seconds) to be used by RPC2. ancient <group-ID> <rep-ID> Tell the server that backup succeeded for this volume. The next dump of this volume, if(3,n) incremental, will be based on the state represented by this backup. The input should be in(1,8) Hex. backup <volume-ID> Create a backup clone of a read(2,n,1 builtins)/write(1,2) volume. If a backup clone already exists, update(7,n) it to reflect the current state of the read(2,n,1 builtins)/write(1,2) volume; Otherwise, create a new read-only volume. The read(2,n,1 builtins)/write(1,2) volume must be locked for this to succeed. Backup unlocks the volume as a side effect. clone volume-ID [-n new-volume-name] Create a read(2,n,1 builtins) only clone of a read(2,n,1 builtins) write(1,2) volume with (replica) ID (<volume-ID>). The vnodes are actually copied but the inodes are marked copy-on-write i.e. inodes need to be copied only if(3,n) modified. The name of the new cloned volume can be optionally specified by the <new-volume-name> parameter. Default value is volume-name.readonly. The clone(8) command can be used to call volutil clone. create <partition-path> <volume-name> Create a nonreplicated read-write volume named(5,8) <volume-name> on partition named(5,8) <partition-path>. The createvol(8) command is a simplified front-end for this option. create_rep <partition-path> <volume-name> <group-ID>" Create a replicated read-write volume named(5,8) <volume-name> on partition named(5,8) <partition-path>. The <group-ID> parameter is used to specify the ID of the replicated volume to which this replica will belong. The createvol_rep(8) command will also create a replicated volume. dump [-i] <volume-ID> <file-name>" Dump the entire contents of a volume (volume-ID in(1,8) Hex) to a file(1,n) (file-name). If the -i flag is used, the dump will be incremental, it will only include vnodes which have been modified since the last dump was taken. The dump is not machine independent, certain fields in(1,8) the Vnode are not translated to network order. However, dump files can be used to create restored volumes on machines with a similar byte-order. dumpmem <file-name> <address> <size> Dump <size> bytes starting at <address> into <file-name>. elapse <on | off> <resolution | cb | mond | volDump> [MultiRPC] Turn on or off timers for the given subsystem. info(1,5,n) [-all] <volume-name | volume-number> <file-name>" Print in(1,8) ascii(1,7) the contents of a volume into a file(1,n) (<file-name>). The volume can be specified by its name, or by the volume-ID, specified in(1,8) Hex. If -all is specified, contents of both large and small vnodes in(1,8) that vol- ume are also printed. lock <volume-ID> Lock a volume to prevent write(1,2) access(2,5) to the volume. To other users(1,5) it will appear as if(3,n) the operation would time(1,2,n) out. lookup <volume-name | volume-ID> <file-name>" Print information about a volume (specified by vol- ume-name or volume-ID specified in(1,8) Hex) in(1,8) file-name. Only meta-information, such as replicated group-ID, location, etc. is printed. makevldb <VolumeList> Create a new Volume Location Database VLDB. VolumeList names a file(1,n) containing volume parameters for all volumes in(1,8) the system. This command typically is run on the system control machine. See also bldvldb(8) and volumelist(5). makevrdb <vrlist> Create a new Volume Replication Data Base (VRDB). <vrlist> is a file(1,n) containing entries describing replicated volumes. Each entry contains the name, group-ID, read-write ids, and the VSG address of a replicated volume. There is one entry per repli- cated volume in(1,8) the system. purge <volume-ID> <volume-name> Delete a volume. For replicated volumes purge must be called from each server individually on the replicas at the different servers. (See purgevol-rep(8)) restore <file-name> <partition-path> [<volume-name> [<volume-ID> ] ]" Create a new volume on the partition named(5,8) by <partition-path> and read(2,n,1 builtins) in(1,8) the contents from a dump in(1,8) file(1,n) <file-name>. The new volume will be given the name and ID specified on the command line. If either is unspecified, or if(3,n) the Volume ID is of illegal form, the server will allocate the ID or name based on internal rules. The volume-ID should be specified in(1,8) Hex. rvmsize <volume-ID> Print the RVM statistics for the volume <volume-ID>. setdebug <level> Set the debug level for the volume and directory packages to level. To reset(1,7,1 tput) it use zero for the level argument. The rpc2 debug level is set(7,n,1 builtins) to level/10. setlogparms <volume-ID> [reson <4 | 0>] [logsize <size>]" Turn on resolution or change the log size for a volume. The volume ID can be either the replicated ID or the non-replicated ID. Resolution is turned on by specifying 4 after reson and can be turned off by specifying 0. The size of the log can also be changed for the volume. The size parameter refers to the number of maximum entries in(1,8) the log. This should be a multiple of 32. Typically this is set(7,n,1 builtins) to 8192. NOTE: You should in(1,8) all normal cases keep the resolution turned on, and the argument for reson is in(1,8) that case 4! setvv <volumeNumber> <vnodeNumber> <Uniquifier> <version(1,3,5) numbers (8)> <host(1,5) unique flags>" Set the version(1,3,5) vector for a vnode (with fid = <volumeNumber>.<vnodeNum- ber>.<Uniquifier>). The new version(1,3,5) vector is specified by the <version(1,3,5) numbers> and the <host(1,5) unique flags> triple. showvnode <volumeNumber> <vnodeNumber> <Uniquifier> <file-name>" Print the contents of a vnode (with fid = <volumeNumber>.<vnodeNumber>.<Uniquifier>). into <file-name>. shutdown(2,8) Bring all volumes offline and bring down the server. swaplog Save the fileserver log output (in(1,8) SrvLog.old) and start a new SrvLog. timing on | off <filename> Turn timing on or off. truncatervmlog Forcibly truncate(2,7) the RVM log. unlock <volume-ID> Unlock a volume locked via the volutil lock command. (volume-ID) should be in(1,8) Hex updatedb Make the file(1,n) server read(2,n,1 builtins) in(1,8) a new VLDB and VRDB. The server assumes the databases to exist in(1,8) /vice/db/VLDB and /vice/db/VRDB. This utility is useful for reading in(1,8) new data- bases at non-scm machines. DIAGNOSTICS This command must be run as root. It works only on the machine running the server. Also, the token file(1,n) /vice/db/voutil.tk must be accessible. BUGS The salvage option to volutil doesn't work right. Please don't try it. FILES /vice/db/VSGDB /vice/file(1,n)/SrvLog /vice/db/VLDB /vice/db/VRDB /vice/vol/VRList SEE ALSO vrdb(5), volumelist(5), bldvldb(8), createvol(8), createvol_rep(8), purgevol(8), purgevol_rep(8) AUTHOR Puneet Kumar, David Steere, 1990, Created volutil(8)