Уже созданный диск можно увеличить или перенести в другое хранилище, не удаляя его и не пересоздавая машину.
Изменение размера диска
Диск можно увеличить, даже если он подключён к работающей виртуальной машине (ВМ). Уменьшить диск нельзя.
- В командной строке
- В веб-интерфейсе
-
Посмотрите текущий размер диска:
d8 k get vd linux-vm-rootПример вывода:
NAME PHASE CAPACITY VIRTUALMACHINE AGE linux-vm-root Ready 10Gi linux-vm 10m -
Задайте новый размер в параметре
.spec.persistentVolumeClaim.size:d8 k patch vd linux-vm-root --type merge -p '{"spec":{"persistentVolumeClaim":{"size":"11Gi"}}}' # Того же результата можно добиться, отредактировав ресурс. d8 k edit vd linux-vm-root -
Убедитесь, что размер изменился:
d8 k get vd linux-vm-rootПример вывода:
NAME PHASE CAPACITY VIRTUALMACHINE AGE linux-vm-root Ready 11Gi linux-vm 12m
Размер можно изменить со страницы виртуальной машины:
- Перейдите на вкладку «Проекты» и выберите нужный проект.
- Перейдите в раздел «Виртуализация» → «Виртуальные машины».
- Из списка выберите ВМ, к которой подключён диск, и нажмите на её имя.
- На вкладке «Конфигурация» в разделе «Диски» нажмите на символ карандаша рядом с размером диска.
- В открывшемся окне укажите больший размер.
- Нажмите кнопку «Применить».
Либо со страницы самого диска:
- Перейдите в раздел «Виртуализация» → «Диски».
- Выберите нужный диск и нажмите на его имя.
- На вкладке «Конфигурация» в поле «Размер» укажите больший размер.
- Нажмите появившуюся кнопку «Сохранить».
- Проверьте статус диска на его странице.
Миграция дисков на другие хранилища
В коммерческих редакциях Deckhouse Platform (DP) диск можно перенести в другое хранилище, изменив его класс хранения. Перенос работает и для дисков, заданных в спецификации ВМ, и для подключённых отдельным ресурсом.
Виртуальная машина должна находиться в фазе Running, а исходное и целевое хранилища должны быть одного типа. Перенести диск с тома файловой системы на блочное устройство или наоборот нельзя.
Чтобы перенести диск, укажите новый класс хранения в параметре .spec.persistentVolumeClaim.storageClassName:
d8 k patch vd disk --type=merge --patch '{"spec":{"persistentVolumeClaim":{"storageClassName":"new-storage-class-name"}}}'
# Того же результата можно добиться, отредактировав ресурс.
d8 k edit vd disk
После этого запускается живая миграция ВМ, в ходе которой диск переезжает в новое хранилище.
Если перенести нужно несколько дисков одной машины, меняйте класс хранения последовательно, по одному диску за раз:
d8 k patch vd disk1 --type=merge --patch '{"spec":{"persistentVolumeClaim":{"storageClassName":"new-storage-class-name"}}}'
d8 k patch vd disk2 --type=merge --patch '{"spec":{"persistentVolumeClaim":{"storageClassName":"new-storage-class-name"}}}'
Неудачную миграцию DP повторяет с растущей задержкой. Первая попытка идёт сразу, следующие через 5 и 10 секунд, дальше задержка удваивается и с седьмой попытки остаётся равной 300 секундам. Чтобы отменить миграцию, верните в спецификации прежний класс хранения.