bazaargui let you create, run and schedule backup jobs. You can also easily select and restore a backup.
First we will create an ESXi Host Object. Right click on the list and select “New”.
<list picture>
Give a name to your object and fill in the hostname and its credentials. You can test the connection and credential with the Test button.
<esxi host picture>
Then we will create the repository where we will store our backup. This time we will use a local directory. It is also possible to use a datastore attached to the ESXi host.
<REPO picture>
** test check the datastore an propose to create the directory if not existing
Then we will create a mail object, right click on the “mail” list, and select new. Email addresse can be specified as <Firstname Lastname> email@domain.com or simply by using the address alone Sender must be a valid email address. Anti-spam often test the validity of the domain, and sometime of the entire address. Recipient can be a list of multiple recipients separated by a ,. You can let the port empty. The default value is 25 for normal, 465 for ssl and 587 for tls.
usage: bazaarvcb [-h] ...
- optional arguments:
-h, --help show this help message and exit - valid commands:
checkhash check .hsh files integrity in one directory listvm list registered VMs on the ESXi host queryvm display VMs informations listbackup
search for backups in local and remote directories
- querybackup
- display report file of one particular
backup backup a VM restore restore a backup
First, do a listing of existing VMs. This part is important because this provides the right name of the VMs. Some characters in the name like slash ‘/’ are encoded and*bazaarvcb*uses the raw name.
$ bazaarvcb listvm -H vmware -u root -p pass
STATE SNAP# NAME .VMX PATH
on 1 MISC.ttylinux [SATA2000-3] MISC/ttylinux/ttylinux.vmx
off 0 MISC.ttylinux1G [SATA2000-3] MISC/ttylinux1G/ttylinux.vmx
on 0 MISC.ttylinux2G [SATA2000-3] MISC/ttylinux2G/ttylinux.vmx
The first VM is powered ON and has a snapshot. Look at the datastore paths at the end of the line. The format is important, this is how*bazaarvcb*make the difference between a datasore on the ESXi and a local path.
Query the selected VM:
$ bazaarvcb queryvm -H vmware -u root -p pass MISC.ttylinux2G
======= MISC.ttylinux2G ======
status "POWERED ON"
------- disks -------
Hard disk 1
capacity 64Mo
size 64Mo
descripor "[SATA2000-3] MISC/ttylinux2G/ttylinux_1.vmdk"
extent "[SATA2000-3] MISC/ttylinux2G/ttylinux_1-flat.vmdk"
mode "persistent"
type "VirtualDiskFlatVer2BackingInfo"
thinprovisioned "False"
Hard disk 2
capacity 2048Mo
size 2048Mo
descripor "[SATA2000-3] MISC/ttylinux2G/ttylinux.vmdk"
extent "[SATA2000-3] MISC/ttylinux2G/ttylinux-flat.vmdk"
mode "persistent"
type "VirtualDiskFlatVer2BackingInfo"
thinprovisioned "False"
----- snapshots -----
The VM has Two disks of 64Mo and 2Go, is powered on and has no snapshot.
We will simply backup the VM to another datastore of the same ESXi hosts.
$ bazaarvcb backup -H vmware -u root -p pass --roll-out 3 MISC.ttylinux2G "[SATA750-0] /backup"
The target directory is a datastore path. this is equal to /vmfs/volume/SATA750-0/backup. Use this notation to refer to a datastore, this is how backauvcb make the difference between a copy to another datastore and a download on the localhost.
–roll-out 3 * is used to limit the number of backup, old backups are removed, at the end only 3 backups are kept on the target. You can backup all you VMs into the same directory, *roll-out make the difference between all the backup using the UUID stored in the backup report file bazaarvcb.rep
Now we will list all backup of VM MISC.ttylinux2verify in the datastore [SATA750-0] /backup :
$ bazaarvcb listbackup -H vmware -u root -p pass MISC.ttylinux2G "[SATA750-0] /backup"
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T00:34:26 [SATA750-0] backup/MISC.ttylinux2G-20130422003426
One backup is found :
listbackup accepts * to list all backups of all VMs and also accept multiple target directories, these directories can be on any datastore of the ESXi host or on the local machine. listbackup does a recursive search in nested directories.
I rerun the command 3 more time to see what is happening and do a last listbackup :
$ bazaarvcb backup -H vmware -u root -p pass --roll-out 3 MISC.ttylinux2G "[SATA750-0] /backup"
$ bazaarvcb backup -H vmware -u root -p pass --roll-out 3 MISC.ttylinux2G "[SATA750-0] /backup"
$ bazaarvcb backup -H vmware -u root -p pass --roll-out 3 MISC.ttylinux2G "[SATA750-0] /backup"
$ bazaarvcb listbackup -H vmware -u root -p pass MISC.ttylinux2G "[SATA750-0] /backup"
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T01:23:25 [SATA750-0] backup/MISC.ttylinux2G-20130422012325
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T01:30:51 [SATA750-0] backup/MISC.ttylinux2G-20130422013051
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T01:52:07 [SATA750-0] backup/MISC.ttylinux2G-20130422015207
The first backup is missing, only the 3 last backup are in the list. backupvcb use VMware’s vmkfstools to copy each disks of the vm to the datastore.
To download you VMs to a local directory, you have to specify a local directory instead of a datastore.
$ bazaarvcb backup -H vmware -u root -p pass --roll-out 3 MISC.ttylinux2G /s1/backup/bazaarvcb
bazzarvcb will upload an agent on the ESXi and start multiple instance of it, then it will open port 31031 (default for –listen option) and wait for connection of the agents. If the agent cannot connect back to the backup host, they will fall back to slower SSH tunnels. Port 31031 has been choose because is is open on ESXi by default, no need to open it. Be sure to open it on your backup hosts too. If you are backing up through Internet or a router doing NAT be sure to setup a port forwarding to your backup host and use option –callback option to setup the external IP address of your Internet router.
If you want to backup through a slow network like Internet, you can use the option –hashing that will calculate hashes of blocks before to sent them back to the host. If the hashes matches blocks in the last backup, then these block will be taken from there and not downloaded from the ESXi server. bazzarvcb recursively search in the target directory for the last valid backup of the VM an use data from it. You can tell bazaarvcb to search into another directory using the –base option.
If you are on a fast network, –hashing could slow down the backup, or consume to much CPU. You can reduce the number of agent using the –agent option.
Here too you can use command listbackup to list backup from the two previous locations.
$ bazaarvcb listbackup -H vmware -u root -p pass MISC.ttylinux2G "[SATA750-0] /backup" /s1/backup/bazaarvcb
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T01:56:44 [SATA750-0] backup/MISC.ttylinux2G-20130422015644
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T02:03:59 /s1/backup/bazaarvcb/MISC.ttylinux2G-20130422020359
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T02:40:48 /s1/backup/bazaarvcb/MISC.ttylinux2G-20130422024048
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T03:06:39 [SATA750-0] backup/MISC.ttylinux2G-20130422030639
MISC.ttylinux2G 564ddca0-67ea-ca03-da5e-24962d27213e OK 2013-04-22T03:13:13 [SATA750-0] backup/MISC.ttylinux2G-20130422031313
The simplest way to restore a backup, is to copy the directory hoding the VM you wan to restore to one datastore of the ESXi host and rejister the .vmx file. To help you bazaarvcv provide the restore command. You can restore VMs from a datastore or a local directory. For example her eI’m restoring a VM from one of the backup listed previously.
$ bazaarvcb restore -H vmware -u root -p vishnou --register Restored.ttylinux2Ga /s1/backup/bazaarvcb/MISC.ttylinux2G-20130422024048 "[SATA750-0] /"
The VM is restored under the name Restored.ttylinux2G and registered.