How the Agents Work
This section describes how each agent works, summarizes the entry points, state definitions, and attributes for each agent, and explains the dependency graphs for each agent.
The VCS Agents for VVR include:
RVG Agent
The RVG agent enables replication between clusters by managing the Primary VVR node in one cluster and the Secondary VVR node in another cluster, each of which can be failed over in its respective cluster. In this way, replication is made highly available.
Note
The RVG works with the RVGPrimary agent to provide failover of the Primary VVR node to the Secondary VVR node. If a disaster occurs on the Primary VVR node and all the nodes in the Primary cluster are unavailable, the RVG agent does not fail over the Primary role from the Primary VVR node to the Secondary VVR node. The Global Cluster Option of VCS enables you to fail over the Primary role from a Primary VVR node to a Secondary VVR node.
The RVG agent includes the following key features:
- Removes potential single points of failure by enabling Primary and Secondary VVR nodes to be clustered.
- Makes the process of starting VCS-managed applications that use VVR, as easy as bringing a VCS service group online.
- Continues replication after a node in a cluster fails without losing updates.
- Ensures that VVR can be added to any VCS cluster by including the RVG resource type definitions.
An example configuration file for this agent that can be used as a guide when creating your configuration is located at /etc/VRTSvcs/conf/sample_vvr/RVG.
Note
The attributes Primary, SRL, RLinks of the RVG agent are optional in this release, that is, the RVG agent no longer requires the optional attributes to configure the RVG resources. The RVG agent will not contain these optional attributes in the next release; configurations that use the optional attributes will fail in the next release.
The following table summarizes the function of the RVG agent, its entry points, state definitions, and attributes:
Description
|
Brings the RVG online, monitors read/write access to the RVG, and takes the RVG offline; this is a failover resource.
|
Entry Points
|
online---Verifies whether the DiskGroup agent has recovered the RVG. If not, recovers and starts the data volumes and the Storage Replicator Log (SRL), recovers the RVG, recovers all RLINKs in the RVG, and then starts the RVG.
offline---Stops the RVG.
clean---Stops the RVG.
info---Gives the information about the replication status for the Replicated Data Set (RDS).
monitor---Monitors the state of the RVG using the vxprint command.
Note The RVG resource monitors an RVG for local access only; it does not monitor replication.
|
Detecting Failure
|
The RVG resource fails if the RVG is not in the ENABLED/ACTIVE state.
|
State Definitions
|
ONLINE---Indicates that the RVG is in ENABLED/ACTIVE state.
OFFLINE---Indicates that the RVG is in DISABLED/CLEAN state.
|
Required Attributes
|
Type and Dimension
|
Definition
|
RVG
|
string-scalar
|
The name of the RVG being monitored.
|
DiskGroup
|
string-scalar
|
The disk group with which this RVG is associated.
|
Optional Attributes
|
Type and Dimension
|
Definition
|
Primary
|
string-scalar
|
Indicates Primary RVG (true, false).
|
SRL
|
string-scalar
|
The SRL associated with this RVG.
|
RLinks
|
string-vector
|
The list of RLINKs associated with the RVG.
|
Type Definition
type RVG (
static str ArgList[] = { RVG, DiskGroup, Primary, SRL, RLinks}
str RVG
str DiskGroup
str Primary
str SRL
str RLinks[]
static int NumThreads = 1
)
Using the info Entry Point
The info entry point displays information about the replication status of an RDS. By default, the info interval is set to zero. To change the default info interval, use the following command:
# hatype -modify resourcetype_name InfoInterval interval
For example, to set the info interval to 60 seconds for the RVG resource type, enter:
# hatype -modify RVG InfoInterval 60
The info interval indicates how frequently VCS executes the info entry point to update the the replication status. In the above example, the info interval is set to 60, so VCS updates the replication status every 60 seconds. To display the output of the info entry point, use the following command:
# hares -value resource_name ResourceInfo
The output of the info entry point is also logged in the file /var/VRTSvcs/log/engine_A.log.
Dependency Graph for the RVG Agent
The RVG resource represents the RVG (Replicated Volume Group) in the RDS (Replicated Data Set). The RVG resource is dependent on the DiskGroup resource. The RVG resource is also dependent on the IP resources that it uses for replication.
In a VVR environment, higher-level application resources, such as Mount, that would typically depend on a Volume resource must depend on the associated RVG resource. Refer to the VERITAS Cluster Server User's Guide for more information on dependencies.
Dependency Graph for the RVG Agent
Click the thumbnail above to view full-sized image.
RVGPrimary Agent
The RVGPrimary agent enables migration and takeover of a VVR replicated data set in a VCS environment. Bringing a resource of type RVGPrimary online causes the RVG on the local host to become a primary if it not already. The agent is useful when hosts in both the primary and secondary side are clustered, in particular a VCS replicated data cluster or when using the Global Cluster Option, to completely automate the availability of writable replicated disks to an application managed by VCS.
The RVGPrimary agent includes the following key features:
- Removes manual steps of migrating a VVR primary and secondary roles when failing over applications across a wide area.
- Minimizes the need for resynchronizing replicated volumes by attempting a migration before attempting a hard takeover.
- Waits for the two sides of a replicated data set to become completely synchronized before migrating roles.
- Supports an automatic fast failback resynchronization of a downed primary if it later returns after a takeover.
A sample configuration file for this agent that can be used as a guide when creating your configuration is located at /etc/VRTSvcs/conf/sample_vvr/RVGPrimary. For specifics about this configuration see the VERITAS Cluster Server User's Guide.
The following table summarizes the function of the RVGPrimary agent, its entry points, state definitions, and attributes:
Description
|
Attempts to migrate or takeover a Secondary to a Primary upon an application failover.
|
Entry Points
|
Online---Determines the current role of the RVG; if Secondary, attempt a migrate, waiting for any outstanding writes from the original Primary; if the original Primary is down attempt a takeover; if the RVG is a Primary, perform no actions and go online
Offline---Perform no actions.
Clean---Perform no actions.
Monitor---Perform no actions; monitoring of the actual RVG is done by the RVG agent.
|
|
Detecting Failure
Monitoring of the actual RVG is done by the RVG agent; accidental migration of a VVR Primary outside of VCS would cause other resources to fault immediately, such as Mount, so no special monitoring by this agent is necessary.
|
Attributes
|
Type and Dimension
|
Definition
|
RvgResourceName
|
string-scalar
|
The name of the RVG resource type that this agent will promote, that is, the name RVG resource type which has been configured using the RVG agent.
|
AutoTakeover
|
integer-scalar
|
A flag to indicate whether the agent should perform a takeover on online if the original Primary is down.
|
AutoResync
|
integer-scalar
|
A flag to indicate whether the agent should attempt to automatically perform a fast-failback resynchronization of the original Primary after a takeover and after the original Primary returns.
|
Type Definition
type RVGPrimary (
static keylist SupportedActions = { fbsync }
static int InfoTimeout = 0
static int NumThreads = 1
static int OnlineRetryLimit = 1
static str ArgList[] = { RvgResourceName, AutoTakeover, AutoResync }
str RvgResourceName
int AutoTakeover = 1
int AutoResync = 0
)
Dependency Graph for the RVGPrimary Agent
The RVGPrimary agent is customarily used in conjunction with the RVG agent in two groups with an online local firm group dependency; the parent group contains the resources managing the actual application and file systems as well as the RVGPrimary resource, and the child group contains the resources managing the storage infrastructure, including the RVG and DiskGroup type resources. Refer to the VERITAS Cluster Server User's Guide for more information on detailed setup of a VVR environment using the RVGPrimary agent.
Dependency Graph for the RVGPrimary Agent
Click the thumbnail above to view full-sized image.
|