Backup policies
Backups of Yandex Cloud resources are created in Cloud Backup automatically according to backup policies.
You can start creating the policies after you activate Cloud Backup.
Note
You can create or update a policy using the Yandex Cloud management console, Terraform, or a JSON
The Yandex Cloud management console does not support some parameters from the JSON specification for policies.
After activation, the system automatically creates the following backup policies:
Default daily
: Daily incremental backup with the last 15 backups retained.Default weekly
: Weekly incremental backup with the last 15 backups retained.Default monthly
: Monthly incremental backup with the last 15 backups retained.
By default, VMs and Yandex BareMetal servers in Cloud Backup are not linked to any backup policies. To start creating backups, link a VM or BareMetal server to one or more policies.
The backup policy specifies:
-
Backup type: Full or incremental. For more information, see Backup types.
Note
If you use a policy with the
fastBackupEnabled
option and ran an antivirus scan before creating an incremental backup, the backup time may increase significantly. For more information, see Interaction with an antivirus. -
Schedule type and settings:
Fixed schedule
: Backup frequency in hours, days, weeks, or months. All times are UTC±00:00 .Interval between backups
: Interval, in hours or days, between the end of the previous backup and the start of the new one.
-
Backup retention settings.
Note
Backups are created based on the VM's or Yandex BareMetal server's local time. There may be a slight delay in the schedule depending on the current service load.
Storing backups
You can set up backup storage for the policy. The following can be stored for each VM or BareMetal server included in the policy:
- All backups created under this policy.
- Only the last several backups.
- Only the backups younger than a certain age, e.g., those created during the last few days.
The settings apply to all VMs and BareMetal servers in the policy.
Note
You can restore neither a VM backup to a BareMetal server, nor a BareMetal server backup to a VM.
If you make changes to the backup retention rules, by default they will take effect as soon as you create another backup. For more information on the setup parameters of the backup retention rules, see the next section.
Backup policy specification
In Cloud Backup, you can create or update backup policies based on a specification in JSON
Full backup policy specification in Cloud Backup:
{
"compression": "string",
"format": "string",
"multiVolumeSnapshottingEnabled": bool,
"preserveFileSecuritySettings": bool,
"runLater": bool,
"sectorBySector": bool,
"validationEnabled": bool,
"lvmSnapshottingEnabled": bool,
"fileFilters": {
"exclusionMasks": [
"string"
],
"inclusionMasks": [
"string"
]
},
"reattempts": {
"enabled": bool,
"interval": {
"type": "string",
"count": "string"
},
"maxAttempts": "string"
},
"silentModeEnabled": bool,
"splitting": {
"size": "string"
},
"vmSnapshotReattempts": {
"enabled": bool,
"interval": {
"type": "string",
"count": "string"
},
"maxAttempts": "string"
},
"vss": {
"enabled": bool,
"provider": "string"
},
"archive": {
"name": "string"
},
"performanceWindow": {
"enabled": bool
},
"retention": {
"rules": [
{
"backupSet": [
"string"
],
"maxAge": {
"type": "string",
"count": "string"
},
"maxCount": "string",
}
],
"beforeBackup": bool
},
"scheduling": {
"backupSets": [
{
"time": {
"weekdays": [
"string"
],
"repeatAt": [
{
"hour": "string",
"minute": "string"
}
],
"repeatEvery": {
"type": "string",
"count": "string"
},
"timeFrom": {
"hour": "string",
"minute": "string"
},
"timeTo": {
"hour": "string",
"minute": "string"
},
"monthdays": [
"string"
],
"includeLastDayOfMonth": bool,
"months": [
"string"
],
"type": "string"
},
"sinceLastExecTime": {
"delay": {
"type": "string",
"count": "string"
}
},
}
],
"enabled": bool,
"maxParallelBackups": "string",
"randMaxDelay": {
"type": "string",
"count": "string"
},
"scheme": "string",
"weeklyBackupDay": "string"
},
"cbt": "string",
"fastBackupEnabled": bool,
"quiesceSnapshottingEnabled": bool
}
Specification description:
Attribute | Description | Possible values |
---|---|---|
compression |
Backup compression ratio. |
|
format |
Backup format. |
|
multiVolumeSnapshottingEnabled |
Backing up multiple volumes at the same time. |
|
preserveFileSecuritySettings |
Retaining file security settings. The parameter is no longer supported. |
|
runLater |
If the VM was Stopped during a scheduled backup, all skipped backup jobs will be executed after the VM starts. |
|
sectorBySector |
Sector-by-sector backup. Backs up all disk or volume sectors, including empty areas and unallocated space. For disks with unsupported file systems, this mode applies automatically. You cannot recover app data from a backup like that. |
|
validationEnabled |
Checks the possibility of recovering data from the new backup. During procedure, a checksum is calculated for each section available for recovery, so it can take a while. |
|
lvmSnapshottingEnabled |
Uses LVM to create a volume snapshot. If the snapshot cannot be created using LVM, it will be created using the Cloud Backup agent. |
|
cbt |
Changed Block Tracking (configuration for tracking backup contents). |
|
fastBackupEnabled |
Fast backup: setting for tracking changes to files. When enabled, file changes are detected by the file size and timestamp. When disabled, files are checked for changes by comparing their contents to backed up files. |
|
quiesceSnapshottingEnabled |
Using quiescing when creating backups. The parameter is no longer supported. |
|
Attribute sections with multiple nested values.
Setting up backup reattempts in the event of failures.
Attribute | Description | Possible values |
---|---|---|
reattempts.enabled |
Retry creating a backup if a noncritical error occur (e.g., failure to connect to a target disk). |
|
reattempts.interval.type |
Unit of time used to set the reattempt interval. |
|
reattempts.interval.count |
Interval between reattempts. | Integer |
reattempts.maxAttempts |
Maximum number of reattempts. If reached, the operation is considered failed. | Integer |
silentModeEnabled |
Silent mode to reduce the number of user interactions wherever possible. Disabled by default. |
|
splitting.size |
Splitting a backup into volumes of a preset size in bytes. If no value is specified, a backup is saved as a single file. | Integer |
Configuring backup reattempts in the event of failure.
Attribute | Description | Possible values |
---|---|---|
vmSnapshotReattempts.enabled |
Retry creating a backup if errors occur. |
|
vmSnapshotReattempts.interval.type |
Unit of time used to set the reattempt interval. |
|
vmSnapshotReattempts.interval.count |
Interval between reattempts. | Integer |
vmSnapshotReattempts.maxAttempts |
Maximum number of reattempts. If reached, the operation is considered failed. | Integer |
Volume Shadow Copy Service (VSS) setup. The service notifies applications with VSS support of the upcoming backup start. The applications save information from memory to disk, which ensures data integrity during backup.
Attribute | Description | Possible values |
---|---|---|
vss.enabled |
Enable VSS. |
|
vss.provider |
Choosing a VSS provider. |
|
archive.name |
Name of the archive being created. | String that may contain the following variables: [Machine Name] , [Plan ID] , [Plan Name] , [Unique ID] , and [Virtualization Server Type] . |
performanceWindow |
Enable a performance window to limit the impact of backups and storage maintenance on performance. |
|
Setting up rules for storing backups. The maxAge
and maxCount
attributes are mutually exclusive, i.e., the use of one makes it impossible to use the other.
Attribute | Description | Possible values |
---|---|---|
retention.rules.backupSet |
Set of backups for which the retention settings are specified. | String |
retention.rules.maxAge.type |
Setting a backup retention rule to delete outdated backups depending on their age in specified time units. |
|
retention.rules.maxAge.count |
Maximum backup retention period in time units set by the maxAge.type attribute. |
Integer |
retention.rules.maxCount |
Setting a backup retention rule to delete outdated backups depending on the specified maximum number of stored backups. | Integer |
retention.beforeBackup |
Applying backup retention rules before the end of the backup. When creating a policy by default or via the management console, the beforeBackup=false rule is set. The backup retention rule settings will take effect as soon as another backup is created. |
|
Setting up a backup schedule. The time
(based on preset time) and sinceLastExecTime
(with preset interval between backups) attributes are mutually exclusive, i.e., the use of one makes it impossible to use the other.
Attribute | Description | Possible values |
---|---|---|
scheduling.backupSets.time.weekdays |
Days of the week to create backups on. You can specify multiple values separated by commas. |
|
scheduling.backupSets.time.repeatAt.hour |
Time to repeat backups at: hours. | Integer from 0 to 23 |
scheduling.backupSets.time.repeatAt.minute |
Time to repeat backups at: minutes. | Integer from 0 to 59 |
scheduling.backupSets.time.repeatEvery.type |
Units of time used to set the repeat backup interval. |
|
scheduling.backupSets.time.repeatEvery.count |
Backup reattempt interval in units set by the repeatEvery.type attribute. |
Integer |
scheduling.backupSets.time.timeFrom.hour |
Start time for the backup interval (from): hours. | Integer from 0 to 23 |
scheduling.backupSets.time.timeFrom.minute |
Start time for the backup interval (from): minutes. | Integer from 0 to 59 |
scheduling.backupSets.time.timeTo.hour |
End time for the backup interval (to): hours. | Integer from 0 to 23 |
scheduling.backupSets.time.timeTo.minute |
End time for the backup interval (to): minutes. | Integer from 0 to 59 |
scheduling.backupSets.time.monthdays |
Day of the month to create backups on. You can specify multiple values separated by commas. | Integer from 1 to 31 |
scheduling.backupSets.time.includeLastDayOfMonth |
Making backups on the last day of each month. |
|
scheduling.backupSets.time.months |
Months to create backups in. You can specify multiple values separated by commas. | Integer from 1 to 12 |
scheduling.backupSets.time.type |
Backup frequency. |
|
scheduling.backupSets.sinceLastExecTime.delay.type |
Units of time used to set the interval between backups. |
|
scheduling.backupSets.sinceLastExecTime.delay.count |
Interval between backups in time units set by the delay.type attribute. |
Integer |
scheduling.enabled |
Scheduled backup. |
|
scheduling.maxParallelBackups |
Maximum number of parallel backups; unlimited if no value is specified. | Integer |
scheduling.randMaxDelay.type |
Units of time used to set the maximum delay before running parallel jobs. |
|
scheduling.randMaxDelay.count |
Maximum delay before running parallel jobs in time units set by the randMaxDelay.type attribute. The delay is determined randomly but it may not exceed the value set here. |
Integer |
scheduling.scheme |
Backup schedule scheme. |
|
scheduling.weeklyBackupDay |
Day of the week for the weekly backup. | Integer from 1 to 7 |
Setting up filters. You can exclude files and folders from backups or, conversely, create backups of only specific elements of the file system.
To include or exclude files, add some criteria, e.g., file names, paths, or masks. *
and ?
wildcards are supported. Use a new line for each criterion. Criteria are case-insensitive.
Exclusion filters take precedence over inclusion filters.
Attribute | Description | Value (example) |
---|---|---|
exclusionMasks |
Criterion for files to exclude from the backup. | /tmp |
inclusionMasks |
Criterion for files to include into the backup. | /home/user* |