Kenny00
@Kenny00

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

Как лучше всего установить ОС Debian / Ubuntu , то что бы в дальнейшем не было проблемы с расширением коневого раздела?

Суть такова, что есть определённый софт который может резко увеличиться в объеме и заранее прикинуть размер диска не возможно, да и не нужно думаю.
Виртуальная машина, не особо важно под каким будет гипервизором, формат диска VMware image format.
Resize image без проблем можно сделать одной командой.

А вот как его уже расширить под виртуальной машиной без проблем, без потери данных, и главное без остановки ВМ.

Как изначально разметить диск, или как изначально использовать может быть lvm?
  • Вопрос задан
  • 588 просмотров
Решения вопроса 4
Melkij
@Melkij
PostgreSQL DBA
Раздел данных, который с высокой вероятностью нужно расширять делаете в конце блочного устройства. Так, чтобы за ним ничего не было. И неважно, рутовый это раздел или ещё какой.
Когда понадобится расширить:
  1. расширяете блочное устройство
  2. через parted командой resizepart увеличиваете раздел
  3. затем расширяете файловую систему: resize2fs для ext4, xfs_growfs для xfs. Если у вас какая-то вдруг другая экзотика - предварительно уточните команду.

Всё.

Можно добавить lvm, вся разница что между 2 и 3 пунктом добавятся pvresize и lvresize. Либо, по желанию, можно будет создавать дополнительные разделы (и/или диски) и их добавлять в lvm.
lvm поможет, если вы решили сделать отдельный раздел под ОС и отдельный под данные, а потом поняли, что раздел ОС сделали слишком маленьким.

PS: "Виртуальная машина, не особо важно под каким будет гипервизором" - не все гипервизоры могут корректно оповестить гостевую систему об изменении блочного устройства, для некоторых нужен рестарт виртуалки.
Ответ написан
gbg
@gbg Куратор тега Linux
Любые ответы на любые вопросы
Сразу так себе решение, думайте над тем, чтобы хранить весь хлам в каком-то внешнем хранилище, s3 или в какой-то БД, или на худой конец, сетевой фс.

А то потом вы захотите сделать два инстанса вашего гениального творения, и будет большой УПС.
Ответ написан
@rPman
Про то что все современные файловые системы в linux умеют расширяться вам уже написали, т.е. меняешь размер раздела а после заставляешь файловую систему занять все пространство раздела... к сожалению делать это на лету почти всегда невозможно, т.е. требует размонтировать раздел (или хотя бы перевести его в readonly режим)

Настоятельно не рекомендую держать данные приложения и корневую файловую систему ОС на одном разделе, это нормальная практика, отделять - работающую систему отдельно от основного приложения, иначе это создаст ряд ограничений, хотя бы по изменению размера в будущем - сравни перезапустить всю ОС (да еще и другую ее копию) или просто остановить приложение на время обслуживания.

Еще момент, некоторые файловые системы, например btrfs/zfs, умеют на лету! добавлять (и удалять) диски к пулу, и не обязательно это должен быть raid, возможно простое объединение пространств дисков, даже без чередования. Собственно btrfs я бы и рекомендовал использовать, даже не смотря на его нестабильный статус (так как все его проблемы касаются вещей, которые можно не использовать, например raid56)

p.s. Во всех современных ос есть символические линки, позволяющие обойти ограничения неудачно спроектированных приложений
т.е. в момент, когда тебе требуется больше места, ты подключаешь новый диск или новый раздел, раскидываешь файлы с помощью символических линков.

Да, существуют странные приложения, которые проверяют что файлы не являются линками (либо делают обновление файла его перезаписью, что удаляет симлинк и создает новый файл на текущем диске) или же разработчики по глупости вообще решают все хранить в одном большом контейнере, вынуждая администраторов ломать голову, как этот бред поддерживать... всякое бывает, симлинки не всемогущий инструмент.
Ответ написан
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
по умолчанию системы сейчас ставятся на lvm.
да и вообще - не вижу проблемы в увеличении раздела. Максимум что может быть - перезагрузка.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы