Scale Out Veeam Storage with IBM Cloud Object Storage
Prerequisites
- IBM Cloud Object Storage bucket. See this guide if you need to create an Object Storage Bucket.
- Veeam Backup Server with an un-used local or Block volume drive.
Steps
- IBM Cloud Pre-Work
- Prepare Windows server drive to be used with Veeam
- Create new Backup Repository in Veeam
- Add IBM Cloud Object Storage as a Scale-Out Repository in Veeam
Links
IBM Cloud Pre-Work
Launch IBM Cloud Shell
Launch Cloud Shell to run through the following steps. The icon can be found in the upper right navigation bar in the cloud portal.
Finding Your Cloud Object Storage Instance ID:
We will use the resource service-instance operator to get our Cloud Object Storage instance id (GUID). Use the handy jq utility to only return the GUID.
$ ibmcloud resource service-instance <name-of-icos-instance> --output json | jq -r '.[].guid'
Note: You will use the value returned by the above command in another command. Please save it.
Create a Service ID
We will create a service ID to interact with our ICOS bucket. A service ID identifies a service or application similar to how a user ID identifies a user. We can assign specific access policies to the service ID that restrict permissions for using specific services.
ibmcloud iam service-id-create <name-of-your-service-id> --description "Service ID for Veeam Scale out repository" --output json
This command simply returns the ID of the service-id that was created. This will be used in place of in the next command.
ibmcloud iam service-id <name-of-your-service-id> --output json | jq -r '.[].id'
Note: You will use the value returned by the above command in another command. Please save it.
Assign Service ID an access policy
We will now create an access policy that gives the Service ID write access to a single IBM Cloud Object Storage bucket.
ibmcloud iam service-policy-create <Service ID> --roles Writer --service-name cloud-object-storage --service-instance <Service Instance GUID> --resource-type bucket --resource <bucket-name>
Create Service Credentials for the Service ID
Veeam uses HMAC credentials (Secret Key/Access Key) so we will need to generate some from cloud shell. We will be binding these new credentials to our Service ID
$ ibmcloud resource service-key-create <name of service key> Writer --instance-id <Service Instance GUID> --service-id <Service ID> --parameters '{"HMAC":true}'
Note: Save the access_key_id and secret_access_key as we will need these when we configure the scale out repository in Veeam.
Prepare Windows Server Drive
Upon initial login to Windows server you should see Server Manager. If not then launch Server Manager and from the left hand navigation select:
- File and Storage Services
- Disks
- The drive we want to use as our new Veeam Backup Repository
In the Volumes view click on Tasks and select New Volume.
This will start the new Volume Wizard. Under Server and Disk select your local server and the drive where this volume will be created. Click Next
For both the Size and Drive Letter selections you can simply click Next as we are leaving these as default.
When it comes the filesystem we will want to select ReFS for the File System and 64K for the Allocation unit size and then click Next. After you have reviewed the volume creation details click Create to provision the volume.
The drive is now ready to be used with Veeam.
Create New Veeam Backup Repository
From the Veeam Backup and Replication console click Backup Infrastructure and then right click on Backup Repositories and select Add backup repository to launch the Repository creation wizard.
Select Direct Attached Storage in the first dialog box and Microsoft Windows in the second. Give the backup repository a name and click Next
Select your local server and click Populate to list locally attached available drives. In my case I select F
and select Next
For both the Repository and Mount Server dialog boxes you can accept the defaults and just click Next
On the review dialog box make sure to leave Import existing backups automatically unchecked since we’re starting off with a fresh set of backup job. Once you’re satisfied everything looks correct click Apply.
Note: When you see a dialog box asking Change the configuration backup location to the newly created repository? select No. If you select Yes the backup repository becomes un-usable for Scale out ICOS storage.
Add Scale Out Storage to Veeam
From the Veeam Backup and Replication console click on Backup Infrastructure and then right click on Add Scale out repository:
Give the new Scale out repository a name and click Next
.
Under Performance Tier click Add and then select the newly created backup repository.
Select Extend scale-out with object storage and click the Add button.
Select IBM Cloud Object Storage
Add the Cloud Object Storage endpoint for your bucket as well as the HMAC credentials we created earlier. The bucket that I am going to be offloading backups to was created as a us-south regional bucket. As such I am adding the private us-south endpoint s3.private.us-south.cloud-object-storage.appdomain.cloud
. To see all available endpoints see Object Storage Endpoints.
Next to credentials click Add. This is where you will add the HMAC keys that we generated previously. With those credentials added click Next. You will now select the COS bucket to use. Under Folder selection click Browse and click Add Folder to create a new directory within the bucket. Click Next to get to the Review page. If everything looks good click Finish.
You are now dropped back in to the Scale out repository wizard. You can now set the age out policy for backups in this backup repository. Make sure the Move backups to object storage checkbox is checked and set your policy. The default is 30 days.
Click Apply and review the creation details. Click Finish.
Make sure to select your newly created backup repository when creating new backup jobs to ensure that your backup roll-off operations run as expected.