@sazhyk

Как увеличить размер диска в виртуальной машине без перезагрузки?

Задача такая. Есть хостовая машина на Debian. В ней настроена виртуализация QEMU-KVM. Есть виртуальная машина также на Debian. В качестве диска для виртуальной машины используется блочное устройство LVM. Понадобилось увеличить размер диска для виртуальной машины. Естественно из хостовой делаю
lvresize -L+8G <lv_name> <vg_name>
Всё отлично. Устройство увеличилось.
Внутри в виртуалке тоже использую LVM. Если виртальную машину останавливать (именно shutdown -h 0, а не ребут), то потом нет проблем с увеличением разделов в виртуальной машине.
Собственно вопрос, как увеличить размер разделов внутри вирталки не останавливая её? Если это конечно возможно.
  • Вопрос задан
  • 1772 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Tabletko
Системный администратор
Так же. Переопрашиваем дисковые устройства, увеличиваем том на котором находится лвм и далее расширяем лвм и файловую систему
Ответ написан
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
echo 1 > /sys/bus/scsi/devices/2\:0\:0\:0/rescan

Где 2:0:0:0 - scsi id устройства. После чего ведро должно отрепортить, что размер диска изменился:

May 22 01:49:58 ххх kernel: sda: detected capacity change from 107374182400 to 128849018880

И после этого уже, когда ведро поняло, что диск другого размеру, идет partprobe. Правда, если на этом диске система (/boot, /usr ...), partprobe склеит боты и только перезагрузка.
Ответ написан
@sazhyk Автор вопроса
Сам тоже отпишу. Погуглив попристальнее, выяснил, что такие финты не прокатят с корневой файловой системой, об этом уже написал CityCat4 . Но наткнулся на вот такую старенькую статейку. Resize a live root FS - a HOWTO. Ей без малого 10 лет, но думаю актуальности она не потеряла. Там используется
pivot_root - change the root file system
pivot_root перемещает корневую систему текущего процесса в каталог put_old и устанавливает каталог new_root новой корневой файловой системы текущего процесса.
Получается довольно интересный способ. Мы не можем заставить ядро перекешировать таблицу разделов, пока не перемонтируем её, но мы можем сначала скопировать всю операционку! в оперативную память, затем перемонтировать корень и делать всё что надо.
К сожалению, я пока не воспроизвел это на своей виртуалке (у меня на проблемной машине всего один гиг памяти), но обязательно попробую и отпишусь.
Спасибо всем, кто откликнулся.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы