About DVS Modes

Describes the two ways to use the Cray Data Virtualization Service (DVS): in serial or parallel access mode.

There are two primary ways to use Cray DVS: in serial mode or parallel mode, as indicated in the following table. In serial mode, one DVS server on a Cray service node projects a file system to multiple compute node clients. In parallel mode, multiple DVS servers—in configurations that vary in purpose, layout, and performance—project a file system to multiple compute node clients.

Table 1. Cray DVS Access Modes
ModeAccess LevelPattern
SerialRead/WriteMany clients, one server
ParallelRead/WriteMany clients, many servers

DVS mode is not selected by a switch, but rather by configuration. It is determined by the system administrator's choice of DVS mount point options. A DVS mode is really just the name given to a collection of mount options chosen to achieve a particular goal. Users cannot choose among DVS modes unless the system administrator has configured the system to make more than one mode available. A system administrator can make several DVS modes available on the same compute node by mounting a file system with different mount point options on different mount points on that compute node. This table shows the rationale and an example mount entry for each DVS mode.

Table 2. Rationales and Example Mount Entries for DVS Modes
ModeRationaleExample Mount Entry
SerialSimple. Only option if no cluster/shared file system available. -o nodename=server1, maxnodes=1
Cluster ParallelOften used for a large file system, must be a shared file system (e.g., GPFS). Can distribute file I/O and metadata operations among several servers to avoid overloading any one server and to speed up operations. I/O for a single file goes only to the chosen server. -o nodename=server1:server2:server3, maxnodes=1
Stripe ParallelUsed to distribute file I/O load at the granularity of a block of data within a file. Adds another level of parallelism to better distribute the load. I/O for a single file may go to multiple servers. -o nodename=server1:server2:server3, maxnodes=3
Atomic Stripe ParallelUsed when stripe parallel makes sense but POSIX read/write atomicity required. -o nodename=server1:server2:server3, maxnodes=3, atomic
LoadbalanceUsed for near-optimal load distribution when a read-only file system is being used. Also includes failover by default. -o nodename=server1:server2:server3, maxnodes=1, loadbalance

Serial, cluster parallel, and atomic stripe parallel modes all adhere to POSIX read/write atomicity rules, but stripe parallel mode does not. POSIX read/write atomicity guarantees that all bytes associated with a read or write are not interleaved with bytes from other read or write operations.