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.
| Mode | Access Level | Pattern |
|---|---|---|
| Serial | Read/Write | Many clients, one server |
| Parallel | Read/Write | Many 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.
| Mode | Rationale | Example Mount Entry |
|---|---|---|
| Serial | Simple. Only option if no cluster/shared file system available. | -o nodename=server1, maxnodes=1 |
| Cluster Parallel | Often 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 Parallel | Used 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 Parallel | Used when stripe parallel makes sense but POSIX read/write atomicity required. | -o nodename=server1:server2:server3, maxnodes=3, atomic |
| Loadbalance | Used 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.