Previous  |  Next  >  
Product: Volume Replicator Guides   
Manual: Volume Replicator 4.1 Administrator's Guide   

How the VVR Components Fit Together

This section describes how the VVR components fit together to enable replication.

VVR at the Primary

VVR is configured such that the volumes to be replicated for a specific application are placed in an RVG. Writes to the data volumes are persistently queued in the SRL. The SRL on the Primary tracks all writes in the order in which they were received and transmits the writes to the Secondary using a replication link (RLINK). The SRL is a VxVM volume configured as part of an RVG. The SRL gives VVR the ability to associate writes to specific volumes within the Replicated Data Set in a specific order, and thus to maintain write-order fidelity at the Secondary RVG.

On the Primary, each write to an RVG generates two writes: one to a data volume, and one to the SRL. The write to the data volume is written in the background and does not affect application performance. While VVR generates two writes, only the write to the SRL affects the application.

The write to the SRL is a fast write to a sequentially accessed log while the data volume write is a normal write performed asynchronously. The write to the data volume is not in the critical path for the application.

If the Primary crashes at any point before the write completes to the data volume, data is fully recoverable from the SRL. This is very similar to a database writing to a redo log and later writing to the data files. This two phase write gives VVR the ability to maintain write-order fidelity at the Secondary.

VVR at the Secondary

VVR sends data to the Secondary RVG as a message encompassing an application write. This means VVR sends messages based on application write sizes. When the Secondary receives the message in VVR kernel memory, the Secondary immediately sends an initial acknowledgement of receipt. This is known as the network acknowledgement. The network acknowledgement allows the Primary to immediately continue processing, as required. The data is not yet written to disk on the Secondary RVG, but it is still safe because it is stored in the Primary SRL. After the Secondary writes to the local disk, it sends the second acknowledgement, the data acknowledgement. The write is discarded from the SRL when the Primary receives the data acknowledgement.

The reason for the two-phase acknowledgement is performance. In synchronous mode, the Primary waits for the network acknowledgement from the Secondary before it completes the write at the application. If VVR were to wait for the write to complete on the Primary and the Secondary, it would increase latency considerably. By using the two-phase acknowledgement, VVR maintains application performance. Because data is persistently queued in the Primary SRL, safety of the data for the Secondary is maintained.

VVR receives a packet into memory on the Secondary RVG when using UDP, holds the packet until the all previous packets have been received, then writes to the disks in the correct sequence to maintain consistency at the Secondary. Holding the packets in memory enables VVR to reassemble out-of-order network traffic before writing, and discover and handle missing packets. To maintain consistency at the Secondary RVG, VVR never writes an I/O out of order with the Primary RVG. VVR serializes and checksums incoming data from the Primary RVG to support accurate replay to the Secondary volumes.

During normal data transfer the Secondary SRL is not in the data path. The Secondary SRL is only used in very specific conditions, as follows:

  • During recovery after a Primary or Secondary crash
  • To store state of actual underlying volume plexes
  • When an IBC freezes a Secondary

 ^ Return to Top Previous  |  Next  >  
Product: Volume Replicator Guides  
Manual: Volume Replicator 4.1 Administrator's Guide  
VERITAS Software Corporation
www.veritas.com