> man operating_systems
Масштабируемост в файловой системе XFS
на Вторник, 08 Ноябрь 2005, 16:26
добавил: Пешеходов А. П. aka fresco список авторов печатать элемент контента создать pdf-файл  элемент контента
категория Статьи
комментарии: 0
просмотров: 6888

Оригинал документа можно найти <a href=http://www.oss.sgi.com/projects/xfs/papers/xfs_usenix/index.html></a>. Документ был представлен в январе 1996. на конференции USENIX в San Diego.<br /><br />

Ранее статья была опубликована на <a href=http://fresco.front.ru>fresco.front.ru</a>. Публикация и распространениематериала без согласия автора запрещены.<br /><br />

Перевод: Пешеходов А. П. aka fresco

Adam Sweeney, Doug Doucette, Wei Hu, Curtis Anderson, Mike Nishimoto, and Geoff Peck


Silicon Graphics, Inc.


Резюме

В этом документе мы описываем архитектуру и реализацию новой файловой системы XFS для ОС SGI IRIX. Это файловая система общего назначения, предназначенная для использования как на рабочих станциях, так и на серверах. В центре внимания обзора находятся механизмы, используемые XFS для обеспечения мощной и производительно поддержки очень больших файловых систем (Very Large File System – VLFS). Поддержка VLFS включает в себя поддержку больших файлов, множества файлов, больших директорий и высокопроизводиельных операций ввода/вывода.

В обсуждение используемых в XFS механизмов мы включаем как описание специфичных дисковых (on-disk) структур данных, так и анализ причин, по которым именно они были выбраны. Мы детально обсудим широкое применение B+ деревьев, в том числе и в тех местах, где традиционно используются линейные структуры данных.

XFS предоставляется клиентам с декабря 1994 (начиная с IRIX 5.3), и мы продолжаем ее совершенствоват и расширять ее возможности в новых релизах. В документ мы включаем результаты тестов производительноти последней версии XFS, чтобы доказать перспективностьнаших идей.

Введение


XFS – это локальная файловая система нового поколения для рабочих станций и серверов SGI. Это ФС общего назначения с типичным для UNIX интерфейсом, которая одинаково хорошо работает как на рабочих станциях с 16 Mb оперативной памяти и единственным жестким диском, так и на многопроцессорнх серверах с гигабайтами RAM и терабайтами дискового пространства. В данном обзоре мы рассматриваем XFS с точки зрения механизмов, используемых ею для управления большими файловыми системами в мощных вычислительных комплексах.

Наиболее распространенны механизм, используемый XFS для увеличения масштабируемост – это широко применяющиеся B+ деревья. B+ деревья используются для отслеживания свободного пространства (вместо традиционных битовых карт (bitmaps)), для доступа к зонам (extents, зоны – непрерывные области дискового пространства, выделенные для размещения данных файла (пер.)) файла, номера которых уже не помещаются в inode. В B+ деревья выстраиваются элементы каталога (вместо образования обычных линейных списков). Наконец, динамически распределяемые inodes, физически разбросанные по всему диску, объединяются в памяти в единое B+ дерево. Кроме того, XFS использует схему асинхронного журналирования вывода (записи) для защиты изменений метаданных и обеспечения быстрого восстановления после сбоев. Мы также поддерживаем высокопроизводиельный файловый ввод-вывод, применяя длинные, распараллеленны I/O запросы (large, parallel I/O requests) и DMA, передавая данные непосредственномежду диском и пользовательски буфером. Эти механизмы позволяют восстанавливатьдаже очень большие файловые системы после сбоев, как правило, менее чем за 15 секунд, эффективно управлять VLFS и поддерживать производительноть файлового ввода-вывода на уровне пропускной способности аппаратуры, временами достигающей 300 Mb/s.

XFS предоставляется клиентам с декабря 1994 (с IRIX 5.3), она станет ФС, по умолчанию устанавливаемойна всех SGI системах, начиная с IRIX 6.2 (начало 1996). XFS достаточно стабильна и будет использоваться на всех серверах SGI и на многих сайтах наших клиентов. Далее в обзоре мы покажем, почему мы решили сосредоточиться на масштабируемост в реализации XFS, продемонстрируе результаты этого решения. Мы начнем с того, что объясним, почему мы решили разработать XFS с нуля, вместо того, чтобы доработать старую файловую систему IRIX. Затем мы опишем общую архитектуру XFS, расскажем о специфичных механизмах, которые позволяют ей масштабировать свои возможности и производительноть. В заключении мы представим результаты испытаний XFS на реальных вычислительный комплексах, демонстрирующие успех проекта.

Почему мы начали с нуля?


В исследованиях, посвященных файловым системам, уже давно предрекалось скорое прекращение роста производительноти подсистем ввода-вывода, и мы в SGI также столкнулись с этим явлением. Проблемой стала не производительноть ввода-вывода нашей аппаратуры, а ограничения, наложенный старой файловой системой IRIX – EFS. EFS архитектурно подобна Berkley FFS, однако она использует зоны (extents) вместо отдельных блоков для распределения дискового пространства и ввода-вывода. EFS была не в состоянии поддерживать файловые системы размером более 8 Gb, файлы длиннее двух гигабайт или предоставлять приложению канал ввода-вывода с производительнотью на уровне пропускной способности аппаратуры. EFS не была спроектирована для работы на больших вычислительных системах, и ее возможностей уже не хватало для того, чтобы предоставить приложениям все возможности нового оборудования. Пока мы рассматривали направления возможного усовершенствоваия EFS, требования пользователей возросли настолько, что мы решили заменить ее полностью новой файловой системой.

Пример задачи, предъявляющей повышенные требования к файловой системе – размещение на диске несжатого видео в реальном времени. Для ее решения требуется пропускная способность приблизительно в 30 Mb/s на один поток, а один час такого видео занимает 108 Gb дискового пространства. В то время, как большинство людей работают со сжатым видео, и их потребности в производительноти подсистемы ввода-вывода удовлетворить относительно просто, многие клиенты SGI, к примеру, профессиональноработающие в данное области, нуждаются в возможности обработки несжатых видео-потоков. Другой пример хранения видео, повлиявший на дизайн XFS – film-сервер, вроде развертываемогоTimerWarner в Orlando. Этот сервер хранит тысячи сжатых фильмов. 1000 типичных файлов занимают около 2.7 Tb дискового пространства. Одновременное проигрывание двухсот 0.5 Mb/s MPEG-потоков требует пропускной способности файлового ввода-вывода в 100 Mb/s. Задачи управления базами данных и научные вычисления также предъявляют высокие требования к подсистеме I/O, причем масштабируемост и производительноть файловой системы здесь порой важнее, чем быстродействие CPU. Требованиями, которые мы получили из этих примеров, были: поддержка терабайтных дисковых разделов, огромных файлов и пропускной способность ввода-вывода в сотни мегабайт в секунду.

Мы также должны были гарантировать, что файловая система сможет полностью раскрыть возможности аппаратного обеспечения современных ЭВМ с минимальными накладными расходами. Сегодня high-end системы SGI демонстрируют производительноть ввода-вывода более чем в 500 Mb/s. Мы должны были сделать такую пропускную способность доступной приложениям, использующим файловую систему. Кроме того, требовалось реализовать XFS таким образом, чтобы она не расходовала лишние (unreasonable) память и процессорное время.



© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.