Challenge
If a Linux server has EMC PowerPath devices attached, all the underlying block devices representing the network paths to the server are included in the backup created by Veeam Agent for Linux 2.x. Therefore, an extra amount of data is stored inside the backup file.In Veeam Agent for Linux 3.x such devices are skipped from processing completely, resulting in the "No objects to backup" error or PowerPath devices missing from the backup.
Cause
Currently, Veeam Agent for Linux detects only the DM-Multipath based devices as aggregated. Because of this, the following applies to the product:- In version 2.x, all the block devices with underlying EMC PowerPath aggregated devices are also included in the backup file if the ‘Entire machine’ backup mode is selected in the backup job settings.
- In version 3.x, block devices with the same MBR ID cannot be backed up. Both individual paths and aggregated device are considered different block devices and are skipped from processing.
Solution
Veeam Agent for Linux 2.x
Configuring Veeam Agent Backup Job on Veeam Agent Machine
Configure Volume-level backup job in Veeam Agent for Linux and include only aggregated EMC PowerPath devices and regular block devices into the backup, do not include block devices representing the network paths of EMC PowerPath. In this case, no extra data will be stored inside the backup file, only the exact amount of real data. For example, in following output you may see EMC PowerPath aggregated device name and underlying devices:
[root@localhost ~]# powermt display dev=all Pseudo name=emcpowerea Symmetrix ID=000343607604 Logical device ID=07BA Device WWN=60000980000262604497023030364553 state=alive; policy=SymmOpt; queued-IOs=0 ============================================================================== --------------- Host --------------- - Stor - -- I/O Path -- -- Stats --- ### HW Path I/O Paths Interf. Mode State Q-IOs Errors ============================================================================== 6 lpfc sdef FA 10f:00 active alive 0 0 5 lpfc sdcm FA 6f:00 active alive 0 0 4 lpfc sdau FA 7f:00 active alive 0 0 3 lpfc sdb FA 11f:00 active alive 0 0In this example there are following devices:
/dev/emcpowerea – aggregated EMC PowerPath device
/dev/sdef, /dev/sdcm, /dev/sdau, /dev/sdb – underlying block devices representing the network paths
Accordingly, to mount table /dev/emcpowerea partitioned and mounted under /data folder:
root@localhost:~# mount | grep emcpowerea /dev/emcpowereap1 on /data type ext4 (rw,relatime,errors=remount-ro,stripe=256,data=ordered)
sdef, sdcm, sdau and sdb should be left unchecked.
Configuring Veeam Agent Backup Job in Veeam Backup & Replication
If Veeam Agent backup job is managed by the backup server, you may configure the same via Veeam B&R console. For example, choose type ‘Volume level backup’ for your backup job:And enter the block device names or mountpoint paths as shown below:
Veeam Agent for Linux 3.x
You must exclude all individual IO paths in the /etc/veeam/veeam.ini configuration file using the ignoreDevices parameter under the [backup] section. This parameter is hidden in the default veeam.ini file, and you must add it manually.
The following example displays the list of individual IO paths for the /dev/emcpowerea block device (from the example above, retrieved via the powermt output):
/dev/sdef;/dev/sdcm;/dev/sdau;/dev/sdb
Specify these paths in the ignoreDevices parameter in the veeam.ini file using a semicolon without a whitespace as a separator. For example:
[backup] # Backup cluster alignment logarithm # clusteralign= 3 # Ignore inactive LVM logical volumes during backup # ignoreinactivelvm= false # IO rate limit, from 0.01 to 1.0 # ioratelimit= 0.9 # CPU priority for veeamagents, from 0 to 19 # priority= 10 # Verbose logging of device enumeration # verbosedevenumlogging= false ignoreDevices= /dev/sdef;/dev/sdcm;/dev/sdau;/dev/sdb
Save the veeam.ini file and make sure no backup or restore sessions are running on the Veeam Agent machine. If no backup or restore sessions are running, restart the veeamservice daemon so that the new values are picked up from the configuration file.