22.5 Vinum Objects

In order to address these problems, Vinum implements a four-level hierarchy of objects:

The following sections describe the way these objects provide the functionality required of Vinum.

22.5.1 Volume Size Considerations

Plexes can include multiple subdisks spread over all drives in the Vinum configuration. As a result, the size of an individual drive does not limit the size of a plex, and thus of a volume.

22.5.2 Redundant Data Storage

Vinum implements mirroring by attaching multiple plexes to a volume. Each plex is a representation of the data in a volume. A volume may contain between one and eight plexes.

Although a plex represents the complete data of a volume, it is possible for parts of the representation to be physically missing, either by design (by not defining a subdisk for parts of the plex) or by accident (as a result of the failure of a drive). As long as at least one plex can provide the data for the complete address range of the volume, the volume is fully functional.

22.5.3 Performance Issues

Vinum implements both concatenation and striping at the plex level:

22.5.4 Which Plex Organization?

The version of Vinum supplied with FreeBSD 9.1 implements two kinds of plex:

Table 22-1 summarizes the advantages and disadvantages of each plex organization.

Table 22-1. Vinum Plex Organizations

Plex type Minimum subdisks Can add subdisks Must be equal size Application
concatenated 1 yes no Large data storage with maximum placement flexibility and moderate performance
striped 2 no yes High performance in combination with highly concurrent access