На проходящей в эти дни конференции Supercomputing 2012 представлен релиз распределенной файловой системы XtreemFS 1.4, реализация которой распространяется под лицензией BSD. С момента прошлого выпуска было внесено несколько тысяч изменений, на тестирование и стабилизацию которых был потрачен примерно год.
XtreemFS позволяет организовать работу хранилища с распределением данных по нескольким серверам. Для обеспечения отказоустойчивости и обеспечения параллельного доступа данные могут реплицироваться между узлами. Процесс репликации оптимизирован для использования низкоскоростных соединений и возможных временных обрывов связи. Например, при помощи XtreemFS можно обеспечить синхронизацию хранилища на нескольких серверах в разных дата-центрах. Для расширения размера хранилища достаточно подключить к распределенному хранилищу дополнительные узлы хранения. Предоставляется возможность гибкого контроля и управления работой ФС через подключение плагинов. Возможно создание снапшотов и бэкапа метаданных в асинхронном режиме. Для защиты передаваемых по сети данных от перехвата поддерживается использование SSL.
Серверная часть XtreemFS, обеспечивающая управление метаданными, написана на языке Java. Клиент для работы с XtreemFS написан на С++ и доступен для Unix-подобных ОС, Windows и Mac OS X. Клиентская часть ФС работает в пространстве пользователя (user-space) с использованием FUSE. Для приложений работа с XtreemFS мало чем отличается от NFS (XtreemFS может использоваться как замена NFS), так же нет отличий от того, является ли файл реплицированным на локальную систему или доступен только с удаленного хоста.
Из новшеств, добавленных в XtreemFS 1.4, можно отметить:
- Асинхронный режим записи. При монтировании раздела с опцией "--enable-async-writes" все операции записи будут выполнятся в фоне без блокировки до завершения записи, что позволяет добиться заметного увеличения пропускной способности;
- Поддержка интеграции с открытой платформой для распределённой обработки данных Apache Hadoop. XtreemFS теперь может использоваться для замены HDFS в конфигурациях Hadoop;
- Поставка библиотеки libxtreemfs для языка Java, позволяющей получить доступ к разделам XtreemFS напрямую из Java-приложений;
- Интеграция алгоритма Vivaldi для оптимального выбора хоста при осуществлении репликации данных в распределённой сети. Ближайший к клиенту хост выбирается на основании задержки доставки пакетов;
- Полностью переписанный клиент для платформы Windows. Новый клиент написан на языке C++ с использованием libxtreemfs и Callback FS от компании EldoS;
- Увеличение стабильности работы клиентских и серверных частей. В частности, устранены наблюдаемые в прошлых выпусках крахи клиента при проблемах с передачей данных по сети и недоработки в реализации Read/Write репликации файлов;
- Расширенные функции выбора хранилищ объектов (OSD). Для OSD можно привязывать собственные атрибуты, на основании которых определять лимиты на размещение файлов;
- Обновлённая реализация репликации DIR/MRC, в том числе с поддержкой механизмов обеспечения отказоустойчивости в процессе репликации DIR. Тем не менее, репликация DIR/MRC всё ещё имеет статус экспериментальной возможности;
- Из областей, которые могут оказаться интересны для реализации силами сообщества отмечаются поддержка интеграции с chef или puppet для автоматизации развёртывания XtreemFS; разработка клиентского GUI на Qt; создание на базе libxtreemfs интерфейса, совместимого с API Amazon S3; интеграция с Qemu/KVM на базе C++ версии библиотеки libxtreemfs.
|