Project

General

Profile

Уменьшение тома виртуальной машины

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 гб который брали в запас.