Chapter 6. Volume configuration 291
Figure 6-3 shows this mapping. It also shows a volume that consists of several extents that
are shown as V0 - V7. Each of these extents is mapped to an extent on one of the MDisks:
A, B, or C. The mapping table stores the details of this indirection.
Several of the MDisk extents are unused. No volume extent maps to them. These unused
extents are available for use in creating volumes, migration, expansion, and so on.
Figure 6-3 Simple view of block virtualization
The allocation of a specific number of extents from a specific set of MDisks is performed by
the following algorithm:
If the set of MDisks from which to allocate extents contains more than one MDisk, extents
are allocated from MDisks in a round-robin fashion.
If an MDisk has no free extents when its turn arrives, its turn is missed and the round-robin
moves to the next MDisk in the set that has a free extent.
When a volume is created, the first MDisk from which to allocate an extent is chosen in a
pseudo-random way rather than by choosing the next disk in a round-robin fashion. The
pseudo-random algorithm avoids the situation where the
striping effect that is inherent in a
round-robin algorithm that places the first extent for many volumes on the same MDisk.
Placing the first extent of several volumes on the same MDisk can lead to poor performance
for workloads that place a large I/O load on the first extent of each volume, or that create
multiple sequential streams.
6.1.3 Cache mode for volumes
It is also possible to define the cache characteristics of a volume. Under normal conditions, a
volume’s read and write data is held in the cache of its preferred node, with a mirrored copy of
write data that is held in the partner node of the same I/O Group. However, it is possible to
create a volume with cache disabled. This setting means that the I/Os are passed directly
through to the back-end storage controller rather than being held in the node’s cache.