RVD(4P)

NAME
rvd - Remote Virtual Disk protocol

DESCRIPTION
RVD is a network service which allows several physical machines to share one physical mass storage device such as a hard disk. The basic concept is to have the machine to which the device is physically attached act as a server to read and write blocks for all the other machines desiring use of the resource.

The server program apportions the physical blocks into “virtual disk packs” based on a table maintained with vddb(8). The packs can then be used separately by clients. There are three modes of use: read-only, shared, and exclusive. Exclusive mode is used for read-write access, while read-only mode is as it sounds. Shared mode is not supported under IBM/4.3. If a disk pack is “spun up” in read-only mode, several clients may share the pack and read its information. In exclusive mode, one client has exclusive use of the disk pack.

Packs are “spun up” and “spun down” with the up and down commands (see up(1)). This can be done at reboot time within /etc/rc.local (see rc(8)) or at login time within ~/.login (see csh(1)). Once a pack is spun up, it behaves like a disk physically attached to the local machine (excepting network latency). The client can do anything desired with the pack; both MS-DOS and UNIX operating system file systems have been used on the same physical drive at the same time (on separate packs, of course).

RVD is implemented in two parts: server code and client code. The server code is written as a user process, i.e. it does not require any special privileges beyond read/write access to the disks it manages. The server opens a network socket and listens for UDP connections. It also accepts all RVD packets and acts on them. RVD is a protocol different from both UDP and TCP, although similar in nature to the former.

The client code is implemented as a pseudo-device and corresponding device driver in the kernel. It can handle up to 10 remote virtual disks simultaneously, which are associated with the pseudo-devices below.

FILES
/dev/vd[0-9]a    block special file pseudo-device
/dev/rvd[0-9]a    character special file pseudo-device

SEE ALSO
up(1), rvddb(5), rvdtab(5), rvdflush(8), rvdchlog(8), rvddown(8), rvdexch(8), rvdflush(8), rvdlog(8), rvdsend(8), rvdshow(8), rvdshut(8), rvdsrv(8), savervd(8), spinup(8), vddb(8), vdstats(8)
``The Remote Virtual Disk System'' in Volume II, Supplementary Documents