четверг, 2 июня 2011 г.

Кратко о GPFS

Данные выкладки сделаны при помощи RedBook "GPFS: A Parallel File System" и презентации Игоря Коковкина

Требования к файловой системе со стороны приложений:
  • Требуется обеспечить большое количество одновременных операций записей с большого количества узлов
  • Динамический запуск приложений на различных узлах кластера требует доступа к данным, где бы эти узлы не находились.
  • Требуется высокая доступность данных и свойства обычной файловой системы.
GPFS (General Parallel File System) - еще один тип файловой системы, доступной для кластерной среды, целью которой является обеспечение лучшей производительности и масштабирования.
Характеризуется наличием общего диска и одновременной записью данных и метаданных со всех узлов.  Другими словами:
GPFS - высокодоступная кластерная архитектура
GPFS - одновременный доступ к общим дискам в едином пространстве имен
GPFS - возможность распараллеливания нагрузки высокопроизводительных вычислений

Главное отличие -  отсутствие единой точки отказа - централизованного сервера хранения метаданных

Поддерживаемые ОС:
  • AIX
  • Linux
  • Windiws
Масштабируемость и производительность:
Файловая система
Дисковый ввод/вывод
263 файлов для каждой ФС 134 Гб/с для AIX
Протестированный размер ФС = 4 Пб 64 Гб/с для Linux



 Схематично взаимодействие между уровнями показано на рисунке ниже:

Важная деталь картинки - взаимодейсвие GPFS с локальными дисками с данными происходит через VSD - Virtual Shared Disk. PSSP - Parallel Systems Support Programs
При внедрении GPFS представляется в виде
  • расширения ядра
  • многопоточного демона (mmfsd)
  • набора комманд
Расширения ядра необходимы для Virtual File System уровня, который представляет GPFS для приложений как локальную ФС. 
Демон реализует специфичные функции внутри GPFS, в целом управляя данными и метаданными (выделение дискового пространства, определение доступа к данным, операции ввода/вывода) Демон запускается на каждом узле в GPFS домене, а каждый узел с запущенной GPFS использует VSD расширения для доступа к дискам. 
Помимо описанных выше ролей (personalities), демон также может быть:
  1. Configuration Manager (обычно это 1й запущенный демон в пуле), который отвечает за назначение задач внутри GPFS пула, например, за выбор Stripe Group Manager для каждой ФС
  2. Stripe Group Manager (1 на систему), который контролирует эффективное использование дисков, выделение ресурсов, также данный менеджер участвует в mount/unmount обработки совместно с узлом, инициирующим запрос. 
  3. Token Manager Server (1 на систему), возможны 2 случая, когда приложение хочет получить доступ к  
    1. локальному файлу, оно должно получить token от локального Token Manager, который расположен на каждом GPFS узле в качестве расширения ядра. Оповещения ото всех Token Manager-ов стекаются на Token Manager Server
    2. удаленному файлу, в случае, если другие узлы тоже имеют токены к этому файлу, Token Manager Server присылает на локальный Token Manager список, а "договариваться" с ними должен именно локальный Token Manager, а не Server.
  4. Metadata Manager (1 демон на файл или группу файлов)

GPFS использует стандартную i-node архитектуру для выделения файлов. i-node - некая структура, содержащая информацию о файле: у каждого файла как минимум один i-node, а каждый i-node содержит информацию только об одном файле. i-node содержит такие атрибуты, как размер, владелец, права доступа и информацию для размещения блоко данных файла.

Преимущества GPFS
  1. Отсутствие единой точки отказа
  2. Все узлы находятся в составе кластера
  3. Блочный доступ к устройствам хранения
  4. Доступ к дискам по SAN, Infiniband и Ethernet сети
  5. Возможность расширения или уменьшения файловой системы без остановки
  6. Оптимизация сетевой инфраструктуры