I recently had an opportunity to participate in another backup solution. This project used Veeam Backup & Replication and the VeeamOne Management Suite. You can get product information, whitepapers, technical references, videos and the inevitable marketing pitches and testimonials on the Veeam Software website at www.veeam.com.
Veeam works with both VMware and Microsoft Hyper-V. The objective was to implement a backup/recovery solution coupled with a performance monitoring and reporting solution for a VMware 5.1 infrastructure comprising over 100 virtual machines in 2 datacenters.
A mentioned, Veeam B & R provided for backup and recovery of VMs. Think if a VM as a set of files, nothing more and you get the gist of the process. We’re going to copy and replace files. Of course this gets more complicated when you find that a running virtual machine has a lot of those files in motion and the idea is to capture the state at a precise instant in time to make a consistent copy of a VM. It does this for Windows systems using Volume Shadow copy Service (VSS). For non-Windows systems such as Linux, it essentially does a file copy. System Center Data Protection Manager (DPM) uses the VSS Writer technology to backup Hyper-V environments. Other backup solutions including DPM use agents within the virtual machine to back up the file system and OS partition, “System State” through recovery using these solutions is a hardship and I caution you to keep your favorite talisman handy and hope that you don’t have to recover.
The other part of Veeam Backup & Replication is the product’s ability to perform near continuous backup, essentially a hot replication of a virtual environment from one data center to another disaster recovery data center. In the event of a disaster, a few network changes are required to divert traffic to the DR site to find the entire infrastructure up and running. But that’s a topic for another time.
This post focuses on Veeam, particularly the Backup and Replication components and specifically the implementation architecture that we used. To recap, we have the major components: Veeam Backup & Replication, and VeeamOne Management Suite which consists of Business View, Monitor and Reporter.
Let’s begin with a logical picture of Veeam B&R along with a short narrative describing each piece.
The following picture shows the relationship of the components in relation to the entire Virtual Infrastructure.
Let’s begin with the VMware infrastructure. We’re using HP ProLiant Blade 460 Servers with 64GB RAM running Linux and ESXi 5.1 as the virtual host machines. A Windows 2008R2 virtual machine is running the vSphere Client. The host servers use data stores presented from a HP 3PAR SAN. The VMware operational database is deployed to a Windows 2008 R2 server in a SQL Server 2008 R2 Windows Failover Cluster.
The vSphere client is the management interface to the virtual environment and is also the interface with Veeam B&R.
Veeam B & R – Backup
The Veeam B & R Administrator console is deployed on a virtual Windows 2008 R2 server. Veeam backup uses a database deployed on the same SQL Server environment supporting VMware. The Veeam administrator is responsible for running backup, replication and recovery jobs. It does this by using Backup Proxy servers, which are deployed in the environment as virtual Windows 2008 R2 Server Core machines. Once you use disk manager to initialize and format the virtual storage assigned to the proxy, your job is done. Veeam software installation pushes out all connectivity components automatically. As I mentioned, once the storage is configured in disk manager, I haven’t logged into one of these guys.
Veeam uses “repositories” to support all backup and recovery operations. A backup proxy with attached storage is referred to as a repository. The backup proxies do all of the heavy lifting, that is move the bits around from the VM data stores to the Veeam repositories.
The Veeam Administrator is responsible for creating and executing jobs, and for managing any recovery operations. It also interfaces with a counter part in a different data center when its in a Replication environment. We’re not going to cover that here.
In order to create backup jobs, you need to bring into the infrastructure the vSphere servers. You create a job by specifying a vSphere server with control over the VM guests you want to include in the job. You can name each VM or you can organize your VM infrastructure into folders in vSphere. Using folders includes all VMs defined in the tree structure. You can also exclude VMs that are part of the folder selected. A word to the wise: don’t get carried away with nesting here as it will bite you when it comes to excluding VMs.
After you’ve selected the VMs to include in the job, specify the storage repository and the proxies. Generally speaking you choose the repository and the proxy connected to the repository will handle the backup transferring files from the data stores to the repository.
The other item to note is the type of backup operation to perform. There are two: Forward Incremental and Reverse Incremental. Forward is the type we’re used to running. Take a full backup and then take the file blocks that have changed (Changed Block Tracking or CBT) and collect them into a file. Repeat the process as frequently as required until the next full backup. In order to get to a specific point in time, you have to bring up the full backup and then sequentially advance the incremental to the required point in time.
On the other hand, Reverse Incremental creates a full backup. On subsequent backup cycles, the blocks that have been changes since the last backup are merged into the current full backup while the blocks in the backup that are replaced are placed in to a file. Basically, The full backup is the latest backup and you can then unravel the current changes to get back to a time of the previous backup. We used this backup type.
In Reversed Incremental you always have the last full backup of a VM ready to be recovered – ideal for a disaster scenario where you want to be able to get the latest state of the VM on line in as little time as possible. With Forward Incremental, as mentioned, you need to start with the full and apply the incremental to get to a point in time.
One of the last pieces is to specify how many backups to keep. When the backup job executes, it creates a folder in the repository with the same name as the job. The files in the folder represent the backup instances. Each file contains blocks of all of the files that represent the VMs in the backup.
So, we can define a schedule for a job to run and we can also chain jobs to run sequentially when a predecessor job completes.
Veeam B & R – Recovery
Veeam B & R has a few ways to initiate a recovery operation. It can bring up a VM with the original VM turned off – this is recovery after all. You can then login or otherwise interact with the Instant Recovery VM. If you want to keep replace the broken one, simply initiate a VMware Merge operation and VEEM will migrate the backup files from the repository to the data store and the operation is finished. You can also recover and replace all of the original files with a point in time restore from backup. The original VM must be powered off. You can also, replace individual files comprising the VM.
I personally prefer doing all Instant Recovery type operations because it lets me try out the backup. Who knows, I may be better served by trying to repair the failed VM instead of recovering it.
One thing to keep in mind is that during an Instant Recovery operation, the recovered VM is running from the backup repository! A VM is created in vSphere that represents the running state of the VM while the read-only .VMDK is being processed from the repository through the proxy server. Nice!
OK, so that’s about it for Veeam B & R. What about VeeamOne?
VeeamOne is all about monitoring and reporting. VeeamOne maintains a database, VeeamOne Db on the remote SQL server. It updates the database with backup information obtained from the B & R database as well as updating its database from real-time captures from the VMware infrastructure. You are able to monitor infrastructure resources, hosts, memory, cpu usage, disk utilization, etc. You can also generate reports ad-hoc and on a periodic basis. If you have SQL Server Reporting Services installed , then you can leverage it, otherwise it uses its native API calls to produce SSRS reports. In addition, you’re able to establish alerts to notify you when a specific threshold has been reached.
That’s the ten thousand foot view of the implementation. Subsequent posts will no doubt drill down in to other features and best practices as well as some “gotch ya’s” that I’ve had to contend with.
This posting is provided “as is” with no warranties, guarantees or rights whatsoever.