Изменение дополнительных дисков в шаблоне виртуальной машины
Примечание
Изменение параметров дисков приводит к пересозданию ВМ.
Обновление следующих параметров происходит без пересоздания диска:
description
— изменение описания диска.size
— увеличение размера диска.preserve_after_instance_delete
— установка или снятие флага.
При изменении любого другого параметра объекта disk_spec
, а также при уменьшении размера диска происходит пересоздание диска.
Алгоритм изменения дополнительных дисков
Решение об изменении параметров или о пересоздании дисков принимается по одному из алгоритмов сопоставления:
- по именам дисков — сопоставляются значения параметра
name
(основной способ); - по параметрам дисков — сопоставляются значения остальных параметров (устаревший способ).
Сопоставление по именам
При таком алгоритме диски в текущей и новой YAML-спецификациях сопоставляются по именам. Диски, имен которых нет в новой спецификации, удаляются. Диски, имен которых нет в текущей спецификации, создаются. Вы можете однозначно идентифицировать диск, который хотите изменить, добавить или удалить.
Чтобы использовать алгоритм сопоставления дисков по именам, задайте каждому диску в YAML-спецификации уникальное значение параметра name
.
Примечание
В одной спецификации имена должны быть либо присвоены всем дополнительным дискам, либо не присвоены ни одному.
При переходе с устаревшего алгоритма на алгоритм сопоставления по именам в первый раз диски сопоставляются по параметрам, все последующие разы — по именам.
Пример сопоставления дополнительных дисков по именам
В текущей спецификации описаны два дополнительных диска — на 20 и 50 ГБ:
instance_template:
...
secondary_disk_specs:
- name: disk-2
mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 21474836480
- name: disk-3
mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 53687091200
...
Обновленная спецификация содержит два дополнительных диска — на 60 и 10 ГБ:
instance_template:
...
secondary_disk_specs:
- name: disk-2
mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 64424509440
- name: disk-4
mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 10737418240
...
При обновлении будут выполнены следующие действия:
- Диск с именем
disk-2
текущей спецификации будет сопоставлен с дискомdisk-2
обновленной спецификации, так как их имена совпадают. Размер диска будет увеличен до 60 ГБ без пересоздания, данные на диске сохранятся. - Диск с именем
disk-3
текущей спецификации будет удален, так как в обновленной спецификации нет диска с таким именем. - Будет создан и добавлен диск с именем
disk-4
из обновленной спецификации, потому что в текущей спецификации нет диска с таким именем.
Сопоставление по параметрам
Примечание
Алгоритм сопоставления дополнительных дисков по параметрам не обеспечивает однозначной идентификации дисков в ВМ и является устаревшим. Воспользуйтесь сопоставлением дисков по именам.
Если в спецификации не используются имена дисков, сопоставление и изменение происходит по следующему алгоритму:
-
Для каждого диска в текущей спецификации группа ищет в новой спецификации:
- диск с аналогичными параметрами;
- диск с параметрами, которые можно получить без пересоздания.
Поиск в обеих спецификациях выполняется последовательно, начиная с первого диска.
-
Если такой диск находится, диски считаются успешно сопоставленными. При необходимости выполняется изменение параметров диска в соответствии с новой спецификацией. Далее эти диски не участвуют в сопоставлении.
-
Если диску текущей спецификации не удается сопоставить диск новой, то такой диск удаляется.
-
Если в новой спецификации остался диск, которому не был сопоставлен ни один диск из старой спецификации, то такой диск создается.
Пример сопоставления дополнительных дисков по параметрам
В текущей спецификации описаны два дополнительных диска — на 20 и 50 ГБ:
instance_template:
...
secondary_disk_specs:
- mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 21474836480
- mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 53687091200
...
Обновленная спецификация содержит два дополнительных диска — на 60 и 10 ГБ:
instance_template:
...
secondary_disk_specs:
- mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 64424509440
- mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 10737418240
...
Все параметры дисков, кроме размеров, в обеих спецификациях совпадают.
При обновлении будут выполнены следующие действия:
- Первый диск текущей спецификации (20 ГБ) будет сопоставлен с первым диском обновленной (60 ГБ). Его размер будет увеличен до 60 ГБ без пересоздания, данные на диске сохранятся.
- Второй диск текущей спецификации (50 ГБ) не будет сопоставлен ни с одним диском новой и будет удален.
- Второй диск новой спецификации (10 ГБ) будет создан и добавлен.