Данные выкладки сделаны при помощи 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), демон также может быть:
- Configuration Manager (обычно это 1й запущенный демон в пуле), который отвечает за назначение задач внутри GPFS пула, например, за выбор Stripe Group Manager для каждой ФС
- Stripe Group Manager (1 на систему), который контролирует эффективное использование дисков, выделение ресурсов, также данный менеджер участвует в mount/unmount обработки совместно с узлом, инициирующим запрос.
- Token Manager Server (1 на систему), возможны 2 случая, когда приложение хочет получить доступ к
- локальному файлу, оно должно получить token от локального Token Manager, который расположен на каждом GPFS узле в качестве расширения ядра. Оповещения ото всех Token Manager-ов стекаются на Token Manager Server
- удаленному файлу, в случае, если другие узлы тоже имеют токены к этому файлу, Token Manager Server присылает на локальный Token Manager список, а "договариваться" с ними должен именно локальный Token Manager, а не Server.
- Metadata Manager (1 демон на файл или группу файлов)
GPFS использует стандартную i-node архитектуру для выделения файлов. i-node - некая структура, содержащая информацию о файле: у каждого файла как минимум один i-node, а каждый i-node содержит информацию только об одном файле. i-node содержит такие атрибуты, как размер, владелец, права доступа и информацию для размещения блоко данных файла.
Преимущества GPFS
- Отсутствие единой точки отказа
- Все узлы находятся в составе кластера
- Блочный доступ к устройствам хранения
- Доступ к дискам по SAN, Infiniband и Ethernet сети
- Возможность расширения или уменьшения файловой системы без остановки
- Оптимизация сетевой инфраструктуры