Configuring Storage : Configuring Branch Recovery
  
Configuring Branch Recovery
The Branch Recovery Agent is a Windows service installed on VSP or external VMs or hosts, and enables prepopulation of the working set when LUNs on an Edge are being restored after an irrecoverable failure. After installation, it is always running, listing, and maintaining a list of accessed blocks in a file that composes the working set.
The Branch Recovery Agent is compatible with both Windows VMs and physical hosts. You can configure branch recovery on LUNs hosting the Virtual Machine File System (VMFS), for all or some VMs, or the New Technology File System (NTFS), for all drives on the LUN. The Windows VM comprises multiple VMDKs on a VMFS LUN. Each of the VMDKs is formatted as NTFS.
As of version 3.6, for each VM on a LUN where you have set up branch recovery, the Core cycles through each VM in a round-robin fashion, recovering the working set in phases starting with the most recently accessed blocks and working backwards. For example, if you have set up branch recovery on two VMs, the Core recovers the most recent day of data for VM1 first, and then for VM2. The Core then recovers a week of data on VM1, and then does the same for VM2. This process ensures that the VMs have the latest working set.
Branch recovery can also be used in conjunction with prefetch and prepopulation. During recovery, use branch recovery to quickly restore the working set. Later, use prepopulation or rely on prefetch to optimize cold files and folders.
The Branch Recovery Agent has been qualified on Windows 7, Windows 2008 Release 2, and Windows 2012 Release 2.
Note: The Branch Recovery Agent cannot distinguish between virtual disks on SteelFusion storage or local storage.
To set up branch recovery
1. Install the Branch Recovery Agent on each host running Windows (virtual or physical) at the branch.
You can find the Riverbed Host Tools installer at https://support.riverbed.com.
Note: You must run the agent installer as an administrator.
2. Choose Configure > Manage: LUNs to display the LUNs page.
3. Click the LUN you want to set up with branch recovery.
4. Select the Branch Recovery tab.
5. Click Add VM.
Any number of VMs can be selected for the operation.
Note: The backend must be connected (and the prefetch stack instantiated on it) for VMs to be selected for recovery.
6. Select a VM to add to the branch recovery operation.
7. Specify a separate VM Cap for each VM.
The VM Cap is the maximum amount of data to be prepopulated by branch recovery per disk. To add more VMs at a later date, you must disable Branch Recovery, add the new VMs, and enable it again.
Note: Either all VMDKs of a VM are recovered, or none are. In particular, if a VM has one RDM disk, that VM is skipped.
8. Click Add VM.
9. Click Change Schedule.
The recovery operation can be scheduled immediately (Now) or for a future date. When the operation runs, progress is displayed.
10. Create a schedule for branch recovery on this LUN and click Submit Schedule.
11. Once you have finished setting up branch recovery on this LUN, click Enable.
12. Click Save to save your settings permanently.
Note: After Branch Recovery is set up and enabled, no settings can be changed until it is disabled again.
The Branch Recovery Agent uses the Event Tracing for Windows framework. This framework uses data supplied by the OS on all I/O (read and write) on each virtual disk. It writes all this data periodically to a file on the same disk.
For example, if a VM has two VMDKs, Disk0 (C:, 40 GB) and Disk1 (D:, 10 GB, E:, 20 GB),
•  All disk-access history for Disk0 is written into C:\Riverbed\BranchRecovery\lru*.log
•  All disk-access history for Disk1 is written into E:\Riverbed\BranchRecovery\lru*.log
All these files are transmitted to the LUN hosting the VMFS at the data center. After a failure, the VMFS LUN (or a snapshot) is mapped to a new Edge, and a prefetch technique crawls the LUN, parsing all the lru*.log files it discovers and pushing the blocks recorded there.