Разделы очень важны на сервере Linux, потому что они дают вам большую гибкость, например, при обновлении до жесткого диска большего размера.
Но сколько разделов мне нужно создать при сборке Linux? Какой размер я должен установить для каждого раздела?
Наконец, что не менее важно, какие разделы я должен иметь на отдельном диске (я думаю о / home, / var, возможно, на более быстром диске и т. Д.) И какие разделы я могу использовать на одном диске?
Планирование хорошей структуры разделов во многом зависит от фактического знания того, как вы собираетесь использовать «сервер». Любой случайный совет, не связанный с фактическими услугами, которые будут предоставлены, не будет особенно полезным.
Например, если для mysql будет использоваться блок на основе debian, вам могут потребоваться отдельные разделы для /, / var и / var / lib / mysql.
Будет ли это файловый сервер с большим количеством общего хранилища? Возможно, вам понадобятся разделы /, / home и / srv.
Для коробки, на которой работает только squid, вам может понадобиться раздел для / и один раздел на быстром диске для спула squid.
Когда вы планируете свои перегородки, очень полезно иметь хорошее представление о Стандарт иерархии файловой системы и если / как ваш выбранный дистрибутив отклоняется от стандарта.
С помощью LVM может значительно упростить изменение вашего мнения в будущем и настройку разделов без перезагрузки., а его способность создавать моментальные снимки может быть очень простой для создания хороших резервных копий.
Я всегда создаю эти разделы, и с прошлого года всегда на LVM:
/ - a few Gig
/usr - 24 Gig and mostly empty
/var - 4 Gig works for me, YMMV
/home - depends on how many users you will have
Один из самых важных - /var
- если это отдельный раздел, то при его заполнении вы не разобьете корневой раздел. Хотя я никогда этого не делал, некоторые делают отдельный /usr
так что они могут монтировать его только для чтения.
и я иногда создаю эти разделы:
/boot - even 1 Gig is way more than enough
Причина в том, что не всегда можно загрузиться с раздела RAID или LVM. Таким образом, /boot
может быть простым разделом ext3, что позволяет /
быть более продвинутым.
Если у меня будет большое количество больших файлов, я иногда создаю специальный раздел для этих больших файлов, чтобы файловую систему можно было настроить так, чтобы она была более эффективной при хранении больших файлов. Некоторые люди, если они будут обслуживать NFS с сервера, создадут отдельный раздел для своих общих ресурсов NFS или даже отдельный раздел для каждого общего ресурса NFS. Это зависит от ваших потребностей.
Почему LVM? Как я уже упоминал в ответах в другом месте, но забыл упомянуть здесь, это значительно упрощает передумать позже и расширить раздел. Это уже спасло мою задницу.
Это общие рекомендации. Конечно, я ожидаю, что если у вашего сервера есть особые потребности, вы примете это во внимание и создадите раздел, отражающий эти потребности.
Предполагая, что вы создаете машину, которая прослужит какое-то время, ее будет неудобно перестраивать и она должна быть достаточно гибкой, вам может понравиться схема, подобная следующей:
Установите как минимум два физических диска одинакового размера; Для целей этого примера я предполагаю, что диски SATA емкостью 500 ГБ, но эти принципы отлично работают с дисками других размеров.
Разбейте каждый диск на разделы следующим образом:
/dev/sda1 500MB
/dev/sda2 100GB
/dev/sda3 the rest
Цель состоит в том, чтобы иметь изящный раздел 500 МБ впереди, большой раздел посередине для ОС и приложений и большую часть диска сзади для дополнительных данных.
Создайте набор SW RAID 1, /dev/md0
, из /dev/sda1
и /dev/sdb1
; построить дополнительные наборы SW RAID 1 /dev/md1
и /dev/md2
из соответствующих разделов.
Формат /dev/md0
как ext3; это будет /boot
.
Формат /dev/md1
и /dev/md2
как физические тома LVM.
Создайте группу томов LVM, vg_system
, который содержит /dev/md1
.
Создайте соответствующие тома LVM внутри vg_system
для различных разделов вашей ОС; по крайней мере, вы захотите swap
, /var
пары ГБ и /
10 ГБ или около того. НОТА: не выделять все vg_system
! Когда вы позже решите, что хотите увеличить размер \var
, или вы хотите добавить /opt
или еще много чего, тогда вам понадобится это дополнительное пространство.
Создайте группу томов LVM, vg_data
, который содержит /dev/md2
.
Создайте тома LVM внутри vg_data
по желанию; по крайней мере, вы захотите /home
, и вам могут потребоваться дополнительные тома, например, для почтовых спул, баз данных, корневых веб-сайтов или любых других данных, которые не являются частью ОС. Опять же, не выделяйте все vg_data
, по причинам, аналогичным перечисленным выше.
К преимуществам этой стратегии можно отнести следующее:
Устойчив к аппаратным сбоям; любой диск может выйти из строя, не вызывая сбоя системы, и если вы купите контроллер с горячей заменой, вы сможете восстановить его без простоя.
Он ориентирован на будущее и расширяется; когда через несколько лет вы купите диски емкостью 2 ТБ, вы можете вставить их в машину, превратить в другой набор SW RAID, отформатировать его как физический том LVM, добавить в ту группу томов, которая требует больше места (возможно, lv_data
), затем используйте pvmove
для переноса данных со старых дисков на новые. Кроме того, основные обновления ОС могут быть значительно менее болезненными; если вам нужно переустановить ОС для серьезного обновления (кхм Red Hat :(), вы можете сделать это, сохранив домашние каталоги (и почтовые спулы и все остальное, что вы добавили vg_data
).
Недостатков у этой стратегии немного; Я полагаю, что это немного сложно, и вы действительно снижаете производительность при записи из-за RAID 1. Однако я уже несколько лет строю рабочие станции и автономные серверы в соответствии с этими принципами, и, по моему опыту, каждый раз Я не собираюсь строить машину в соответствии с этими принципами, в ближайшее время мне бы хотелось.
-Стив
P.S. Я должен добавить, что если у вас есть инфраструктура, позволяющая быстро и безболезненно подготовить новую машину, то такая система является излишней; вместо того, чтобы возиться с наборами RAID и LVM, просто перестройте машину, если вам нужно что-то изменить.
В течение многих лет каждый компьютер, который я использовал, был системой с двойной загрузкой, и на стороне Linux я в значительной степени придерживался этой схемы (здесь я говорю о личных рабочих станциях, а не о серверах, поэтому ваш опыт может отличаться)
/ - main thing
/boot - not that relevant, since cylinder being < 1024 and
exotic filesystems are no longer an issue
/home - handy if you upgrade your laptop with each new distro :-)
Для моего последнего обновления я выполнил установку с нуля, уничтожив все /
раздел. Это заставило меня подумать об отдельном /opt
или /usr/local
было бы неплохо, избавив меня от хлопот по переустановке всего, что я туда положил (java, eclipse ... Обычно мне не нужны упакованные дистрибутивы).
В дополнение к разделам, упомянутым Эдди, я обычно создаю еще два отдельных раздела
/ tmp - по тем же причинам, по которым вы создали отдельный раздел / var (раньше у меня было все временное пространство). Я обычно использую 1-2 ГБ
/ usr / local - позволяет обновлять и очищать / usr по мере необходимости, не уничтожая все отдельно установленное программное обеспечение. Размер здесь зависит от того, сколько внешнего программного обеспечения вы устанавливаете. Обычно я использую около 10 ГБ, но сейчас я считаю, что это немного мало.
Я всегда делаю / home последним и заполняю им остальную часть диска.
В разделе / boot я никогда не делал его больше 100 Мб и никогда не сталкивался с проблемами с пространством (в конце концов, я вычищаю старые ядра). Это действительно может быть очень мало.
Также не забудьте раздел подкачки.
Для большинства машин я делаю
100MB /boot
1GB * NUMBER_OF_USERS /home
10GB /var/log
10GB /var
REST /
В некоторых случаях это нужно будет изменить, но я категорически категорически против того, чтобы пользователи получали не более 1 ГБ места на сервере. Если им нужно больше, они могут использовать / tmp, понимая, что он будет удаляться через cron каждую ночь.
Предполагая, что вы не используете там аппаратный RAID - в Linux я всегда использовал бы LVM поверх RAID. Даже для однодисковой конфигурации. Причина в том, что у вас есть возможность добавить больше места для хранения (путем расширения группы LVM) или изменить параметры избыточности (например, превратить «странную» однодисковую конфигурацию raid1 в зеркальную или даже RAID10 с некоторыми трудностями).
Чтобы ответить на ваш вопрос, у меня обычно есть что-то подобное для общего сервера. Начиная с 2 дисков (скажем, 1RU Dell), оба разделены следующим образом:
Затем мы создаем весь том как тома LVM: * / * / var * / tmp * / home * / opt
Я бы не стал создавать слишком много файловых систем, так как с этим трудно справиться. Если у вас мало места на диске, у вас будет свободное место во многих файловых системах, но его будет недостаточно для работы.
/ home и / tmp в отдельной файловой системе - всегда хорошая идея; обычно я не разделяю / opt, если не планирую в него много чего. (NFS может быть лучшим вариантом для / opt, если у вас много серверов, для которых требуется один и тот же программный стек)
Короче говоря, используйте LVM для всего, если у вас нет причины не делать этого - таким образом у вас есть возможность изменить.
Кроме того, используйте сервер журналов, чтобы журналы не заполняли ваш / var!
Группа томов - rootvg
Группа томов - datavg
Вы можете создать отдельный / usr для своего программного обеспечения, но в моем случае ящик будет переустановлен, поэтому нет необходимости создавать отдельный раздел.