Я установил веб-сервер некоторое время назад и сделал ошибку. У меня есть следующее:

/dev/md0 swap  (made from sda1 and sdb1)
/dev/md1 /boot (made from sda2 and sdb2)
/dev/md2 /     (made from sda3 and sdb3)
/dev/md3 /home (made from sda5 and sdb5)

(sda4 и sdb4 - расширенные разделы)

Я набрал ошибку при настройке RAID (я использовал скрипт установщика), и в результате я получил следующие размеры:

swap   10GB
/boot  500MB
/      50GB
/home  The Rest (About    1,8TB)

Все работало нормально ... пока я не загрузил около 80 ГБ файлов в /var /www, и передача упала на полпути. Все сошло с ума. Через некоторое время я узнал, что я просто заполнил раздел /, который разбил сервер MySQL, и сразу понял, что делать / настолько маленьким было глупо (или, по крайней мере, я должен был поместить /var /www в другой раздел). Что ж, сервер используется уже довольно давно, и я действительно не заинтересован в том, чтобы все заново настроить. Я на всякий случай сделал резервные копии, но, как вы все знаете, настройка сервера - это работа, а настройка его в известное состояние при использовании резервных копий - еще большая работа. поэтому я хотел бы решить проблему.

Теперь я хотел бы сделать следующее:

  • уменьшить /home раздел до 1 ТБ
  • добавить новый раздел в свободное место
  • переместить /var /www
  • смонтировать новый раздел в этом месте

Итак, мой план был следующий:

  1. размонтировать / домой
  2. сделать e2fsck на / dev / md3
  3. resize2fs / dev / md3 до размера около 990 ГБ, чтобы иметь 10 ГБ в качестве запаса безопасности
  4. Изменение размера mdadm / dev / md3 до 1 ТБ
  5. resize2fs без указания размера, чтобы увеличить его до максимального значения, доступного на новом md

(пока все хорошо, все до этого момента работало)

  1. добавить новые разделы sda/b6 в свободное место
  2. сделать их налет
  3. смонтировать его в /mnt
  4. скопировать поверх /var /www
  5. diff /var /www и /mnt просто чтобы убедиться
  6. rm -rf * in /var /www
  7. Смонтируйте /dev /md4 в /var /www и добавьте соответствующую запись в fstab, чтобы сделать ее постоянной.

Я сейчас застрял на нет. 6: Рейд сокращен, /dev /md3 имеет размер около 1 ТБ, все отлично, но разделы /dev /sda5 и /dev /sdb5 по-прежнему имеют старый размер. Что я пропустил? Разве разделы не уменьшились с MD? Как мне уменьшить их, не нарушая рейд?

2 ответа2

1

Сокращение RAID не сокращает разделы - вы должны сделать это вручную.

Это не на 100% тривиально, так как ваш рейд MD может содержать суперблок RAID в начале ИЛИ в конце.

Если суперблок RAID находится в начале (версия 1 и выше), он должен быть легким: fdisk или инструмент по вашему выбору и удалить (да: я имею в виду удаление) sda5 после того, как отметили его начальный блок, а затем воссоздать его с тем же стартовым блоком и достаточным пространством. Затем вы можете создать sda6 в оставшееся пространство. Затем я рекомендую перезагрузиться, чтобы убедиться, что все работает, как запланировано, прежде чем повторять процесс с помощью sdb .

Если суперблок RAID находится в конце (Версия 0.9), все становится очень грязно - я рекомендую использовать mdadm --detail , затем mdadm --stop и, наконец, mdadm --create ... --metadata=1.0 чтобы переместить его в начало устройства, а затем действуйте, как указано выше.

РЕДАКТИРОВАТЬ

Я не указал (как я ошибочно предполагал, что это ясно), что вам нужно mdadm --stop ... first: При выходе fdisk указывает ядру перечитать таблицу разделов, которая отмечает половину рейда. как не в курсе.

1

К сожалению, это сложнее, чем кажется. Блочные устройства MD используют разделы на нижележащих дисках - и эти диски должны быть правильного размера - и смежные блоки пространства.

ПРИМЕЧАНИЕ. Операции с дисками такого рода опасны. Сделайте резервную копию в первую очередь.

Поскольку ваш домашний каталог идет после вашего каталога www, его уменьшение освободит место в конце диска - но вам нужно место в начале диска. Возможно, вы сможете использовать gparted для перемещения /sda3, sda5, sdb3 и sdb5 в конец диска, но мне не очень повезло с этим инструментом.

Я бы сделал это (если не начинать с нуля по причинам, указанным ниже): временно переместить /home на /www (или на внешнее хранилище, если оно уже слишком большое), используя fdisk, затем удалить sda3,5 и sdb3,5 удалите sda2 и sdb2 и воссоздайте с тем же начальным блоком, но потом с последним завершающим блоком, убедившись, что вы установили тип раздела (fd для RAID), затем заново создайте sda3,5 и sdb3,5 (или просто sdb3 - если вы уверены, что выиграли) нужно больше 4 разделов) с оставшимся пространством.

После этого перезагрузите и разверните RAID, затем заново создайте md3, /home и скопируйте данные обратно. Вам также нужно будет изменить fstab.

Тем не менее, я бы серьезно подумал о том, чтобы начать снова, используя только 2 раздела RAID - маленький для загрузки и большой для всего остального. Затем я бы использовал LVM поверх большого раздела RAID, чтобы разделить его на блоки типа /www, /home - потому что использование LVM обеспечивает большую гибкость, включая возможность изменять размеры разделов независимо от базовой геометрии, добавлять диски и делать снимки ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .