Softerra Компьютерра | Ferrа | Инфо-Бизнес | Домашний компьютер | Game.exe 
Softerra - лучший русский сайт о софте
Rambler's Top100

 Статья рубрики "Linuxоид"

"Журналируемые файловые системы для GNU/Linux: мифы и реальность"

Прошло третье заседание семинара. Интересное сравнение четырех журналируемых файловых систем и другая полезная информация.

[03.10.2001, Олег Бройтман, phd@phd.pp.ru]

24 сентября 2001 состоялось третье заседание семинара. Александр Боковой прочел лекцию "Журналируемые файловые системы. Мифы и реальность".

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

Александр рассмотрел 4 наиболее известные файловые системы - ReiserFS, JFS, XFS и ext3 - однако не вообще, а применительно к конкретной задаче - создание высокопроизводительного надежного файлового сервера. Александр не назвал лучшую, и я не назову - сначала дайте критерии "лучшести". Как будет видно ниже, по разным критериям лучшие бывают разные.

Мифов же уважаемый лектор развеял немного. Первый и единственный миф - что журналируемые файловые системы спасут вас и ваши данные от любого сбоя. Нет, не спасут. Они просто предназначены для другого.

Вот, скажем, сценарий. Вы открываете файл, и пишете в него большой объем данных. В середине записи происходит сбой, перезагрузка, и после восстановления файл оказывается пустой. Нулевой длины. Как же так, говорите вы, а где же то, что я туда писал? Ответ такой - журналируемые файловые системы ТАК не работают. Они предназначены не для восстановления всех ваших данных любой ценой, а для поддержания непротиворечивости метаданных файловой системы на момент сбоя. Поэтому такая система работает так: вы открываете файл - и он успешно открывается, файловая система отмечает открытие в своем журнале записью транзакции. Затем вы начинаете писать. Но файловая система не запоминает копии этих данных. И когда происходит восстановление после сбоя, происходит откат до последней успешной транзакции - открытия нового пустого файла.

Следующие общие слова Александр сказал об алгоритмах журналируемых файловых систем. Большинство из них построено на основе сбалансированных деревьев, иначе известных как B+ деревья.

Из четырех рассмотренных файловых систем 3 используют сбалансированные деревья.

Второй способ оптимизации журналируемой файловой системы - вынесение журнала на другое независимое устройство (для асинхронного доступа). Это увеличивает эффективность системы на 30-50%! Не все из рассмотренных систем имеют вынос журнала. XFS имеет, для ReiserFS нужен особый патч.

В основной части лекции Александр рассказал подробности о каждой из файловых систем.

XFS была создана в начале 90-ых (1992-1993) фирмой Silicon Grapgics (сейчас SGI) для мультимедийных компьютеров с ОС Irix. Файловая система была ориентирована на очень большие файлы и файловые системы. Особенностью этой файловой системы является устройство журнала - в журнал пишется часть метаданных самой файловой системы таким образом, что весь процесс восстановления сводится к копированию этих данных из журнала в файловую систему. Размер журнала задается при создании системы, он должен быть не меньше 32 мегабайт; а больше и не надо - такое количество незакрытых транзакций тяжело получить.

JFS, журналируемая файловая система фирмы IBM, была создана для ОС AIX. В дальнейшем была перенесена на OS/2, но проявила себя там очень вяло. Нынешняя ее версия для Linux и то лучше. Размер журнала - примерно 40% от объема файловой системы, но не больше 32 мегабайт. Особенностью этой файловой системы являются "агрегаты" - в этой файловой системе может быть несколько сегментов, включающих журнал и данные, и каждый из таких сегментов можно монтировать отдельно.

Проект ReiserFS тоже начинался в 90-ых годах, первый прототип носил название TreeFS. Разработчики системы мечтают создать не только файловую систему, но вообще механизм иерархического именования объектов. Уже есть патчи, интегрирующие Squid с ReiserFS, аналогичный проект начался для qmail. В этом смысле работа Ханса Райзера с коллегами уникальна, потому что они ведут научные исследования, и воплощают результаты в свободный код!

И, наконец, ext3. Это журналируемая надстройка над ext2. Достоинство ее в том, что она не меняет внутренние структуры ext2. Файловую систему ext3 можно создать из ext2 просто запустив программу создания журнала. Впоследствии эту файловую систему можно опять подмонтировать драйвером ext2. А потом опять драйвером ext3, и создать журнал.

Во второй части лекции Александр показал кучу графиков сравнения производительности 4-ех описанных файловых систем. Сравнение проводилось с помощью стандартного теста NetBench, точнее, как стало понятно из лекции чуть позже, с помощью его свободного аналога DBench. NetBench - это распределенный клиент, который с сотни виндовых машин дает нагрузку на файловый сервер - создает, переименовывает, пишет и читает файлы, всего около 90 тысяч транзакций. DBench создан Эндрю Триджелом, автором Самбы, еще когда он работал в SGI, и у него была возможность использовать сотню виндовых машин. DBench не является, как я понял, распределенным клиентом, а эмулирует NetBench на одной машине, но отклонение от результатов NetBench составляет 1%. Вполне приемлемо. DBench был создан так - через сервер с Самбой прогнали NetBench, и Самба все операции записала в лог.

Вот этим-то DBench'ем Александр нагрузил файловые сервера, создавая нагрузку, эквивалентную нагрузке NetBench от 1 до 25 клиентов. Результаты были представлены в виде графиков падения производительности на 1 клиента в зависимости от числа клиентов. Тестирование проводилось на сервер самой обычной конфигурации - Celeron 800Mhz, 256M памяти, 4 независимых IDE-контроллера; на одном Linux, на другом тестируемая файловая система, на третьем журнал (в тех FS, которые позволяют вынести журнал), один запасной.

Я не буду пытаться воспроизвести эти графики здесь, возможно, Александр опубликует их отдельно. Приведу лишь общие выводы. Вывод номер один, самый главный: на таком железе (даже не Pentium4) файловые системы обладают такой высокой производительностью, что забивают 100-мегабитную сеть. То есть для того, чтобы выйти на предел, уже надо было бы иметь гигабитный ethernet.

Теперь по отдельным файловым системам. Слабее всех проявила себя JFS. Ее производительность с самого начала невысокая, и падает она быстро. Зато ее падение производительности очень гладкое; тем, кому важна не только производительность, но и предсказуемость поведения, это важно.

Лучше себя ведет XFS. Ее производительность на 1 клиенте выше, и падает медленнее. А при вынесении журнала на независимый контроллер ее производительность сильно улучшается, и она приближается к топовым показателям. Про XFS следует отметить, что она разрабатывалась как файловая система для больших файлов, а NetBench выполняет операции с небольшими, поэтому можно предполагать, что на реальных файловых серверах XFS будет вести себя еще лучше. К тому же у этой FS тоже очень гладкий график падения производительности.

ReiserFS показал еще лучшую производительность, но зато у него негладкое падение. Где-то в районе 12-15 клиентов график начинает скакать вверх и вниз довольно резко (на вопрос из зала, воспроизводимо ли такое поведение, или это ошибка эксперимента, Александр ответил, что графики эти выверены, и все скачки воспроизводимы). После 15 клиентов график становится более гладким, возможно, за счет приближения к полной загрузке сети, а не файлового сервера.

Графики ext3 до такой степени мало отличаются от ResierFS, что на сводном графике и не увидишь разницы.

Особой проблемой является то, что во время интенсивной записи на диск файловые системы постоянно перебалансируют свои B+ деревья. Загрузка процессора при использовании XFS достигает 90%. ReiserFS дает 70%, потому что оптимизирует порядок операций. Другая оптимизация ReiserFS - она может упаковывать несколько маленьких файлов в один дисковый блок, а совсем маленькие - просто записать в inode :)

Что касается стабильности, то наиболее устойчивой оказалась ReiserFS, которую Александр назвал рабочей лошадкой, на которую вполне можно положиться.

Во время лекции и после нее возникло пара вопросов о совместимости журналируемых файловых систем с сетевыми. То есть можно ли поверх ReiserFS поставить NFS, или поверх XFS - Coda. Не все хорошо оказалось в этой области, но подвижки есть. Лучше всего должны быть совместимы Coda и ext3 - у них один автор Peter Braam. :)


Обсудить статью в форуме

Почитать на ту же тему на нашем сайте:


<< Предыдущая статья рубрикиСледующая статья рубрики >>
("FreeBSD. Свободные записки о свободной системе. Инсталляция.")("Консольная мультимедия")
Вернуться к оглавлению рубрики
Олег Бройтман
phd@phd.pp.ru
 
http://phd.pp.ru/

Вниманию вебмастеров: использование данной статьи возможно только в соответствии
с правилами использования материалов сайта "Софтерра"


 Новые статьи на сайте

Просмотр DVD фильмов на FreeBSD

Несколько плееров для просмотра DVD в FreeBSD и немного теории

[29.10.2002, Станислав Лапшанский, "Linuxоид"]


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

Установка линукс на два диска с логическими томами...

[25.10.2002, Владимир Холманов, "Linuxоид"]


Домашняя фабрика грез. Часть 2

О представлении цветного изображения и прочем.

[24.10.2002, Алексей Стахнов, "Технологии"]


Более ранние статьи >>



 Новости софта

И защищает, и "расшаривает"... [17:58, 14.10.2002]

SolidShare - полезная программа для пользователей интернета


"Тощий" браузер [17:49, 14.10.2002]

Slim Browser 3.1 улучшает функциональность IE


Нужно-ненужная программа [16:05, 14.10.2002]

"Программа без особого назначения"


Более ранние новости >>



 Игры и мультимедиа. Новости

1с и Activision решили сотрудничать [18:06, 11.10.2002]

Фирма "1С" будет издавать серию игр от компании Activision в России, на территории стран СНГ и Балтии


Семнадцатый Чемпионат по онлайновым "СамоГонкам" [18:04, 11.10.2002]

В понедельник начнется настоящая игра


Распродажа пирамид [11:48, 10.10.2002]

"Пирамида. Gold Edition" в продаже


Более ранние новости >>



 Новости свободных систем

Lcrzo 4.16 [14:48, 16.10.2002]

Модифицированы некоторые модули...


KDE 3.1... забегая вперед [14:37, 16.10.2002]

Грядут большие перемены...


mnoGoSearch 3.2.7 [10:37, 15.10.2002]

Есть изменения...


Более ранние новости >>



 Пресс-релизы

Электронная цифровая подпись для Microsoft Office [15:43, 21.3.2002]

Компания MultiSoft анонсирует свою разработку – программный продукт «ЭЦП для Microsoft Office», обеспечивающую целостность и авторство электронных документов Word и Excel при их хранении и распространении через локальную или глобальную сеть.


Компания «БИФИТ» на форуме «Инфобизнес-2002» [14:14, 21.3.2002]

На проходившем с 12 по 15 марта форуме «Инфобизнес-2002» компания «БИФИТ» представила свою новую разработку iBank 2 - передовое решение для электронного банкинга.


Конвертирование позитива в негатив [13:16, 21.3.2002]

Группа разработчиков Invention Pilot, Inc выпустила новый программный продукт – Silver Pilot.


Более ранние новости >>






Информация о сервере
Copyright (c) 2000 ИД "Компьютерра"
Email: inform@softerra.ru
Телефон: (095) 232-22-63
Рейтинг@Mail.ru Создание сервера (с) 2000 Individ
Работает на Saitistika
Карта сайта
Главная страница