Jump to content

Параллельная виртуальная файловая система

Оригинальный автор(ы) Университет Клемсона , Аргоннская национальная лаборатория , Суперкомпьютерный центр Огайо
Разработчик(и) Уолт Лигон, Роб Росс, Фил Карнс, Пит Вайкофф, Нил Миллер, Роб Лэтэм, Сэм Лэнг, Брэд Сеттлмайер
Первоначальный выпуск 2003
Стабильная версия
2.8.2 / 1 января 2010 г .; 14 лет назад ( 01.01.2010 )
Написано в С
Операционная система Ядро Linux
Лицензия LGPL
Веб-сайт сеть .архив .org /веб /20160701052501 /http: //www .pvfs .org /

Параллельная виртуальная файловая система ( PVFS ) — это с открытым исходным кодом параллельная файловая система . Параллельная файловая система — это тип распределенной файловой системы , которая распределяет файловые данные по нескольким серверам и обеспечивает одновременный доступ для нескольких задач параллельного приложения. PVFS была разработана для использования в крупномасштабных кластерных вычислениях . PVFS ориентирован на высокопроизводительный доступ к большим наборам данных. Он состоит из серверного процесса и клиентской библиотеки, которые полностью написаны на основе кода пользовательского уровня. Модуль ядра Linux и процесс pvfs-client позволяют монтировать файловую систему и использовать ее со стандартными утилитами. Клиентская библиотека обеспечивает высокопроизводительный доступ через интерфейс передачи сообщений (MPI). PVFS разрабатывается совместно Лабораторией исследований параллельной архитектуры Университета Клемсона , Отделением математики и информатики Аргоннской национальной лаборатории и Суперкомпьютерным центром Огайо . Разработка PVFS финансировалась Центром космических полетов имени Годдарда НАСА. Управления науки Министерства энергетики США , Программа перспективных научных компьютерных исследований , программы NSF PACI и HECURA, а также другие государственные и частные агентства. PVFS теперь известна как OrangeFS в своей новейшей ветке разработки.

PVFS была впервые разработана в 1993 году Уолтом Лигоном и Эриком Блюмером как параллельная файловая система для параллельной виртуальной машины (PVM). [1] в рамках гранта НАСА на изучение моделей ввода-вывода параллельных программ. PVFS версии 0 была основана на Vesta, параллельной файловой системе, разработанной в исследовательском центре IBM TJ Watson . [2] Начиная с 1994 года Роб Росс переписал PVFS для использования TCP/IP и отошел от многих первоначальных конструктивных особенностей Vesta. PVFS версии 1 была ориентирована на кластер рабочих станций DEC Alpha, объединенных в сеть с использованием коммутируемого FDDI . Как и Vesta, PVFS распределяла данные по нескольким серверам и разрешала запросы ввода-вывода на основе представления файла, описывающего шаблон пошагового доступа. В отличие от Весты, чередование и вид не зависели от общего размера записи. Исследования Росса были сосредоточены на планировании дискового ввода-вывода, когда несколько клиентов обращались к одному и тому же файлу. [3] Предыдущие результаты показали, что планирование в соответствии с наилучшей возможной схемой доступа к диску является предпочтительным. Росс показал, что это зависит от ряда факторов, включая относительную скорость сети и детали просмотра файлов. В некоторых случаях планирование на основе сетевого трафика было предпочтительным, поэтому динамически адаптируемое расписание обеспечивало наилучшую общую производительность. [4]

В конце 1994 года Лигон встретился с Томасом Стерлингом и Джоном Дорбандом в Центре космических полетов Годдарда (GSFC) и обсудил их планы по созданию первого компьютера «Беовульф» . [5] Было решено, что PVFS будет портирована на Linux и появится на новой машине. В течение следующих нескольких лет Лигон и Росс работали с группой GSFC, в которую входили Дональд Беккер, Дэн Ридж и Эрик Хендрикс. В 1997 году на встрече кластера в Пасадене компания CA Sterling попросила выпустить PVFS как пакет с открытым исходным кодом. [6]

В 1999 году Лигон предложил разработать новую версию PVFS, первоначально получившую название PVFS2000, а затем PVFS2. Первоначально дизайн разработали Лигон, Росс и Фил Карнс. Росс защитил докторскую диссертацию в 2000 году и перешел в Аргоннскую национальную лабораторию , а проектирование и внедрение осуществляли Лигон, Карнс, Дейл Уитчёрч и Хариш Рамачандран из Университета Клемсона , Росс, Нил Миллер и Роб Лэтэм из Аргоннской национальной лаборатории , а также Пит Вайкофф в Суперкомпьютерном центре Огайо. [7] Новая файловая система была выпущена в 2003 году. Новый дизайн включал в себя объектные серверы, распределенные метаданные, представления на основе MPI, поддержку нескольких типов сетей и архитектуру программного обеспечения, упрощающую экспериментирование и расширяемость.

Версия 1 PVFS была прекращена в 2005 году. Версия 2 PVFS до сих пор поддерживается Clemson и Argonne. Карнс защитил докторскую диссертацию в 2006 году и присоединился к Axicom, Inc., где PVFS была развернута на нескольких тысячах узлов для интеллектуального анализа данных. В 2008 году Карнс переехал в Аргонн и продолжает работать над PVFS вместе с Россом, Лэтэмом и Сэмом Лэнгом. Брэд Сеттлмайер разработал подсистему зеркалирования в Клемсоне, а затем детальное моделирование PVFS, используемое для исследования новых разработок. Сеттлмайер сейчас находится в Национальной лаборатории Ок-Ридж . в 2007 году Аргонн начал портировать PVFS для использования на IBM Blue Gene /P. [8] В 2008 году Клемсон начал разработку расширений для поддержки больших каталогов с небольшими файлами, улучшений безопасности и возможностей резервирования. Поскольку многие из этих целей противоречили разработке Blue Gene, была создана вторая ветвь исходного дерева CVS, получившая название «Orange», а исходная ветвь получила название «Blue». PVFS и OrangeFS очень тесно связаны друг с другом, но представляют две разные группы требований пользователей. Большинство исправлений и обновлений применяются к обеим веткам. По состоянию на 2011 год OrangeFS является основным направлением разработки.

В кластере, использующем PVFS, узлы обозначаются как один или несколько из следующих: клиент, сервер данных, сервер метаданных. Серверы данных содержат данные файлов. Серверы метаданных содержат метаданные, включая статистическую информацию, атрибуты и дескрипторы файлов данных, а также записи каталогов. Клиенты запускают приложения, использующие файловую систему, отправляя запросы серверам по сети.

Объектно-ориентированный дизайн

[ редактировать ]

PVFS имеет объектно-ориентированную структуру, то есть все запросы сервера PVFS включают объекты, называемые пространствами данных. Пространство данных может использоваться для хранения данных файла, метаданных файла, метаданных каталога, записей каталога или символических ссылок. Каждое пространство данных в файловой системе имеет уникальный дескриптор. Любой клиент или сервер может узнать, на каком сервере находится пространство данных, на основе дескриптора. Пространство данных состоит из двух компонентов: байтового потока и набора пар ключ/значение. Байтовый поток представляет собой упорядоченную последовательность байтов, обычно используемую для хранения данных файла, а пары ключ/значение обычно используются для хранения метаданных. Объектно-ориентированный дизайн стал типичным для многих распределенных файловых систем, включая Lustre , Panasas и pNFS .

Разделение данных и метаданных

[ редактировать ]

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

Запросы на основе MPI

[ редактировать ]

Когда клиентская программа запрашивает данные из PVFS, она может предоставить описание данных, основанное на MPI_Datatypes. Эта возможность позволяет напрямую реализовывать представления файлов MPI файловой системой. MPI_Datatypes может описывать сложные несмежные шаблоны данных. Сервер PVFS и коды данных реализуют потоки данных, которые эффективно передают данные между несколькими серверами и клиентами.

Поддержка нескольких сетей

[ редактировать ]

PVFS использует сетевой уровень под названием BMI, который обеспечивает неблокирующий интерфейс сообщений, разработанный специально для файловых систем. BMI имеет несколько модулей реализации для ряда различных сетей, используемых в высокопроизводительных вычислениях, включая TCP/IP, Myrinet , Infiniband и Portals . [9]

Серверы без сохранения состояния (без блокировки)

[ редактировать ]

Серверы PVFS спроектированы таким образом, что они не разделяют какое-либо состояние друг с другом или с клиентами. В случае сбоя одного сервера другой можно легко перезапустить на его месте. Обновления выполняются без использования блокировок.

Реализация на уровне пользователя

[ редактировать ]

Клиенты и серверы PVFS работают на уровне пользователя. Модификации ядра не нужны. Существует дополнительный модуль ядра, который позволяет монтировать файловую систему PVFS, как любую другую файловую систему, или программы могут напрямую подключаться к пользовательскому интерфейсу, такому как MPI-IO или Posix -подобному интерфейсу. Эти функции делают PVFS простой в установке и менее склонной к сбоям в системе.

Интерфейс системного уровня

[ редактировать ]

Интерфейс PVFS предназначен для интеграции на уровне системы. Он имеет сходство с Linux VFS , что позволяет легко реализовать его как монтируемую файловую систему, но в равной степени адаптируется к интерфейсам пользовательского уровня, таким как MPI-IO или Posix -подобные интерфейсы. Он раскрывает многие функции базовой файловой системы, чтобы интерфейсы могли при желании ими воспользоваться. [10] [11]

Архитектура

[ редактировать ]

PVFS состоит из 4 основных компонентов и ряда служебных программ. Компонентами являются сервер PVFS2, pvfslib, ядро ​​клиента PVFS и модуль ядра PVFS. К утилитам относятся инструмент управления кармой, утилиты (например, pvfs-ping, pvfs-ls, pvfs-cp и т. д.), которые работают непосредственно с файловой системой без использования модуля ядра (в основном для обслуживания и тестирования). Еще одним ключевым моментом проектирования является протокол PVFS, который описывает сообщения, передаваемые между клиентом и сервером, хотя это не является строго компонентом.

PVFS2-сервер

[ редактировать ]

Сервер PVFS работает как процесс на узле, назначенном узлом ввода-вывода. Узлы ввода-вывода часто являются выделенными узлами, но могут быть и обычными узлами, на которых также выполняются задачи приложений. Сервер PVFS обычно работает от имени пользователя root, но при желании его можно запустить и от имени пользователя. Каждый сервер может управлять несколькими отдельными файловыми системами и предназначен для работы в качестве сервера метаданных, сервера данных или того и другого. Вся конфигурация контролируется файлом конфигурации, указанным в командной строке, и все серверы, управляющие данной файловой системой, используют один и тот же файл конфигурации. Сервер получает запросы по сети, выполняет запрос, который может включать дисковый ввод-вывод, и отвечает исходному запрашивающему. Запросы обычно поступают от клиентских узлов, на которых выполняются задачи приложения, но могут поступать и от других серверов. Сервер состоит из процессора запросов, уровня заданий, уровней Trove, BMI и потока.

Обработчик запросов

[ редактировать ]

Процессор запросов состоит из основного цикла серверного процесса и ряда конечных автоматов. Конечные автоматы основаны на простом языке, разработанном для PVFS, который управляет параллелизмом внутри сервера и клиента. Конечный автомат состоит из нескольких состояний, каждое из которых либо запускает функцию действия состояния C, либо вызывает вложенный (подпрограммный) конечный автомат. В любом случае коды возврата выбирают, в какое состояние перейти дальше. Функции действий состояния обычно отправляют задание через уровень задания, который выполняет тот или иной ввод-вывод через Trove или BMI. Задания неблокируются, поэтому после выдачи задания выполнение конечного автомата откладывается, чтобы другой конечный автомат мог запустить другой запрос. Когда задания завершаются, основной цикл перезапускает связанный конечный автомат. Обработчик запросов имеет конечные автоматы для каждого из различных типов запросов, определенных в протоколе запросов PVFS, а также ряд вложенных конечных автоматов, используемых внутри. Архитектура конечного автомата позволяет относительно легко добавлять новые запросы к серверу для добавления функций или оптимизации для конкретных ситуаций.

Слой задания

[ редактировать ]

Уровень заданий предоставляет общий интерфейс для отправки заданий Trove, BMI и Flow и отчетов об их завершении. Он также реализует планировщик запросов как неблокирующее задание, которое записывает, какие запросы к каким объектам выполняются, и предотвращает ошибки согласованности из-за одновременной работы с одними и теми же данными файла.

Trove управляет вводом-выводом объектов, хранящихся на локальном сервере. Trove работает с коллекциями пространств данных. Коллекция имеет собственное независимое пространство дескрипторов и используется для реализации отдельных файловых систем PVFS. Пространство данных представляет собой объект PVFS, имеет свой собственный уникальный (внутри коллекции) дескриптор и хранится на одном сервере. Дескрипторы сопоставляются с серверами через таблицу в файле конфигурации. Пространство данных состоит из двух частей: байтового потока и набора пар ключ/значение. Байтовый поток представляет собой последовательность байтов неопределенной длины и используется для хранения данных файла, обычно в файле в локальной файловой системе. Пары ключ/значение используются для хранения метаданных, атрибутов и записей каталога. Trove имеет четко определенный интерфейс и может быть реализован различными способами. На сегодняшний день единственной реализацией была реализация Trove-dbfs, которая хранит потоки байтов в файлах и пары ключ/значение в базе данных Berkeley DB . [12] Операции Trove неблокируются, API предоставляет функции публикации для чтения или записи различных компонентов и функции для проверки или ожидания завершения.

PVFS-клиент-ядро

[ редактировать ]

Модуль ядра PVFS

[ редактировать ]

См. также

[ редактировать ]
  1. ^ А. Блумер и В. Б. Лигон, «Параллельная виртуальная файловая система», собрание группы пользователей PVM, 1994 г., 1994 г.
  2. ^ Питер Ф. Корбетт, Дрор Г. Фейтельсон, Параллельная файловая система Vesta, Транзакции ACM в компьютерных системах (TOCS), v.14 n.3, стр. 225-264, август 1996 г.
  3. ^ WB Ligon, III и RB Ross, «Реализация и производительность параллельной файловой системы для высокопроизводительных распределенных приложений», 5-й симпозиум IEEE по высокопроизводительным распределенным вычислениям, август 1996 г.
  4. ^ WB Ligon, III и RB Ross, «Планирование на стороне сервера в кластерных системах параллельного ввода-вывода», «Параллельный ввод-вывод для кластерных вычислений», редакторы Кристофа Серена и Хай Джина, страницы 157-177, Kogan Page Science, сентябрь, 2003.
  5. ^ WB Ligon III, Р.Б. Росс, Д. Беккер, П. Мерки, «Беовульф: недорогие суперкомпьютеры с использованием Linux», специальный выпуск журнала IEEE Software о Linux, том 16, номер 1, страница 79, январь 1999 г.
  6. ^ Уолт Лигон и Роб Росс, «Параллельный ввод-вывод и параллельная виртуальная файловая система», «Кластерные вычисления Беовульфа с Linux», 2-е издание, Уильям Гропп, Юинг Ласк и Томас Стерлинг, редакторы, страницы 489–530, MIT Press, ноябрь , 2003.
  7. ^ П.Х. Карнс, В.Б. Лигон III, Р.Б. Росс и Р. Такур, «PVFS: параллельная файловая система для кластеров Linux», Extreme Linux Workshop, Атланта, октябрь 2000 г. Награда за лучший доклад конференции.
  8. ^ Сэмюэл Лэнг, Филип Карнс, Роберт Лэтэм, Роберт Росс, Кевин Хармс, Уильям Олкок, «Проблемы производительности ввода-вывода в масштабе лидерства», Proceedings of Supercomputing, 2009
  9. ^ Филип Х. Карнс, Уолтер Б. III, Роберт Росс, Пит Вайкофф, «BMI: уровень сетевой абстракции для параллельного ввода-вывода», Труды IPDPS '05, 2005 г.
  10. ^ М. Вилаяннур, С. Ланг, Р. Росс, Р. Клундт, Л. Уорд, «Расширение интерфейса ввода-вывода POSIX: взгляд на параллельную файловую систему», Технический меморандум ANL/MCS-TM-302, 2008 г.
  11. ^ Свапнил А. Патил, Гарт А. Гибсон, Грегори Р. Гангер, Хулио Лопес, Майло Полте, Виттават Тантисиродж, Лин Сяо, «В поисках API для масштабируемых файловых систем: под столом или над ним?», USENIX HotCloud Семинар 2009.
  12. ^ RCE 35: Параллельная виртуальная файловая система PVFS
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: af9c68af147206846b03e39b1b8b997f__1720832820
URL1:https://arc.ask3.ru/arc/aa/af/7f/af9c68af147206846b03e39b1b8b997f.html
Заголовок, (Title) документа по адресу, URL1:
Parallel Virtual File System - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)