Creating a backup policy
-
In the management console
, select the folder where you want to create a backup policy. -
In the list of services, select Cloud Backup.
-
Go to the
Backup policies tab. -
Click Create policy.
-
On the backup policy creation page:
-
Enter a name. The naming requirements are as follows:
- The name must be from 3 to 63 characters long.
- It may contain lowercase Latin letters, numbers, and hyphens.
- The first character must be a letter and the last character cannot be a hyphen.
-
In the Create backups field, select how often backups should be created:
Every hour
.Every day
: Specify the time for creating backups.Every week
: Specify the days of the week and time for creating backups.By month
: Specify the months, days of the month, and time for creating backups.
-
Select the type of backup:
Incremental
: Only data that differs from a previous backup is saved.Full
: All VM's data is saved.
-
Select the policy for backup retention:
Retain all backups
: All backups created under this backup policy will be retained.Only the last
: Specify the number of recent backups you want to retain or the number of days, weeks, or months for which to retain the backups. All other backups are deleted automatically.
If you create the policy via the management console, subsequent changes of backup retention rules will take effect as soon as you create another backup.
-
-
Click Save.
If you do not have the Yandex Cloud command line interface yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name
or --folder-id
parameter.
-
See the description of the CLI command to create a backup policy:
yc backup policy create --help
-
Specify the configuration of the backup policy being created as a data schema in JSON
format.Sample configuration file{ "compression": "NORMAL", "format": "AUTO", "multiVolumeSnapshottingEnabled": true, "preserveFileSecuritySettings": true, "reattempts": { "enabled": true, "interval": { "type": "SECONDS", "count": "30" }, "maxAttempts": "30" }, "silentModeEnabled": true, "splitting": { "size": "1099511627776" }, "vmSnapshotReattempts": { "enabled": true, "interval": { "type": "MINUTES", "count": "5" }, "maxAttempts": "3" }, "vss": { "enabled": true, "provider": "TARGET_SYSTEM_DEFINED" }, "archive": { "name": "'[Machine Name]-[Plan ID]-[Unique ID]A'" }, "performanceWindow": { }, "retention": { "rules": [ { "maxCount": "10" } ], "afterBackup": true }, "scheduling": { "backupSets": [ { "time": { "weekdays": [ "MONDAY" ], "repeatAt": [ { "minute": "5" } ], "type": "WEEKLY" } } ], "enabled": true, "maxParallelBackups": "2", "randMaxDelay": { "type": "MINUTES", "count": "30" }, "scheme": "ALWAYS_INCREMENTAL", "weeklyBackupDay": "MONDAY" }, "cbt": "ENABLE_AND_USE", "fastBackupEnabled": true, "quiesceSnapshottingEnabled": true }
Once completed, save the configuration to a
.json
file.The example describes a configuration for a backup policy that will create incremental VM backups every Monday at 00:05 (UTC+0). Only the last 10 backups will be stored.
-
Create a backup policy:
yc backup policy create \ --name <policy_name> \ --settings-from-file <configuration_file_path>
Where:
--name
: Name of the backup policy being created.--settings-from-file
: Path to the backup policy configuration file in JSON format.
Result:
id: cbq5rwepukxn******** name: test2 created_at: "2023-07-03T08:24:16.735555276Z" updated_at: "2023-07-03T08:24:16.746377738Z" enabled: true settings: compression: NORMAL format: AUTO multi_volume_snapshotting_enabled: true preserve_file_security_settings: true reattempts: enabled: true interval: type: SECONDS count: "30" max_attempts: "30" silent_mode_enabled: true splitting: size: "1099511627776" vm_snapshot_reattempts: enabled: true interval: type: MINUTES count: "5" max_attempts: "3" vss: enabled: true provider: TARGET_SYSTEM_DEFINED archive: name: '''[Machine Name]-[Plan ID]-[Unique ID]A''' performance_window: {} retention: rules: - max_count: "10" after_backup: true scheduling: backup_sets: - time: weekdays: - MONDAY repeat_at: - minute: "5" type: WEEKLY enabled: true max_parallel_backups: "2" rand_max_delay: type: MINUTES count: "30" scheme: ALWAYS_INCREMENTAL weekly_backup_day: MONDAY cbt: ENABLE_AND_USE fast_backup_enabled: true quiesce_snapshotting_enabled: true folder_id: d2q792qpemb4********
For more information about the command, see the CLI reference.
Terraform
For more information about the provider resources, see the documentation on the Terraform
If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.
If you don't have Terraform, install it and configure the Yandex Cloud provider.
To create a backup policy:
-
In the Terraform configuration file, describe the backup policy parameters:
resource "yandex_backup_policy" "my_policy" { archive_name = "[<Machine Name>]-[<Plan ID>]-[<Unique ID>]a" cbt = "USE_IF_ENABLED" compression = "NORMAL" fast_backup_enabled = true format = "AUTO" multi_volume_snapshotting_enabled = true name = "<backup_policy_name>" performance_window_enabled = true preserve_file_security_settings = true quiesce_snapshotting_enabled = true silent_mode_enabled = true splitting_bytes = "9223372036854775807" vss_provider = "NATIVE" reattempts { enabled = true interval = "1m" max_attempts = 10 } retention { after_backup = false rules { max_age = "365d" repeat_period = [] } } scheduling { enabled = false max_parallel_backups = 0 random_max_delay = "30m" scheme = "ALWAYS_INCREMENTAL" weekly_backup_day = "MONDAY" execute_by_time { include_last_day_of_month = true monthdays = [] months = [1,2,3,4,5,6,7,8,9,10,11,12] repeat_at = ["04:10"] repeat_every = "30m" type = "MONTHLY" weekdays = [] } } vm_snapshot_reattempts { enabled = true interval = "1m" max_attempts = 10 } }
Where:
archive_name
: Generated archive names. This is an optional parameter. The parameter variables include:-
Machine Name
: VM name. -
Plan ID
: Plan ID. -
Unique ID
: Unique identifier.Make sure the last character in the generated archive name is not a variable.
-
cbt
: Configuration for tracking backup contents. This is an optional parameter. The possible values include:-
CHANGED_BLOCK_TRACKING_UNSPECIFIED
: Not set. -
USE_IF_ENABLED
: Use if enabled. -
ENABLE_AND_USE
: Enable and use. -
DO_NOT_USE
: Do not use.The default value is
DO_NOT_USE
.
-
compression
: Backup compression ratio. This is an optional parameter. The possible values include:-
NORMAL
: Standard compression ratio. -
HIGH
: High compression ratio. -
MAX
: Maximum compression ratio. -
OFF
: Disabled.The default value is
NORMAL
.
-
fast_backup_enabled
: Fast backup for tracking changes to files. When enabled, file changes are detected by the file size and its timestamp. When disabled, files are checked for changes by comparing their contents to backed up files. It may take either thetrue
orfalse
value.format
: Backup format. This is an optional parameter. The possible values include:VERSION_11
: Deprecated format, not recommended.VERSION_12
: Recommended format for fast backup and recovery.AUTO
: Automatic format selection. The default value isVERSION_12
. The exception is creating incremental backups for images created in other versions.
multi_volume_snapshotting_enabled
: Creating snapshots of multiple volumes at the same time. This is an optional parameter. It may take either thetrue
orfalse
value.name
: Backup policy name.performance_window_enabled
: Time windows to limit backup performance. This is an optional parameter. It may take either thetrue
orfalse
value. The default value isfalse
.preserve_file_security_settings
: Retain security file settings. This is an optional parameter. It may take either thetrue
orfalse
value. The default value istrue
. We recommend using thetrue
value.quiesce_snapshotting_enabled
: Using thequiescing
mode when creating snapshots. This is an optional parameter. It may take either thetrue
orfalse
value. The default value isfalse
.silent_mode_enabled
: Silent mode that assumes minimum interaction with users. This is an optional parameter. It may take either thetrue
orfalse
value. The default value istrue
.splitting_bytes
: Parameter that defines the size for splitting backups. This is an optional parameter. The default value is9223372036854775807
.vss_provider
: VSS settings. This is an optional parameter. The value can beNATIVE
orTARGET_SYSTEM_DEFINED
. The default value isNATIVE
.reattempts
: Parameters of backup reattempts in the event of failure:enabled
: Retry creating a backup if noncritical errors occur, e.g., when failing to connect to a target disk. This is an optional parameter. It may take either thetrue
orfalse
value. The default value istrue
.interval
: Reattempt interval. This is an optional parameter. The default value is5m
.max_attempts
: Maximum number of reattempts. If reached, the operation is considered failed. This is an optional parameter. The default value is5
.
retention
: Backup retention parameters:after_backup
: Apply backup retention rules after the backup is completed. It may take either thetrue
orfalse
value.rules
: Backup retention rules:-
max_age
: Delete backups whose age exceedsmax_age
. -
max_count
: Delete backups if their number exceedsmax_count
. -
repeat_period
: Period for applying the rules.The
max_age
andmax_count
attributes are mutually exclusive. Using one of them disables the use of the other.
-
scheduling
: Backup schedule parameters:enabled
: Enable backup scheduling. This is an optional parameter. It may take either thetrue
orfalse
value. The default value istrue
.max_parallel_backups
: Maximum number of parallel backups. This is an optional parameter. The default value is0
(unlimited).random_max_delay
: Sets a random delay between concurrent jobs. This is an optional parameter. The default value is30m
.scheme
: Backup schedule scheme. This is an optional parameter. The possible values include:-
ALWAYS_INCREMENTAL
: Always incremental. -
ALWAYS_FULL
: Always full. -
WEEKLY_FULL_DAILY_INCREMENTAL
: Weekly: full; daily: incremental. -
WEEKLY_INCREMENTAL
: Weekly: incremental.The default value is
ALWAYS_INCREMENTAL
.
-
weekly_backup_day
: Day of the week for weekly backups. This is an optional parameter. The default value isMONDAY
.execute_by_time
: Settings for backups at a specified time:include_last_day_of_month
: Making backups on the last day of each month. This is an optional parameter. It may take either thetrue
orfalse
value. The default value isfalse
.monthdays
: List of days to apply the schedule on. This is an optional parameter. Used inMONTHLY
format.months
: List of months to apply the schedule in. This is an optional parameter.repeat_at
: List of time periods inHH:MM
(24-hour) format for which the schedule will apply. This is an optional parameter.repeat_every
: Frequency for repeating backups. This is an optional parameter.type
: Schedule type. The possible values areHOURLY
,DAILY
,WEEKLY
, orMONTHLY
.weekdays
: List of days of the week to apply the backup on. Used inWEEKLY
format.
vm_snapshot_reattempts
: Parameters of snapshot creation reattempts in the event of failure:enabled
: Retry creating a VM snapshot if an error occurs. This is an optional parameter. It may take either thetrue
orfalse
value. The default value istrue
.interval
: Interval between reattempts. This is an optional parameter. The default value is5m
.max_attempts
: Maximum number of reattempts. If reached, the operation is considered failed. This is an optional parameter. The default value is5
.
For more information about the
yandex_backup_policy
resource parameters, see the provider documentation . -
Create resources:
-
In the terminal, change to the folder where you edited the configuration file.
-
Make sure the configuration file is correct using the command:
terraform validate
If the configuration is correct, the following message is returned:
Success! The configuration is valid.
-
Run the command:
terraform plan
The terminal will display a list of resources with parameters. No changes are made at this step. If the configuration contains errors, Terraform will point them out.
-
Apply the configuration changes:
terraform apply
-
Confirm the changes: type
yes
in the terminal and press Enter.
Terraform will create all the required resources. You can check the new resources using the management console
or this CLI command:yc backup policy list
-
To create a backup policy, use the create REST API method for the Policy resource or the PolicyService/Create gRPC API call.