Сеть из файлов - Продолжение

Начало статьи

Похмельная ФС

Файловая система POHMELFS http://www.ioremap.net/projects/pohmelfs/, созданная Евгением Поляковым и уже включенная в ядро Linux, сочетает в себе лучшие черты как сетевых, так и кластерных ФС. Ее основные особенности:

  • Согласованный кэш данных и метаданных для всех клиентов (решение основной проблемы NFS).
  • Асинхронный режим работы.
  • Прозрачное зеркалирование данных на несколько узлов сети (этакий сетевой RAID) с возможностью параллельного получения данных с них.
  • Высокая производительность.
  • Возможность на лету добавлять и удалять серверы хранения без перемонтирования ресурса.
  • Встроенные средства аутентификации и шифрования.
  • ЭКО в Москве

Как и NFS, POHMELFS всего лишь протокол, поэтому она априори медленнее кластерных файловых систем и к тому же имеет примитивный механизм блокировок, не позволяющий блокировать для записи только часть файла или его метаданных.

node:

ip.port = 7777

ip_adress = 192.168. 1.2 number = 0

name = nodel

cluster = ocfs2

node:

ip.port = 7777

ip.adress = 192.168.1.3 number = 1

name = node2

cluster = ocfs2

cluster:

node_count = 2

name = ocfs2

Luste, Ceph и GlusterFS

В распределенных файловых системах используется совершенно иной подход к управлению данными, смысл которого не в том, чтобы собрать все яйца в одну корзину и обеспечить эффективный механизм их совместного использования, как это сделано в кластерных ФС, а в том, чтобы размазать данные по как можно большему количеству серверов, да так, чтобы клиенты считали их одним целым. За многие годы исследований было предложено множество самых разнообразных подходов к реализации этой идеи, однако наибольшее распространение получила архитектура, на которой построена файловая система Lustre.

Lustre (www.lustre.com) была разработана компанией Cluster File Systems, которая была поглощена Sun Microsystems в 2007 году. Lustre (название которой произошло от слияния слов Linux и Cluster) является полностью открытой разработкой, которую можно использовать для любых целей безо всяких лицензионных отчислений.

Главная особенность и достоинство Lustre — это многоуровневая система обработки запросов доступа к данным, которая предполагает наличие нескольких типов серверов, каждый из которых выполняет определенную роль. Всего существует три типа серверов: 1. Сервер метаданных (MDS), который отвечает за хранение метаданных файлов, таких как имя, размер, атрибуты, содержимое каталогов и т.д. Это первое звено на пути обработки запроса на доступ к данным. Задача сервера метаданных — принять запрос и вернуть информацию о файле и/или ссылку на «объект», который хранится на сервере хранения.

Сервер хранения объектов (0SS). Здесь хранится содержимое файлов, то есть объекты, адресуемые сервером метаданных. Когда последний получает запрос на чтение/запись определенного файла, он отдает клиенту ссылку на объект файла, которая состоит из адреса сервера хранения и идентификатора объекта, после чего клиент самостоятельно запрашивает содержимое объекта у сервера хранения. Каждый такой сервер может иметь от двух до восьми целей хранения (0ST), которые могут быть либо жесткими дисками, либо любыми другими блочными устройствами, включая виртуальные образы.

Сервер управления (MGS). Он ответственен за хранение конфигурации всей файловой системы и отвечает за ее распространение между остальными участниками. Обычно MGS совмещается с сервером метаданных. Конфигурация кластера, использующего файловую систему Lustre, обычно выглядит следующим образом: несколько десятков или сотен машин выполняют роли серверов хранения, еще несколько машин работают в качестве серверов метаданных. Клиенты, желающие получить доступ к файловой системе, подключают (монтируют) ее, используя адрес головного сервера метаданных. После этого содержимое ФС становится видным в их пространстве имен клиента (например, в каталоге /lustre). При попытке прочитать/изменить какой-либо файл в этом каталоге происходит запрос серверу метаданных, который находит его информацию в своей базе данных и отправляет клиенту его атрибуты и ссылку на сервер, содержащий необходимый объект. При заполнении файловой системы информацией файлы (объекты) равномерно распределяются между всеми серверами хранения, а также дублируются на случай выхода одного из них из строя (в этом случае сервер метаданных автоматически изменит свою базу данных так, чтобы ссылки указывали на резервный сервер). Такая многоуровневая архитектура делает Lustre чрезвычайно масштабируемой и стойкой к сбоям.

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

Кроме этого Lustre поддерживает возможность наложения квот для каждого клиента, реализует совместимую со стандартом P0SIX систему разделения прав доступа, позволяет настроить аутентификацию клиентов и имеет гибкий механизм резервного копирования. Однако у Lustre есть и несколько проблем, которые зачастую приводят к тому, что для расширения файловой системы или при выходе из строя одного из узлов, ее приходится останавливать и переконфигурировать. Поэтому за последнее время родилось несколько проектов, призванных устранить эти недостатки. Самые заметные из них — это файловые системы Ceph и GlasterFS. Ceph http://ceph.newdream.net/ была представлена миру Сэйджем Вилом в ноябре 2007 года, и позиционировалась, как файловая система, основанная на идеях Lustre, но лишенная ее недостатков. Первая версия системы была основана на Fuse, но позже автор переписал ее в виде модуля ядра Linux, который официально стал частью Linux, начиная с версии 2.6.34. Основное отличие Ceph от своего прародителя заключается в ее высокой интеллектуальности. Единожды настроив кластер, можно на очень долгое время забыть о его поддержке. Файловая система будет сама производить ребалансировку нагрузки, репликацию данных и их миграцию при наращивании количества серверов. Как говорит сам автор, начав с небольшого кластера, состоящего из десятка машин, вы можете постепенно добавлять в систему все новые машины, увеличивая размер кластера в десятки раз, и это не потребует серьезного вмешательства администратора. Все будет «просто работать».

Второе достоинство Ceph — это простота развертывания. Большинство компонентов ФС реализованы в пространстве пользователя, а это значит, что при добавлении нового узла в кластер потребуется всего лишь установить на машину Linux-дистрибутив, несколько пакетов и исправить один конфигурационный файл. Благодаря наличию официального клиента файловой системы, основанного на Fuse, сделать клиентом ФС можно не только Linux- машину, но и BSD или Mac OS X.

Выводы

Распределенные файловые системы — это будущее систем хранения информации. Привычные нам настольные приложения постепенно смещаются в облака, где для хранения информации используются гигантские распределенные хранилища, состоящие из сотен и тысяч дешевых серверов. Поэтому умение общаться с технологиями, лежащими в основе таких хранилищ, будет большим плюсом к портфолио любого сисадмина.

Похожие статьи Меню Опрос Фото Популярное