The vvm system provides a virtual volume (or virtual tape) abstraction and interface for client programs. Its main utility is to improve tape usage efficiency. Many streaming tape technologies do not handle writing small files efficiently. For instance, a seven kilobyte file might take up almost as much tape space as a one megabyte file. To better handle such cases, vvm clients (such as the DMFS system) read and write files out of and into virtual volumes (vv's), which are typically between 50 and 300 megabytes in size. These vv's are read and written to tape. Thus all tape operations involve large reads and writes which are much more efficient.
The vvm system consists of a server, client programs, and a tape server daemon. The vvm server is responsible for remembering which vv's have been allocated, and on which tape volume they reside. When a vvm client requests a vv, the vvm server contacts the volman system (the volman master specifically) to arrange for the needed tape volume to be mounted. The vvm tape server daemon, which runs on the same machine as the volman tape servers, then reads the tapes and makes the vv available to the client. The clients obviously use the vv's to store variable-length files. There are client programs which are able to monitor the status of vv's, and there is a programmatic interface which lets programs make requests of the vvm system.