Создать снимок диска
Снимок диска — это копия файловой системы диска на определенный момент времени.
Создавать можно снимки сетевых дисков HDD, SSD и нереплицируемых SSD, а также сверхбыстрых сетевых хранилищ с тремя репликами (SSD).
Для нереплицируемых SSD и сверхбыстрых сетевых хранилищ с тремя репликами (SSD) момент времени, когда фиксируется содержимое диска, не детерминирован.
Для снимков с локальных дисков на выделенных хостах используйте сервис Yandex Cloud Backup (поддерживает ОС Ubuntu, CentOS, CentOS Stream и Windows Server).
Подготовка
Снимок диска содержит только те данные, которые были записаны на диск в момент создания снимка. Если диск подключен к работающей виртуальной машине, то кеш приложений и операционной системы не попадет в снимок.
Чтобы обеспечить целостность данных снимка:
-
Остановите все операции записи на диск в приложениях.
-
Запишите кеш операционной системы на диск:
sync
-
Заморозьте файловую систему:
sudo fsfreeze --freeze <точка_монтирования>
Где
--freeze
— параметр для заморозки файловой системы. Вместо<точка_монтирования>
укажите каталог, к которому подключена файловая система. Например:/mnt/vdc2
. -
Создайте снимок по инструкции ниже.
-
Разморозьте файловую систему:
sudo fsfreeze --unfreeze <точка_монтирования>
Где
--unfreeze
— параметр для разморозки файловой системы. Вместо<точка_монтирования>
укажите каталог, к которому подключена файловая система. Например:/mnt/vdc2
.
- Остановите виртуальную машину (см. раздел Остановить).
- Дождитесь, когда статус машины изменится на
STOPPED
.
Создание снимка
Примечание
За создаваемым снимком диска закрепляется поколение виртуализированного оборудования, на котором из этого снимка может быть развернута виртуальная машина. Закрепить за снимком поколение, отличное от поколения, которое закреплено за исходным диском, можно с помощью Yandex Cloud CLI, Terraform и API.
Чтобы создать снимок диска:
-
В консоли управления
выберите каталог, в котором находится диск. -
Выберите сервис Compute Cloud.
-
На панели слева выберите
Диски. -
В строке с диском нажмите значок
и выберите Создать снимок. -
Введите имя снимка. Требования к имени:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Если требуется, укажите произвольное текстовое описание снимка.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
-
Посмотрите описание команд CLI для создания снимков:
yc compute snapshot create --help
-
Выберите диск, снимок которого необходимо создать. Получить список дисков в каталоге по умолчанию можно с помощью команды:
yc compute disk list
Результат:
+----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+ | ID | NAME | SIZE | ZONE | STATUS | INSTANCE IDS | PLACEMENT GROUP | DESCRIPTION | +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+ | a7lqgbt0bb9s******** | first-disk | 20401094656 | ru-central1-a | READY | a7lcvu28njbh******** | | | | a7lv5j5hm1p1******** | second-disk | 21474836480 | ru-central1-a | READY | | | | +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
-
Создайте снимок в каталоге по умолчанию:
yc compute snapshot create \ --name first-snapshot \ --description "my first snapshot via CLI" \ --disk-id fhm4aq4hvq5g******** \ --hardware-generation-id <поколение_оборудования> \ --hardware-features pci_topology=<топология_PCI>
Где:
-
--name
— имя создаваемого снимка. Требования к имени:- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
--description
— описание создаваемого снимка. Необязательный параметр. -
--disk-id
— идентификатор диска, для которого вы создаете снимок. Вместо идентификатора вы можете передать в команду имя диска в параметре--disk-name
. -
--hardware-generation-id
— поколение виртуализированного оборудования, закрепляемое за снимком. Необязательный параметр. Возможные значения:legacy
— поколениеGen 1
. При выборе этого поколения вы также можете задать топологию PCI в параметре--hardware-features
.
Если параметр не задан, за снимком будет закреплено то же поколение оборудования, которое закреплено за диском-источником.
-
--hardware-features
— дополнительные настройки для поколенияGen 1
. Необязательный параметр. Возможные значения:pci_topology=v1
— выбор топологииPCI_TOPOLOGY_V1
.pci_topology=v2
— выбор топологииPCI_TOPOLOGY_V2
.
Если за диском-источником закреплено поколение
Gen 1
, по умолчанию у создаваемого снимка для параметра--hardware-features
будет задано то же значение, что и у диска-источника.
Результат:
done (19s) id: fd81qi89ldop******** folder_id: b1gt6g8ht345******** created_at: "2025-06-23T09:56:04Z" name: first-snapshot description: my first snapshot via CLI storage_size: "3116367872" disk_size: "21474836480" product_ids: - f2evcrm9ti79******** status: READY source_disk_id: epd8lmcncidv******** hardware_generation: legacy_features: pci_topology: PCI_TOPOLOGY_V2
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурса
yandex_compute_snapshot
.Пример структуры конфигурационного файла:
resource "yandex_compute_snapshot" "snapshot-1" { name = "disk-snapshot" source_disk_id = "<идентификатор_диска>" hardware_generation { legacy_features { pci_topology = "<топология_PCI>" } } }
Где:
-
name
— имя создаваемого снимка. Требования к имени:- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
source_disk_id
— идентификатор диска, для которого вы создаете снимок. -
hardware_generation
— блок настроек с описанием поколения виртуализированного оборудования, закрепляемого за снимком. Необязательный параметр. Включает в себя следующие блоки настроек:-
legacy_features
— блок настроек с описанием параметров при выборе поколенияGen 1
:-
pci_topology
— выбор топологии PCI. Возможные значения:PCI_TOPOLOGY_V1
— выбор топологииPCI_TOPOLOGY_V1
.PCI_TOPOLOGY_V2
— выбор топологииPCI_TOPOLOGY_V2
.
Использование блока
legacy_features
делает невозможным использование блокаgeneration2_features
. -
Примечание
Если блок
hardware_generation
не задан, за снимком будет закреплено то же поколение оборудования, которое закреплено за диском-источником. -
Более подробную информацию о ресурсе
yandex_compute_snapshot
см. в документации провайдера . -
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
- Получите список дисков с помощью метода REST API list для ресурса Disk или вызова gRPC API DiskService/List.
- Создайте снимок с помощью метода REST API create для ресурса Snapshot или вызова gRPC API SnapshotService/Create. В запросе укажите идентификатор диска-источника, а также при необходимости задайте нужное поколение виртуализированного оборудования в объекте
hardwareGeneration
(hardware_generation
при использовании gRPC API).
Создание снимка HDD или SSD выполняется асинхронно. Снимок создается сразу после команды создания и получает статус Creating
. С этого момента можно возобновить запись на диск, операции с диском не повлияют на данные в снимке.
Когда создание снимка завершено, статус снимка изменится на Ready
. С этого момента снимок можно использовать для создания образов, наполнения дисков и т. п.
Внимание
В Linux при создании снимка или образа сохраняются UUID и PARTUUID разделов диска. Эти данные Linux использует при монтировании разделов, в том числе корневого раздела, поэтому они должны быть уникальными. Например, если склонировать загрузочный диск и подключить его к той же виртуальной машине, на виртуальной машине появятся 2 раздела с одинаковыми UUID. В результате после запуска ВМ, в качестве корневого раздела может быть использован не тот диск, который вы указали загрузочным.
Чтобы этого не произошло, подключите диск к ВМ и поменяйте все дублирующиеся UUID. Подробнее в инструкции про подключение диска.