Уменьшение тома виртуальной машины¶
1. С помощью средств виртуальной машины уменьшаем файловую систему, затем раздел, чтобы у нас образовалось неразмеченное пространство в конце виртуального диска.
Размер этого пространства должен быть на 1 гб больше, чем тот объем, на который мы хотим уменьшить.
2. Заходим на мастер-ноду кластера. Останавливаем интересующий нас инстанс:
gnt-instance shutdown ИНСТАНС
Затем смотрим информацию по нему:
gnt-instance info ИНСТАНС
Получаем примерно следующий вывод:
Disks: - disk/0: plain, size 31.0G access mode: rw logical_id: xenvg/bbb00d71-99e9-458c-ba8c-774ba6a14e0b.disk0 on primary: /dev/xenvg/bbb00d71-99e9-458c-ba8c-774ba6a14e0b.disk0 (253:6) name: None UUID: c4373d6a-7cce-420f-b109-04c4d5388a76
нам нужно название диска, который хотим уменьшить - /dev/xenvg/bbb00d71-99e9-458c-ba8c-774ba6a14e0b.disk0
В случае, если целевая виртуальная машина расположена на дрбд, то здесь два варианта:
1) перевести временно виртуальную машину в plain:
gnt-instance modify -t plain ИНСТАНС
2) Уменьшить размер дрбд, это трудоемкий процесс, подробности тут:
https://www.drbd.org/en/doc/users-guide-83/s-resizing
3. Останавливаем ганети-вотчер, затем ганети
service ganeti-watcher stop service ganeti stop
4. С помощью команды lvresize уменьшаем размер тома до нужного - размер тома - X.
lvresize -L 31G /dev/xenvg/bbb00d71-99e9-458c-ba8c-774ba6a14e0b.disk0
5. Делаем резервную копию конфига
cp /var/lib/ganeti/config.data ~
6. Открываем в текстовом редакторе /var/lib/ganeti/config.data
vim /var/lib/ganeti/config.data
находим часть конфига которая отвечает за настройки диска - будет выглядеть примерно так:
xenvg", "bbb00d71-99e9-458c-ba8c-774ba6a14e0b.disk0"], "uuid": "c4373d6a-7cce-420f-b109-04c4d5388a76", "dev_type": "plain", "params": {}, "mode": "rw", "iv_name": "disk/0", "size": 40490}
меняем параметр size на нужный размер в мб
xenvg", "bbb00d71-99e9-458c-ba8c-774ba6a14e0b.disk0"], "uuid": "c4373d6a-7cce-420f-b109-04c4d5388a76", "dev_type": "plain", "params": {}, "mode": "rw", "iv_name": "disk/0", "size": 31744}
Сохраняем и закрываем конфиг.
7. Запускаем ganeti и ganeti-watcher
service ganeti start service ganeti-watcher start
8. Если мы переделывали drbd машину в plain, то проводим обратную процедуру:
gnt-instance modify -t drbd -n ВТОРОЙ_УЗЕЛ ИНСТАНС
9. Запускаем целевую виртуальную машину
gnt-instance startup ИНСТАНС
10. Подключаемся к машине и с помощью средств в виртуальной машине расширяем на 1 гб который брали в запас.