При покупке капли, поскольку DigitalOcean называет свои облачные виртуальные машины, они всегда настроены с одним большим разделом ext4.
У меня есть приложение, которому нужен раздел LVM, поэтому мне нужен творческий способ уменьшить корневой раздел, например, до 25%, а остальное используйте для LVM. Я могу сделать это на свежем экземпляре, где я могу перезагрузить все, что захочу.
По соображениям производительности я действительно хотел бы избежать устройства цикла, где я создаю раздел LVM в файле поверх ext4.
Вопрос
Может ли кто-нибудь придумать творческий способ сжать живую файловую систему ext4, где перезагрузка возможна?
В частности, для Digital Ocean вы жестяная банка загрузите каплю в аварийный образ.
Для старшая дистрибутивов, которые загружаются с внешнего ядра, вы можете выбрать загрузку в аварийный образ самостоятельно.
Для новее Для дистрибутивов, которые загружаются из ядра внутри капли, вы можете подать заявку в службу поддержки, чтобы смонтировать аварийный образ как ISO. После того, как вы закончите свои операции, обновите заявку в службу поддержки, чтобы удалить аварийный образ, и перезагрузитесь.
Вы можете сжать онлайн-корневой раздел без перезагрузок: проконсультируйтесь с этим ответом. Этот ответ очень хорошо написан, и его легко понять. Таким образом, это будет работать с любым типом выделенного решения или VPS.
TL; DR; это решение подразумевает pivot_root
к tmpfs
так что вы можете безопасно размонтировать корневой раздел в реальном времени и поиграть с ним. После этого вы pivot_root
обратно в свой новый корневой раздел.
Это позволяет практически любые манипуляции с корневой файловой системой (переместить ее, изменить файловую систему, изменить ее физическое устройство ...).
Перезагрузка не требуется в процессе, и это позволяет обойти ограничение, связанное с невозможностью усадки крепления ext4
раздел.
Я лично использовал это, и он также очень хорошо работает в системе debian с очень небольшими исправлениями. Я очень удивлен, что не вижу, что это подробное решение немного больше связано со многими вопросами на веб-сайтах stackexchange, которые посвящены той же проблеме.
Взгляни на этот ответ, и различные варианты поиска, но краткий ответ - то, о чем вы говорите, невозможно в действующей файловой системе, если невозможно размонтировать раздел, размер которого вы хотите изменить. Поскольку это не кажется возможным, в этом случае перезагрузка с использованием аварийного образа, вероятно, является лучшим вариантом.
Если перезагрузка в резервный образ невозможна, но перезагрузка в новый образ возможна, и у вас есть хорошая резервная копия образа, который вы хотите, возможно, новое решение. Кажется, можно было бы использовать Clonezilla с опциями клонирования в меньшие разделы, чтобы клонировать существующую систему в новый экземпляр, который занимает меньше места. Это, конечно, предполагает, что имеется достаточно свободного места для сжатия файловой системы ext4 на меньший раздел, но вы, вероятно, не задавали бы вопрос, если бы не было достаточно свободного места для сжатия раздела.