Serviceguard Extended Distance Cluster (EDC) with VxVM/CVM Mirroring on HP-UX, May 2008

dcomirror=2
This option specifies the number of plexes for the attached DCO volume. The DCO volume should
have the same number of plexes as its parent volume.
Figure 7 shows an example of the vxassist command with all of the recommended options for
creating an EDC volume, including how to specify the creation of a version 20 DCO volume for DRL
and FMR.
Choosing between the Dirty Region Logging (DRL) types
A DRL is a bitmap of regions that is used to track write I/Os that are in flight. A DRL is implemented
on a per volume basis. In a cluster, there is one active map per node and an additional recovery
map. For example, a 4 node cluster would have 5 maps. If one node fails, it is not allowed to rejoin
the cluster until their DRL active maps have been incorporated into the recovery maps on all affected
volumes. If a volume is created on a standalone system and then it is imported as a shared volume in
a cluster, the DRL will be too small and will have to be recreated.
With DRL enabled, most write operations to a mirrored volume actually result in 4 write requests:
The first two writes are conducted by the CVM master to mark the data region in the DRL as dirty.
Since the DRL resides in the DCO volume—which is also mirrored—both plexes associated with the
DCO volume must be updated, before the data I/O takes place. In a large cluster with a high write
I/O load, mirroring with DRL enabled increases the physical I/O load on the CVM master and it
also increases the network load on the cluster interconnect. Writes to the DRL are always performed
by the CVM master node, regardless of which node initiates the writes to the data volume.
The second two writes are the actual data I/Os to both plexes of the data volume. They are
performed directly by the node that issues the I/O.
The DRL bitmap is cleared “lazily” to ease the performance impact DRL has on write I/Os. The least
recently used field of the bitmap is modified when a write occurs to a region that is not already
marked as dirty in the DRL. If another write to the same region occurs, before its flag in the DRL is
cleared, no write to the DRL will occur – this reduces the write I/O overhead that comes with enabling
DRL. If only one mirror (plex) of a volume remains active, DRL is automatically switched off.
There are two types of DRL:
Region DRL – Region DRL holds a bitmap large enough to mark 64 MB of data, where writes may
be in progress before re-using the first entry. Even if the mirrored volume is 1 TB in size, no more
than 64 MB have to be resynchronized after a node failure, provided the DRL can be used for
recovery.
If the “working set” of data in the volume is not more than 64 MB, after a while no I/Os to the DRL
occur since the regions that are written to are already marked as dirty. If the “working set” is a lot
larger than 64 MB, almost every write to the data volume can trigger a write to the DRL. In this
scenario, the lazy clearing of the DRL does not really help reduce the write I/O overhead that
comes with DRL.
Sequential DRL – Sequential DRL has a much smaller map which keeps track of 3 writes (typically
192 KB in total). The sequential DRL should be used for volumes that will be mostly written to in a
sequential manner. The idea is to only have a small amount of data (192 KB) marked dirty
(required to be resynchronized if a node failure would happen), since a lazy clear does not provide
any benefit with sequential writes.
The vxvol command can be used to set the DRL to either ON, OFF or SEQUENTIAL. ON is the setting
for “Region DRL” – it is also the default when DRL is switched on. When you want to switch between
ON and SEQUENTIAL, you need to switch DRL OFF first.
12