Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Разбиение дисков и инсталляция Linux на LVM (часть 1)

Автор: Владимир Холманов, fmfm@symmetron.msk.ru
Опубликовано: 8.10.2002


© 2002, Издательский дом "КОМПЬЮТЕРРА" | http://www.computerra.ru/
Журнал "СОФТЕРРА" | http://www.softerra.ru/
Этот материал Вы всегда сможете найти по его постоянному адресу: http://www.softerra.ru/freeos/20792/

В этой серии из трёх статей рассматриваются некоторые варианты разбиения диска на разделы для инсталляции Linux и новые возможности при использовании LVM. LVM (Logical Volume Manager) сравнительно недавно появившаяся технология, которую часто связывают с «большими серверными инсталляциями». Цель этой публикации будет достигнута, если у читателя сложится мнение, что LVM уместен уже при наличии двух hard дисков.

1. Linux на двух дисковых разделах.

Самый простой вариант подготовки диска для инсталляции Linux - его разбиение на два раздела: swap и корневой раздел. При этом под swap отводится место сообразно наличию оперативной памяти, а под корень «сколько не жалко». Преимущество такого разбиения - минимум административных действий, поскольку отпадает необходимость делать прогноз наполняемости файловой системы. При таком разбиении достаточно учесть следующее.

Для корневого раздела командой fdisk выбрать тип 83 (обычный тип для Linux) и максимально возможный размер. Рекомендуемая файловая система - одна из доступных журналируемых, например ext3, reiserfs или xfs. В случае использования reiserfs обязательна опция монтирования notail в соответствующей записи файла /etc/fstab.

Для swap раздела выбрать тип 82 (Linux swap), а с размером определиться из следующих соображений.

- жёсткий лимит снизу. Ядра, начиная с 2.4.10, не могут монтировать swap, если размер дискового раздела меньше 128 Mb.

- жёсткий лимит сверху. Размер swap не может превышать половины адресного пространства оперативной памяти. Для i86 при размере страницы памяти 4 Kb (значение по умолчанию) размер адресного пространства 4 Gb, а максимальный размер swap, соответственно 2 Gb.

- разумный лимит сверху. По эффективности использования рекомендуется иметь не более чем swap = 2*RAM. С точки зрения эффективности swap если и нужен, но в размере близком к лимиту снизу. Разумное исключение - интенсивное использование tmpfs (/dev/shm).

- ядро умеет балансировать нагрузку для swap между ide каналами (всеми scsi дисками). На многодисковых машинах хорошо иметь swap разделы на каждом master ide (каждом scsi) диске и сделать запись в /etc/fstab о равенстве их приоритетов, например:

/dev/hda5 swap swap defaults,pri=1 0 0
/dev/hdc5 swap swap defaults,pri=1 0 0 

Заметьте, лимит снизу становится равным 128 + 128 = 256 Mb.

2. Linux на трех дисковых разделах.

Вместе с первым опытом использования Linux приходит понимание неудобства инсталляции на два раздела. Следующих шаг в «познании» - вынос за корневую файловую систему раздела /boot. Раздел /boot самая критическая часть для загрузки операционной системы и уже по этой причине достойна отдельной жилплощади. О разделах под swap и root было сказано выше. Можно только добавить, что, когда /boot выносится на отдельный раздел и для корневой файловой системы используется reiserfs, ограничение по notail снимается.

Для /boot раздела следует установить с помощью fdisk обычный тип 83 и учесть следующее:

- размер определяется расчётом: примерно 3 Mb на ядро при наличии достаточно большого запаса для столь важного раздела. Как правило, достаточно 20 - 30 Mb.

- рекомендуемая файловая система - ext2 (журналируемые файловые системы для карликовых разделов неуместны). Но, если вы оригинал и общие рекомендации не для вас - используя reiserfs, не забывайте о notail.

- если пользуетесь загрузчиком GRUB, в целях повышения надежности при обычной работе следует иметь /boot размонтированным (в случае использования LILO это не критично, но кому повредит хорошая привычка). Монтировать раздел следует только при инсталляции нового ядра или новой схемы загрузки и возвращаться в исходное состояние после выполнения работ. Запись в /etc/fstab может быть примерно следующей:

/dev/hda1 /boot ext2 noauto 1 2

- ещё одной хорошей привычкой на многодисковых инсталляциях может стать резервирование в начале каждого диска небольшого раздела. Даже если вы в данное время пользуетесь единственным /boot, жертва в 20 - 30 Mb для современных дисков незначительна.

Схему разбиения на три раздела можно признать удачной для однодисковой рабочей станции. Снимается головная боль по прогнозу наполняемости разделов, а получить заметный выигрыш от использования современных технологий на одном диске проблематично. Кроме того, такая схема легко трансформируется в более приемлемую при добавлении в систему дополнительных дисков (использование xfs на корневом разделе усложнит трансформацию).

3. Linux на многодисковой машине.

Появление на машине уже второго диска меняет представление об оптимальном разбиении. Большой раздел с корневой файловой системой нужно делить. Кроме того, второй диск (если это scsi или ide-master на втором канале) наводит на мысль об извлечении выгод от использования «продвинутых» технологий. Становится возможным для каждой «берлоги» файлового дерева подобрать индивидуальный оптимизированный рабочий микроклимат. В первую очередь осознаётся потребность «выноса за скобки» с корневой файловой системы всего, что не критично для процесса загрузки. При ближайшем рассмотрении кандидатами становятся файловые системы /home, /var (эти в первую очередь) и /usr, /opt.

Для корневой файловой системы реально необходимое дисковое пространство, при условии выноса всего возможного, 120 - 180 Mb, а с учётом запаса - 250 - 350 Mb. Файловая система журналируемая (присмотритесь к стабильной ext3 и её data=ordered по умолчанию). Запись в /etc/fstab может выглядеть примерно так:

/dev/hda6 / ext3 defaults 0 1

Файловые системы /usr и /opt проблем обычно не приносят. Требуемый им размер дискового пространства относительно стабилен и зависит от инсталлированного software. С большой долей уверенности можно сказать, что 2,5 Gb на две файловые системы должно хватить (это для рабочей станции с GUI, у сервера, не обременённого графикой, запросы скромнее).

Что касается /home и /var, здесь всё сложнее. Прогноз резервирования дискового пространства не всегда сбывается. Это основная проблема при инсталляции Linux на множестве дисковых разделов (на данном шаге мы рассматриваем необходимость иметь 6 или 7 разделов). Проходит немного времени после распределения лимитов и фактического разбиения дисков под прогноз и выясняется, что одни файловые системы близки к заполнению, другие явно недоиспользуют дисковое пространство. Не всё так плохо. Если при разбиении диска был допущен просчёт, существует минимум четыре способа решения проблемы. Назовём их условно так: «радикальный» (не говорите, что его вам рекомендовали), «сопливый», «жесткий» и «гибкий». Давайте коротко о перечисленных способах.

К «радикальному» методу я отнёс бы следующее. Резервируется на внешний носитель вся нужная информация. Делается разбиение под новые «обстоятельства». Инсталлируется операционная система. Восстанавливаются зарезервированные данные. Вот так.

«Сопливый» метод следует понимать так. Отдельные подкаталоги переполненной файловой системы переносятся на незаполненную, а на их месте создаются гибкие ссылки на вновь созданные. До некоторой степени это помогает.

Под «жёстким» методом подразумевается применение утилит типа parted. Parted позволяет производить перепланировку разделов с гарантией сохранности данных. Жёстким этот метод назван лишь потому, что имеет некоторые ограничения по типам файловых систем (специфика xfs не позволит им воспользоваться), двигает «стенки» только между смежными разделами и бессилен, если разделы находятся на разных дисках. Освойте этот метод, он пригодится при переходе от схемы «три раздела на одном диске» к схемам разбиения для нескольких дисков.

«Гибкий» метод предполагает, что возможность возникновения и решения проблем с дисковыми ресурсами была заложена ещё при инсталляции системы. При таком подходе вынесенные из корня разделы создаются на логических томах. Конечно, не всё так просто. Метод подразумевает освоение новых команд, если точнее, освоение большого числа новых утилит (как следствие большой гибкости технологии). Затраты времени на освоение могут окупиться тем, что перепланировка разделов из проблемы превратится в ещё один системный сервис. Схема разбиения двух дисков с выносом на логику всего возможного из корневого каталога с точки зрения «физики» представляет собой linux на четырех симметричных разделах. Выбирая между linear и striped логикой можно достаточно полно реализовать преимущества многодисковой инсталляции. В интернете доступен LVM-HOWTO

В следующей статье будет описание «что было, что стало».