We are excited to announce two new enhancements for the non-moving compute instance type in Full Stack Disaster Recovery (Full Stack DR).

  • Out-of-box support to unmount/mount file systems and detach/attach the block storage volumes for non-moving compute instances
  • Out-of-box support to stop and start the non-moving compute instances

OCI Full Stack Disaster Recovery (Full Stack DR) provides fully automated and comprehensive disaster recovery orchestration solution for all the layers of a full-stack cloud application, including infrastructure, database, and the application middle tier. Using Full Stack DR, you can recover your full stack applications across OCI regions or availability domains within the same region.

When adding Compute as a member type in the DR protection groups, you have the option to add compute as a Moving instance or a Non-moving instance

Full Stack DR can orchestrate recovery for non-moving and moving compute in the same protection group, so you have the flexibility to include both types as required.Throughout the process of creating a Full Stack DR plan, various options are provided to control these instances depending on preference which is critical given that application often have different requirements in regards to SLA which can impact the choices along with the distance between the selected regions or availability domains.  Let’s understand the differences between the two variations of compute instance types at a high level:

  • Moving instance – Virtual machine moves from primary to standby DR protection group. This compute instance type is routinely considered ideal for DR strategies like cold VM DR or pilot light.
  • Non-moving instance – Virtual machines won’t move from primary to standby DR protection group. Instead, virtual machines are already available in primary and standby regions. This compute instance type is ideal for DR strategies like warm standby active/passive.

Full Stack DR integration with OCI Block Storage

For cold standby or pilot light topologies, Full Stack DR already has capabilities using a moving compute instance and volume groups as members of the primary DR protection group. During the DR plans execution, Full Stack DR can launch the compute instances and automatically mount the replicated block volumes to those compute instances in the DR region. 

For warm standby or active-passive topology, prior to this new feature, administrators could use user-defined plan groups and scripts to handle cross-region replicated block volumes in the DR region as well as unmount/mount and detach/attach the block volumes to the compute instances. Utilizing this new enhancement, users can specify block volumes that need to be detached or attached while adding the non-moving instances in the DR protection group. Full Stack DR will then automatically generate plan groups and steps during the DR plan creation.

 

non-moving compute features

Stop and Start non-moving compute instance

In active-passive DR topology, administrators have to pay the cost associated with the compute instances since the compute instances are running in the DR region. Routinely, administrators will shut down the compute instances in the DR region to save cost. With this new feature, administrators can optionally select to start or stop instances during failover/switchover events.  Full Stack DR will then automatically generate plan groups and orchestration steps as part of the DR plan creation.

Non-moving-restart-compute

Examining the details around non-moving compute features

As a prerequisite, provision and configure the non-moving compute instances with block volumes and volume groups. Below are the high-level steps:

  • Create virtual machines within both the primary and DR regions. These VMs are designated to be used as non-moving instances in the Full Stack DR configuration.
  • Create and attach the block volumes to the non-moving compute instances in the primary region.
  • Depending on the volume attachment type, mount the block volumes to the non-moving compute instances in the primary region.
  • Create the file system and mount the volumes in the non-moving compute instances in the primary region.
  • Configure cross-region (from Primary to DR regions) volume groups for the block volumes attached to the non-moving compute instances in the primary region.
  • Update the /etc/fstab details for the non-moving compute instances in both the primary and standby regions

For more information please refer to the OCI Compute, OCI Block Storage documentation.

Depending on the DR topology, add the members to the DR protection groups (Primary and Standby) and create DR plans from the Standby DR protection group. Full Stack DR provides built-in plan groups and steps to detach/attach/compute restart based on the type of DR plans (switchover, failover, and DR drill) and options selected while adding a non-moving compute instance. Below, built-in plan groups and steps will be generated by the Full Stack DR service in regards to non-moving compute instances.

  • Unmount the file systems from the non-moving compute instances in the primary region.
  • Detach block volumes from the non-moving compute instances in the primary region.
  • Stop non-moving compute instances in the primary region ( If the check box is selected to stop the instance on failover/switchover)
  • Switchover volume groups from primary to standby region
  • Start non-moving compute instances in the standby region ( If the check box is selected to stop the instance on failover/switchover)
  • Attach block volumes to the non-moving compute instances in the primary region.
  • Mount the file systems to the non-moving compute instances in the standby region.

Here is the summary of the steps for the detach/attach block volumes and stop/start compute instances plan groups and steps for all the DR plan types.            

DR Plan

Primary

Standby

Switchover

1. Unmount file systems and detach block volumes

2. Stop compute instances

1. Start compute instances

2. Attach block volumes and mount file systems

Failover

NA

1. Start compute instances

2. Attach block volumes and mount file systems

Start Drill

NA

1. Start compute instances

2. Attach block volumes and mount file systems

Stop Drill

NA

1. Unmount file systems and detach block volumes

2. Stop compute instances

 

A step-by-step example

In this example, Ashburn (IAD) is the primary region, and Phoenix (PHX) is the DR region. We will detach the block volumes from the non-moving compute instance in the IAD region and attach the block volumes to the non-moving compute instance in the PHX region. We will select the checkbox to stop and start the non-moving compute instance during the DR plan execution.

non-moving-inst-architecture

Provision and configure the below resources In IAD region:

  • Create a VM (nm-iad) in the IAD region and a VM (nm-phx) in the PHX region.
  • Create two block volumes (nm-iad-bv1, nm-iad-bv2) in the same availability domain as the nm-iad VM in the IAD region.
  • Create a volume group (nm-iad-vg) with cross region replication ( from IAD to PHX) in the IAD region for the block volumes (nm-iad-bv1, nm-iad-bv2).
  • Attach the block volumes (nm-iad-bv1, nm-iad-bv2) to the nm-iad VM.
  • Connect the block volumes (nm-iad-bv1, nm-iad-bv2) to the nm-iad VM region using the iSCSI commands.
  • Create two file systems as (/mnt/iad1, /mnt/iad2) in nm-iad VM
  • Mount the block volumes ( nm-iad-bv1 => /mnt/iad1 and nm-iad-bv2 => /mnt/iad2) in nm-iad VM
  • Update the /etc/fstab with the mount volume ( nm-iad-bv1 => /mnt/iad1 and nm-iad-bv2 => /mnt/iad2) details in the nm-iad VM
  • Grant administrator permissions to the nm-iad VM to able to run the command.

For more information please refer the OCI Compute, Block Storage documentation.

Let’s create DR plans for this DR topology.

1.Create & associate DR protection groups, add non-moving compute and volume groups as members

  • In the Ashburn (IAD) region, create a DR protection group as “nmov-iad.”
  • In the Phoenix (PHX) region, create a DR protection group as “nmov-phx.”
  • Associate the “nmov-iad” DR protection group as the Primary role and the “nmov-phx” DR protection group as the Standby role
  • In the “nmov-iad” DR protection group, add the volume group “nm-iad-vg” as member.
  • In the “nmov-iad” DR protection group, add the compute (nm-iad) as member with the non-moving instance option. Click Show advanced options, provide the below details in the Block Volumes tab, you should use  “+ Another block volume mapping”  button to add two the second block volume details.                        

Block volume

Volume attachment reference instance (Peer non-compute VM) optional

Mount point – mount path details for mounting and unmounting (optional)

nm-iad-bv1

nm-phx

/mnt/iad1

nm-iad-bv2

nm-phx

/mnt/iad2

  •    After adding the required information the screen should like below 

   iad-nm-vm-block

  •   In the settings tab, select the checkbox “Start and Stop instance on failover/switchover” and click “Add” button to add the compute instance


  ​iad-nm-vm-restart

  •   In the “nmov-phx” DR protection group, add the compute (nm-phx) as member with the non-moving instance option. Click Show advanced options, provide the below details in the Block Volumes tab, you should use  “+ Another block volume mapping”  button to add two the second block volume details. In the nm-phx, since we don’t have the replicated block volumes yet, you must provide the primary block volume details, Full Stack DR will map those block volumes after the volume group replication steps are completed.

Block volume

Volume attachment reference instance (Peer non-compute VM) optional

Mount point – mount path details for mounting and unmounting (optional)

nm-iad-bv1

nm-iad

/mnt/phx1

nm-iad-bv2

nm-iad

/mnt/phx2

iad-nm-vm-block

  • In the settings tab, select the checkbox “Start and Stop instance on failover/switchover” and click “Add” button to add the compute instance.

iad-nm-vm-restart

For more information please refer OCI Full Stack DR  documentation.

2.Verify the members in “nmov-iad” and “nmov-phx” DR protection groups

iad-nm-drpg-members

phx-nm-drpg-members

3.Steps for creating DR Plans

    Navigate to DR Protection Group page in Phoenix region.

  • In the “nmov-phx” DR protection group, click the Create Plan button
  • Provide “Switchover-IAD to PHX” as the name of the plan.
  • Select “Switchover” as the plan type.
  • Click on “Create” to finish creating the Switchover plan.
  • Similarly, create Failover plan as “Failover-IAD to PHX” and start drill plan as “Start Drill-PHX”
  • Full Stack DR will not allow to create Stop Drill plan unless “Start Drill-PHX” plan execution succeeds.

   You should able to see all three plans as active

    nm-dr-plans

4.Let’s explore the “Switchover-IAD to PHX” plan which we have created.

   nm-switchover-plan

     Full Stack DR has created multiple built-in plan groups based on the members we added to the DR protection groups. We are interested to see the built-in plan groups for non-moving compute instances.We have the option to customize the plan and add our own user-defined plan groups. However, in this example we will not be customizing this Switchover Drill plan.

  • Detach Block Volume from Compute Instances – Unmount the file systems and detaches the block volumes from “nm-iad”
  • Stop Compute Instances – Stop the compute instance “nm-iad”
  • Start Compute Instances – Start the compute instance “nm-phx”
  • Attach Block Volume to Compute Instances – Attach the replicated block volumes and mount the file systems to “nm-phx”

5.Let’s run a precheck for the “Switchover-IAD to PHX” plan.

   nm-switchover-prechecks

  After a while, the “Switchover-IAD to PHX” prechecks plan execution succeeds.

nm-switchover-prechecks-executed

 6.Let’s verify the block volumes and file systems in “nm-iad” VM.

We have the mount points /mnt/iad1 and /mnt/iad2 using the block volumes nm-iad-bv1, nm-iad-bv2 respectively. Both mount points have a file “beforeswitchoverfromIAD” which will be used for testing.

 iad-nm-vm-fs

 7.Let’s verify the block volumes and file systems in “nm-phx” VM.

As expected, we don’t have any block volumes attached.

 phx-nm-vm-fs

8. Now let’s execute the “Switchover-IAD to PHX” plan and monitor the status.

    nm-switchover-execute

     After a while, the “Switchover-IAD to PHX” plan execution succeeds.

     nm-switchover-executed

9.In the IAD region, verify the ‘nm-iad’ block volumes and file systems.

File Systems /mnt/iad1 and /mnt/iad2 are unmounted and compute instance is stopped.

   iad-nm-bv-dettach

   phx-nm-vm-stopped

10.In the PHX region, verify the ‘nm-phx’ block volumes and file systems.

Block volumes are attached and file systems /mnt/phx1 and /mnt/phx2 are mounted. Both file systems have the file “beforeswitchoverfromIAD” which was created in IAD region.

  phx-nm-bv-attach

You can watch the demo of this feature using Detach/attach block volumes and stop/start non-moving compute instances

Conclusion

Full Stack Disaster Recovery (DR) provides built-in support to manage block volume operations, such as unmounting/detaching and mounting/attaching block storage to the virtual machines (VMs) deployed in an active/passive DR topology. Additionally, it includes features for non-moving compute resources, where it can stop virtual machines in the primary region and automatically start them in the standby region if they are not already running. This ensures a smooth and efficient recovery process in case of a disaster, allowing for a seamless transition of operations to the standby region when needed.

 Additional resources

Here are some additional resources to help you get started with Full Stack Disaster Recovery:

Feel free to connect with me directly on Twitter and LinkedIn