Назад | Перейти на главную страницу

Преобразовать программный том raid из ext3 в ext4 (или ext2)?

У меня есть созданный mdadm том программного обеспечения на моей машине с Ubuntu Linux 11. Это НЕ загрузочный диск. Это программная конфигурация raid 5, состоящая из 3-х больших sata-накопителей.

Когда я создавал его изначально, я сделал его ext3. С тех пор я узнал, что мне может быть полезно преобразовать его в ext4 (или ext2).

Во-первых, я хотел бы подтвердить, что это имеет смысл, что преобразование, например, в ext4 дало бы мне лучшую производительность (поиск вокруг, кажется, является общим преимуществом ext4 над ext3).

Далее, есть ли причина рассматривать переход на ext2 - или это действительно плохая идея?

Наконец, КАК мне это сделать?

Из того, что я собираю (из этот site, например), мне нужно размонтировать том, а затем выполнить несколько команд для преобразования тома. Мой fstab в настоящее время установлен на «авто» для типа файловой системы.

Различия между различными файловыми системами ext [0-9] больше касаются функций, а не структуры. Преимущество в том, что они достаточно совместимы друг с другом. Например, вы можете смонтировать раздел ext3 так как ext2, и все должно работать нормально. Точно так же вы можете смонтировать раздел ext3 как ext4. Всякий раз, когда вы выполняете любую из этих операций, у вас не будет доступа к функциям конкретной версии. Например, если вы смонтируете раздел ext3 как ext2, вы потеряете доступ к журналу. Точно так же монтирование раздела ext3 как ext4 не позволит вам использовать новые функции, такие как уменьшение времени и экстентов fsck, а не растровые изображения.

Чтобы выполнить преобразование, вам необходимо на высоком уровне

  1. размонтировать раздел
  2. запустить преобразование
  3. смонтировать раздел

Таким образом, если это не ваш основной диск, вы можете делать это без отключения системы, вам просто нужно ожидать, что целевой раздел будет отключен в течение некоторого времени. И, как всегда, прежде чем возиться с файловой системой, вы должны сделать полную резервную копию данных на случай, если у вас возникнут какие-то потери.

Для этого вам следует выполнить следующие точные команды. Для моей цели я предполагаю, что ваше целевое устройство /dev/md0

umount /dev/md0
fsck.ext3 -pf /dev/md0
tune2fs -O extents,uninit_bg,dir_index /dev/md0
fsck.ext4 -yfD /dev/md0

Первый fsck - убедиться, что ваша файловая система находится в чистом и нормальном состоянии, прежде чем мы выполним преобразование. В противном случае процесс может потерпеть неудачу или, что еще хуже, может быть успешным, но при этом останутся несоответствия. В tune2fs Команда предназначена для возиться с настройками файловой системы. Изначально он был создан для ext2, отсюда и часть имени «2fs», однако он используется для изменения всех версий файловой системы ext. В этом случае мы включаем дополнительные функции, которые были добавлены между ext3 и ext4. Последний fsck выполняет две задачи. Во-первых, он гарантирует, что произойдет вся необходимая очистка от преобразования, а во-вторых, он создаст или перестроит индекс каталога.

После всего этого вам нужно будет отредактировать /etc/fstab чтобы убедиться, что он установлен как ext4, хотя на самом деле auto вариант должен правильно идентифицировать его как таковой.

Поздравляем, пока ничего не загорелось / не взорвалось / не было совершено массового геноцида / было осуждено за убийство своей жены во время процесса, вы должны быть счастливым владельцем раздела ext4.

Да, преобразование в ext4 должно повысить производительность по таким причинам, как задержка выделения. ext4 также лучше предотвращает фрагментацию файлов, что также способствует повышению производительности. Более того, идет серьезный разговор об обработке файловых систем ext3 модулем ext4, поэтому очень вероятно, что вы собираетесь использовать тот же код Pretty Soon Now (TM), даже если вы останетесь на ext3.

Переход на ext2 - плохая идея. Вы бы перешли на старый код без всех улучшений, которые ваши трудолюбивые разработчики файловой системы внесли в ext3 и ext4 за десять лет или около того (ext3 была представлена ​​осенью 2001 года).

Как вы конвертируете? Есть 2 подхода:

  1. Преобразование на месте. Вы нашли правильную процедуру, и Скотт Пак также дал ее в своем ответе.
  2. Сделайте резервную копию, создайте ext4 с нуля и восстановите.

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

Backup-mkfs-restore предоставит вам все функции для всех файлов, а mkfs.ext4 обеспечит хорошее согласование данных с вашим базовым программным RAID. Если вы правильно сделали выравнивание при создании файловой системы ext3, то никакой выгоды не будет. Если вы допустили ошибку, потенциально вы можете много выиграть.

Какой метод выбрать? Вам решать. Если ваша файловая система сейчас работает нормально, и вы просто хотите запустить текущую файловую систему, вы можете выполнить преобразование на месте. Если вы испытываете проблемы с производительностью и надеетесь, что изменение файловой системы поможет вам в этом, я бы выбрал метод 2.

ext3 в основном ext2 + журнал. Ведение журнала добавляет определенные накладные расходы к обычной работе (в зависимости от установленной опции ведения журнала), но повышает надежность файловой системы и сокращает время fsck после сбоя системы или отключения электроэнергии. Для быстро меняющихся переходных данных и / или редко меняющихся данных (или для систем с резервным аккумулятором и / или готовностью дождаться завершения fsck после возобновления подачи питания) разница в скорости может быть значительным.

Изменение ext3 на ext2 - это просто вопрос изменения типа файловой системы на ext2 и перезагрузки. У вас будут предупреждения о монтировании файловых систем ext3 как ext2, но вы можете убрать их, отключив журнал и принудительно запустив fsck: tune2fs -O ^has_journal /dev/whatever

ext4 в основном ext3 + много новых функций. Главными среди них являются экстенты которые заменяют старые «блочные карты» на непрерывное распределение памяти, уменьшая фрагментацию и увеличивая производительность линейного чтения, особенно для больших файлов. Кроме того, по умолчанию включены такие параметры ext3, как индексы каталогов.

Конвертация в ext4 можно сделать на лету убедившись, что ваша система должным образом поддерживает ext4, затем используя текущую версию tune2fs для включения различных опций ext4, изменив тип файловой системы на ext4 и перезагрузившись, однако этот метод преобразования не будет преобразовывать ни один из существующих файлов для использования экстентов. Для полного использования ext4 было бы лучше всего сделать резервную копию, переформатировать и восстановить.

В каком бы направлении вы ни пошли, ориентиры поддержите вашу идею, что вы можете сделать лучше, чем ext3.