Анонсировав первый кандидат в релизы ядра Linux 4.6, Линус Торвальдс сообщил о принятии в последний момент патчей с реализацией распределённой файловой системы OrangeFS, которая рассчитана на применение в высокотехнологичных high-end-серверах и кластерах для достижения максимальной производительности доступа к данным из распараллеленных приложений.
В качестве основы OrangeFS использованы наработки проекта PVFS (Parallel Virtual File System), развиваемого с 1993 года при поддержке NASA для изучения методов эффективной обработки ввода/вывода в параллельно выполняемых кластерных системах. PVFS создавалась для замены NFS в кластерных системах и отличается наличием отдельного сервера обработки метаданных, координирующего обращение к данным, размещаемым на специальных узлах хранения.
Разработка OrangeFS была нацелена на развитие расширенных возможностей, отсутствующих в основном варианте PVFS, и на использование в областях, недостаточно полно поддерживаемых PVFS. Из типичных областей применения OrangeFS называются высокопроизводительные вычисления (HPC), обработка больших объёмов данных (BigData), потоковое вещания видео, решение задач геномики и биоинформатики. Из сходных с PVFS характеристик отмечается производительность, надёжость, оптимизация для MPI-IO, независимость от оборудования и простота развёртывания.
Основные особенности OrangeFS:
- Распределение данных между несколькими файловыми серверами;
- Поддержка одновременного доступа нескольких клиентов;
- Использование существующих на серверах локальных файловых систем и методов доступа для хранения данных и метаданных.
- Реализация в пространстве пользователя с выносом базовых функций в модуль ядра;
- Поддержка MPI;
- Работа без сохранения состояния (stateless, сервер не обслуживает такие операции как открытие файлов);
- Поддержка кэширования наиболее востребованных данных на стороне клиента;
- Наличие гибкого механизма контроля доступа на основе ACL и заверенных учётных записей (signed credentials);
- Настраиваемый уровень избыточности хранения данных, позволяющий найти оптимальный баланс между отказоустойчивостью, производительностью и затратами на оборудование. Разные файлы могут иметь разные уровни избыточности хранения. Для достижения максимальной производительности хранение с избыточностью может быть полностью отключено.