The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Разбиение диска для увеличения производительности (linux disk fs ex3fs xfs reiserfs tune mount)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: linux, disk, fs, ex3fs, xfs, reiserfs, tune, mount,  (найти похожие документы)
From: Денис Смирнов <mithraen@freesource.info> Newsgroups: http://freesource.info Date: Mon, 4 Jul 2004 13:01:37 +0000 (UTC) Subject: Разбиение диска для увеличения производительности Оригинал: http://freesource.info/article/4.shtml Разбиение диска для увеличения производительности v1.1 Эта статья описывает разбиение диска для увеличения производительности. Я рекомендую по крайней мере на тестовых машинах использовать LVM, который позволяет гибко создавать, удалять и изменять размеры разделов без потери данных. При переходе к ядрам ветки 2.6.* можно будет изменять размеры файловых систем ext2 и ext3 без остановки сервера, а на reiserfs увеличение размера раздела "в горячую" можно делать уже сейчас. Файловые системы ext2 -- традиционная для Linux файловая система, после появления ext3 смысл её использовать есть только на разделах, которые должны поддерживаться сторонним программным обеспечением (например драйверами ext2 от других ОС). ext3 -- сделана на базе ext2, отличается только наличием журналирования. Полностью обратно совместима с ext2 (то есть любое ПО умеющее читать ext2 прочитает ext3), конвертирование ext2 в ext3 заключается только в создании файла журнала (что делается командой "tune2fs -j <устройство с FS>"). Единственная из описываемых поддерживает журналирование данных, а не только метаданных (при использовании параметра data=journal), которое, как ни странно, в некоторых случаях даёт увеличение производительности. Одна из самых надёжных файловых систем для Linux (второй является xfs, но её пока нет в стабильной ветке ядра), активно продвигаемая компанией Red Hat, и оттестированая на огромном количестве пользователей. reiserfs -- новая журналируемая файловая система, которая отличается от других с точки зрения администратора в первую очередь хорошей скоростью работы с каталогами, в которых большое количество маленьких файлов. В отличии от ext2/3 в ней используются для поиска файла в каталоге B-tree и хэши (в ext2/3 используются списки, в 2.5.* ветке уже внесены модификации добавляющие B-tree поиск). Кроме того она умеет компактно хранить хвосты от файлов для экономии места, обычно расходуемого впустую. xfs -- разработка SGI недавно перенесённая в Linux. Для ядер 2.4.* существует в виде патчей (уже присутствующих в большинстве современных дистрибутивов), оптимизированая для быстрой работы с файлами большого размера (multimedia данных), обладающая великолепной надёжностью, имеющая поддержку ACL (полезно для файл-серверов с Windows-клиентами) и EA (до конца зачем они нужны понимают лишь бывшие пользователи OS/2, остальные смотрят на них с удивлением). Опции монтирования Есть набор опций монтирования, поддерживаемых всеми файловыми системами, а также есть опции конкретной файловой системы. Эта информация взята из mount(8). Здесь я описываю лишь некоторые, на которые хотел бы обратить внимание. Общие опции монтирования noatime -- при каждом доступе (в том числе чтении) к файлу в inode обновляется время последнего доступа к файлу, что требуется крайне редко, при использовании этой опции это обновление производиться не будет, что заметно ускорит работу news-серверов, и, в особенности, прокси-сервера squid. nodev -- не позволяет создавать и использовать на этой файловой системе файлы-устройства, эта возможность полезна для безопасности (если вы точно знаете, что на данной файловой системе файлы-устройства вам не нужны, то есть смысл ставить эту опцию монтирования). nosuid -- на этой файловой системе не действует бит suid (исполнение программы от имени её владельца, а не запустившего её пользователя). noexec -- запрет запуска с этой файловой системы (внимание! это никак не влияет на скрипты). ro -- доступ только для чтения ext2 bsdgroups / sysvgroups grpquota / noquota / quota / usrquota ext3 data=journal -- все данные сначала пишутся в журнал, прежде чем начать запись на файловую систему data=ordered -- (режим по умолчанию) сначала пишутся данные прямо в файловую систему, после чего метаданные добавляются в журнал writeback -- очерёдность записи не соблюдается, метаданные могут быть записаны в журнал до того, как данные будут записаны на файловую систему, хотя этот режим гарантирует целостность файловой системы, он может позволить устаревшим данным присутствовать в файлах после сбоя (и, соответственно, восстановления журнала) reiserfs notail -- отключение ускорения доступа к маленьким файлом и упаковки "хвостов файлов". xfs dmapi logdev=device -- путь к устройству, на котором будет размещён журнал osyncisdsync quota / usrquota / ugnoenforce grpquota / gqnoenforce Значение отдельных разделов /boot На этом разделе обычно лежат рабочее и failsafe ядра, initrd образы, system.map файлы, а также некоторые данные используемого загрузчика (lilo или grub). На этот раздел обычно достаточно 5-10Mb. Обычно самый первый раздел (занимающий первую дорожку), и является самостоятельным primary разделом (не является logical volume на LVM как остальные). /usr Обычно достаточно большой раздел (1-2Gb), который редко разбивается на подразделы. Без LVM я бы не рекомендовал его разбивать, однако при его наличии это может иметь смысл. Насколько мне известно noatime на этом разделе не может дать никаких неприятных последствий. /usr/share/doc reiserfs -- ro,noatime,noexec,nodev /var Раздел, предназначеный для хранения изменяемых в процессе работы системы данных. По-хорошему на нём должен стоять флаг noexec, однако из-за недоработок нынешних дистрибутивов это редко удаётся без доводки дистрибутива (или установленного софта) напильником. Файловая система -- ext3 или reiserfs, noexec(желательно), nosuid(обязательно), скорее всего возможно использовать noatime, однако стоит быть внимательными. /var/log Этот раздел делать отдельно обязательно. При сбоях или DoS атаках размер журналов может резко увеличиваться, тем самым переполняя этот раздел. Если сервер используется для узкого круга задач (скажем web-сервер), есть смысл журнал основного сервиса вынести на отдельный раздел (скажем /var/log/apache). /var/log -- системные логи /var/log/apache -- логи www-сервера Файловая система -- ext3 либо xfs, опции noatime,noexec,nodev /var/spool reiserfs/ext3 noexec,nodev /var/spool/mail Каталог с почтой пользователей. ext3 с data=journal,noatime,noexec,nodev. Также на этот раздел обязательно устанавливать квоты. /var/cache reiserfs noexec,nodev,noatime /var/tmp Эта файловая система предназначена в первую очередь для хранения временных данных, которые могут иметь смысл после сбоя сервера (например данные autosave или журнал работы текстовых редакторов). Предназначен исключительно для файлов данных и должен обеспечивать высокую надёжность при аппаратных и программных сбоях. Оптимальное решение с моей точки зрения -- ext3 со включённым журналированием данных. ext3 data=journal,noexec,nodev,atime /var/www Раздел с сайтами пользователей /tmp Каталог для временных файлов, не имеющих никакого смысла при перезагрузке. Может (и, как я считаю, должен) пересоздаваться во время загрузки системы. Время последнего доступа к файлу может использоваться для проверки не является ли файл в этом каталоге неиспользуемым (скажем если к файлу не было доступа больше трёх суток и он никем не открыт, то он удаляется), поэтому желательно держать флаг atime. Запускать файлы из /tmp пытаются некоторые криво написаные программы, если вы с такой встретились -- лучше сделать патч. Если не ставится флаг noexec, то хотя бы nosuid стоять должен. Файловая система лучше reiserfs -- она лучше всех справляется с большим количеством небольших файлов в одном каталоге. reiserfs noexec,nodev,atime /home Домашние каталоги пользователей. На серверной машине, скорее всего, имеет смысл ставить на этот раздел флаг noexec, но если он не ставится, то nosuid обязателен. Время последнего доступа к файлам если раздел используется несколькими реальными пользователями может быть нужно, поэтому в этом случае noatime не нужен. Однако если машина используется, скажем, как почтовый сервер (то есть пользователи никогда не сталкиваются с данными на файловой системе), то, скорее всего, этот флаг вам нужен. ext3/xfs nosuid,nodev Благодарности Клочков Роман -- масса ценных комментариев, первый кто написал мне письмо в ответ на эту статью :) Денис Смирнов <mithraen@freesource.info> 2 Jun 2003

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, stimpack (?), 12:59, 25/01/2008 [ответить]  
  • +/
    ничего не сказано про корень
     
     
  • 2, 00 (?), 17:53, 05/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    / - ext4
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру