Hidden Gems of Veeam v13 – Universal CDP (plus fix for Operation is not allowed in the current state)

Reading Time: 5 minutes

I’ve been running Veeam v13 in the Home Lab for a few months now. It’s working flawlessly, backup my servers locally and Wasabi immutable storage in the cloud, running replications, and using Sure Backup to verify my backups are actually working.

With Version 13 Veeam improved Universal Continuous Data Protection(U-CDP). If you are wondering what even is this, let me quote Veeam here, as it is a pretty good explainer.

“Universal continuous data protection (CDP) is a technology that helps you protect mission-critical workloads when data loss for seconds or minutes is unacceptable. Workloads of various types, such as virtual, physical or cloud machines can be replicated to VMware vSphere cluster or host. CDP provides minimum recovery time objective (RTO) in case a disaster strikes because CDP replicas are in a ready-to-start state.”

In this post I’m going to walk through setting this up and running CDP. There were some gotchas I ran into my home lab, but at the end if was a pretty smooth process.

In this scenario in my home lab, I built a virtual Windows Server 2022 to be backed by Veeam. I was originally planning on using a physical machine, but did not have one available. This server is running on VMware ESXi 8.x on one of my host. This is a GMKTec Ryzen with 96GB of Memory, with about 15TB of storage on a Synology NAS (Mounted via NFS). Given the current memory prices, I don’t think I could afford such a build anymore!

When you first deploy CDP, a CPD Proxy needs to be deployed to the hosts.

And the IO driver need to be installed on every host.

Which seems logically, since we are sending writes from the host to Veeam to create a replica of the workload we want to back up. Looking at the data flow provided by Veeam:

Seems easy enough, so let’s just deploy it…

….and it errored out with Install CDP I/O filter – Operation is not allowed in the current state

This is the first issue I encountered deploying it. I researched this for a little bit, and it came down to our friend DNS. It’s always DNS! In this case, my home lab is not domain joined and vCenter was unable to resolve my Veeam Server by its hostname. The fix is to add this to the /etc/host file on the vCenter.

First enable SSH and Bash Shell on your vCenter.

SSH into vCenter end enter shell.

Sudo vi to modify the host file located at /etc/hosts.

Hit insert to be able to modify the file in vi (I’m a nano user). In this case my Veeam Server is called Leah, with an ip of 192.168.1.25, so I added an entry as below:

Hit ESC and :wq to write and exit.

You might need to reboot your vCenter afterward, but this fixed my deployment issue and it was successful.

Very nice. Next we need to tell Veeam what to back up. We do this my creating a Protection Group. Here it is a Windows 2022 Server.

Head over to Inventory –>Physical and Cloud Infrastructure on our Veeam Server and add Protection Group.

This is an indivduall computer. We will need ip/dns and an administrator account

Make sure to put a checkmark to install CDP agent.

Apply it and reboot the machine afterward.

Now we can create the actual backup job. Let’s go back to Home–>Jobs and add a CDP Policy

Add the computer we created in the protection group.

Next we choose our Datastore, Host, and Resource Pool. Under Policy settings we can choose our replica suffix. Note this has to be unique, I had the job fail during testing because it already existed.

Finally, we can set our RPOs and retention.

After I deployed the policy the first time I was very excited, only to see error messages coming in that after the initial sync the io driver on the hosts failed. Lesson learned, you must reboot the host after deploying the driver!

The next run was successful!

Looks great. What is the amazing part, let’s say that server died, and we have to recover from Veeam, or restore files from it. We can go to replica and failover to a point in time.

You can scroll through the timeline or use the latest point of time.

This is pretty sweet in my book!

This concludes this post. We now have CDP running and can restore any workload we are able to back up to a point in time, controlled by our RPO’s we defined. This is perfect for mission-critical workloads where every moment of downtime costs the business money.

Let me know your questions and thoughts in the comments! Hope you enjoyed it.

Leave a Reply