Оптимальный раздел файловой системы UNIX + стратегия установки

16

При разбиении нового системного диска (ов) для UNIX, какую стратегию вы предпочитаете для настольных компьютеров и / или серверов?

Пожалуйста, укажите расположение разделов на диске, формат (ы) файловой системы и параметры, точки монтирования, уровень (уровни) RAID, группы и тома LVM, шифрование и любые другие соответствующие параметры.

cmcginty
источник
Вопрос выглядит почти как дубликат этого ( serverfault.com/questions/1145/… ).
Zoredache
это для рабочей станции, тест-сервера или для полностью зрелого онлайн-сервера?
Джангофан

Ответы:

9

Я фанат LVM для такого рода проблем. Вам просто нужно немного места для / boot (я использую около 100 МБ). В сочетании с файловыми системами, которые могут динамически увеличиваться и уменьшаться (или, по крайней мере, увеличиваться), вам больше никогда не придется думать о небольших разделах.

На моем рабочем столе я использую LVM с XFS в качестве файловой системы для всех разделов. Я создаю как можно меньше и позволяю им расти, так как мне нужно больше места.

Мартин
источник
7

Если это Linux, есть отдельный / boot.

Для других вариантов Unix, как правило, я рекомендовал разделы для / и / var, данные обычно монтируются в / u001, / u002 и т. Д.

Раньше требовалось много разделов, так как дисковое пространство было ограничено, и вы не хотели, чтобы один заполненный раздел разрушал всю систему. Благодаря значительно увеличенному объему хранилища, доступному сегодня, а также множеству доступных вариантов изменения размера и виртуализации потребность во многих разделах IMO снизилась. Это в сочетании с тем фактом, что при наличии большого количества разделов возникают проблемы с перемещением, означает, что если вам удастся сойти с рук с меньшими затратами, сделайте это.

Поменять местами как 2xRAM не имеет смысла, если, скажем, 32 ГБ памяти. Помните, что «правила» - это действительно рекомендации, а некоторые просто не имеют смысла в свете более нового оборудования, доступного сейчас.

Джодер Хо
источник
2
+1 за упоминание необходимости разбиения в последнее время, кроме того, если вам нужно больше места в / home, вы всегда можете смонтировать новый жесткий диск.
Спойк
1
+1 - я согласен / преуменьшаю необходимость в сумасшедших играх с разделами на большинстве систем. Если вы знаете, что вам нужен / var для быстрого диска из-за какого-то приложения, пусть будет так. Чаще всего, когда я сталкивался с сумасшедшими играми с разделами в производственных системах, это был один аппаратный том RAID-1, разделенный на кучу маленьких разделов, все ожидающие заполнения и нуждающиеся в изменении размера (чтобы заставить работать админ, видимо). Если вы знаете, что у вас есть приложение для какой-то сложной схемы разделов, сделайте это. Если нет, то нет.
Эван Андерсон
5

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

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

RAID - это хорошо, я всегда запускаю RAID1 на всех своих персональных компьютерах, потому что у меня слишком много жестких дисков.

Шифрование с использованием чего-то вроде dm-crypt хорошо, если ваша система является переносным устройством, содержит ценные данные или просто параноиком.

Поскольку вы планируете свои разделы, очень полезно иметь хорошее представление о таких вещах, как стандарт иерархии файловой системы и, если / как выбранный вами unix отклоняется от стандарта.

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

Zoredache
источник
5

Есть две очень веские причины для разделения, кроме типа FS:

  1. Предотвратить переполнение приложения, влияющее на функциональность системы. Если ваше приложение заполняется /usr, то полезно оставить некоторое место /varдля продолжения работы системы и записи журналов.

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

  2. Варианты монтирования. Вы можете более тщательно определить, какие разрешения должен принимать каждый раздел. Например, рекомендуется не разрешать выполнение файлов, особенно suid, /tmpпоскольку это является распространенным вектором атак для машин, обслуживающих веб-приложения. Если вы не используете тюрьмы, вы не должны ожидать, что узлы устройств будут где-либо, кроме как /dev. И так далее.

например.

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  
Дэн Карли
источник
4

Разбиение физических дисков
Начните минимум с 2 дисков:

# 1 100 МБ, ID = 83 (Linux), флаг загрузки включен
# 2 Осталось, ID = FD (Linux Raid Auto)

Раздел 100 МБ предназначен для / boot тома. Я оставляю это на всех своих дисках (даже не загружаемых), чтобы обеспечить гибкость, чтобы впоследствии можно было включить любой диск для загрузки. Если диски не совпадают по размеру или у вас есть нечетное число (500 ГБ, 250 ГБ x2), то разделите разделы диска 500 ГБ, чтобы они соответствовали меньшим дискам.

RAID
Использование разделов размером 100 МБ sdaи sdbсоздание тома RAID1 (зеркала) для /boot. Это становится md0.

md0 / boot 100MB Ext2

Не беспокойтесь об использовании экзотического FS в / boot, оно того не стоит.

Оставшееся пространство можно настроить разными способами. Я выбираю RAID10 (зеркало / полоса), используя куски 64 КБ и «2 дальних копии» для скорости. Это дает вам большую гибкость для постепенного обновления накопителей. Другие варианты сделать RAID5 / 6. Однако полезное пространство будет ограничено самым маленьким разделом, и НЕ используйте разделы с одинаковых устройств. Назовите новый RAID - массивы md1, md2и так далее.

LVM
Возьмите все RAID-массивы, кроме md0, и поместите их в одну группу томов LVM с именем lvm_vg0. Если у вас есть тома RAID5 и RAID10, вероятно, лучше не объединять их, но, думаю, это не повредит.

Раздели VG0 для остальных креплений системы. Помните, что относительно легко добавить больше места, если это необходимо, поэтому эти цифры могут быть несколько консервативными.

lvm_vg0-root / 8GB Ext3 / ReiserFS (основные файлы дистрибутивов)
lvm_vg0-home / home 20 + ГБ Ext3 / ReiserFS (пользовательские данные, документы)
lvm_vg0-data / data 60 + ГБ XFS (носители, большие файлы, виртуальные машины)

Файловые системы XFS не могут быть сокращены, так что имейте это в виду. Кроме того, сжатие сетевого корневого тома, вероятно, не поддерживается.

Обновление Если вы когда-нибудь захотите поменять диски на диски большего размера, у вас есть несколько вариантов. Самым простым является добавление дисков парами или более и добавление новых массивов RAID в текущий LVM VG.

Другим вариантом является добавление одного диска>> к сумме текущего пространства. Например, если у вас есть два устройства емкостью 100 ГБ в RAID10, вы можете добавить новое устройство емкостью 200 ГБ и отразить его, используя два старых устройства. Это более подвержено ошибкам, но будет работать.

При необходимости md#устройства могут быть удалены из LVM VG без потери данных. Это можно сделать, если достаточно свободного места LVM для перемещения всех используемых блоков LVM с md#устройства на другие. LVM может использовать только пространство, которое не было назначено LV, поэтому пустая файловая система не считается «свободным» пространством.

cmcginty
источник
1
Меня не убеждает страх перед экзотическими файловыми системами в / boot. ext3 и XFS больше не являются экзотикой в ​​2009 году. Раньше это было проблемой, когда liveCD не были упакованы с драйверами для них, но почти все в наши дни.
Дэн Карли
@Casey, вы можете уменьшить объем Ext3 «вживую», если у вас достаточно свободного места для вещей, в которые можно перемещаться. Да, это невероятный опыт, но я это сделал, и он работает так, как рекламируется. Просто будьте ОЧЕНЬ осторожны с параметрами.
Эйвери Пейн
2

Я просто использую Linux Workstations. Я использую файловую систему ext3, и размеры в некоторой степени зависят от размера дисков, более щедры к разделам на больших дисках. Это примерно в том порядке, в котором они появляются в таблице разделов:

  • / boot - 100 МБ
  • пространство подкачки - 2xRAM
  • / usr - 10-20 ГБ
  • / - 5-10 ГБ
  • / var - 1-2 ГБ
  • / тпм - 1-2 гб
  • / usr / local - 10-20 ГБ
  • / home - все остальное.

На рабочих станциях моей жены в университете, которые имеют два диска по 750 ГБ, мы создали, в дополнение к вышесказанному, дюжину ~ 100 ГБ разделов на различных дисках, все смонтированные в / data / N, где N - это число от 1 до 12 Она использует их для хранения данных для своих различных исследовательских проектов.

dagorym
источник
Лично я не вижу преимущества разделения / var, / usr на другой раздел. Хотя / usr / local может быть хорошей идеей, если у вас установлено пользовательское программное обеспечение (= не установлено с помощью управления пакетами), два упомянутых выше способа довольно бесполезны. Также 2xRAM в качестве подкачки imho не требуется. Если ваша система начинает менять местами, все становится слишком медленным, поэтому вы хотите избежать этого в начале. У меня лично есть только раздел подкачки с Ramsize + X, потому что я иногда использую suspend-to-disk.
Мартин
2
@Martin, на linux box, действующем в качестве кеша squid, вы хотите, чтобы ваш каталог спула и лог каталог находились на быстром диске, и вам обычно не нужен этот диск для надежности. Можно поместить (/ var) вашу катушку на RAID0 (полоса) и оставить все остальное на более медленном диске.
Zoredache
@Martin - Вы правы, разделение / usr, вероятно, не нужно, и я тоже не всегда это делаю. Перестановка = 2xRAM - это старая привычка, оставшаяся с тех дней, когда я настраивал системы только с 256 МБ ОЗУ или меньше.
Дагорым
1
на самом деле, разделение / usr и / var позволяет включить ведение журнала для одного, а не для другого.
Скотт
1
А размещение / var в отдельном разделе гарантирует, что только / var сможет заполниться файлами журналов, которые в противном случае могли бы поставить вашу систему на колени.
wzzrd
1

использовать noatime на всех дисках (если у вас нет причин не делать этого). Я монтирую / tmp в tmpfs, хотя это может быть не очень хорошо на сервере, я бы позаботился о том, чтобы это был отдельный раздел, и смонтировал его nodev, nosuid, noexec, noatime , Я всегда использую ext2 для / boot, так что мне не нужно беспокоиться о том, чтобы что-то изменить в fs, лишив меня возможности загружаться с grub. ext4 во всем остальном, я использую journal = data on / home, что, вероятно, немного замедляет работу (так как он не имеет dealloc), но я никогда не терял данные и с journal = data, и, будучи немного последним / лучшим шлюха, иногда моя система блокируется, и мне приходится ее жестко переустанавливать (потому что я попробовал что-то вроде kms и обнаружил ошибку).

xenoterracide
источник
1
Не забудьте также использовать 'nodiratime', иначе вы добавите vfs_cache_pressure с тоннами инодов (плюс фактическая запись на диск!).
Gazzonyx
0

Вау, хороший вопрос. Занимался серфингом для идеального ответа на это для йонков.

У меня лично есть 50Mb / boot ~ 8GB /, а остальное идет в сторону / home. Это далеко от идеала. Мне нужно исследовать альтернативные файловые системы, в настоящее время я использую ext3, но я слышал много хорошего о других файловых системах, например, XFS.

Я также обычно создаю файловый контейнер для / tmp исключительно для того, чтобы в будущем я мог быть более гибким с ним.

Адам Гиббинс
источник