Lustre (сетевая файловая система)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Lustre
Тип

Distributed file system

Разработчики

Oracle

Операционная система

Linux

Последняя версия

1.8.8

Тестовая версия

2.0.0 (30 августа 2010)

Лицензия

GNU GPL

Сайт

http://lustre.org

Lustre — это распределенная файловая система массового параллелизма, используемая обычно для крупномасштабных кластерных вычислений. Название Lustre является контаминацией, образованной словами Linux и cluster.[1] Реализованный под лицензией GNU GPL, проект предоставляет высокопроизводительную файловую систему для кластеров с десятками тысяч узлов сети и петабайтными хранилищами информации.

Файловые системы Lustre используются в компьютерных кластерах, начиная от небольших кластеров рабочих групп и заканчивая масштабными географически распределенными кластерами. Пятнадцать суперкомпьютеров из мирового Топ 30 используют файловые системы Lustre, в том числе самый быстрый в мире суперкомпьютер из TOP500, K computer.[2]

Файловые системы Lustre могут поддерживать десятки тысяч клиентских систем, десятки петабайт (PBs) памяти для хранения данных и пропускную способность ввода-вывода в сотни гигабайт в секунду (GB/s). Благодаря высокой масштабируемости Lustre, такие области бизнеса, как провайдеры Интернет, финансовые организации, индустрия нефти и газа устанавливают файловые системы Lustre в своих центрах обработки данных.[3]

История[править | править вики-текст]

Архитектура файловой системы Lustre была разработана в рамках исследовательского проекта в 1999 Питером Браамом (Peter Braam), старшим научным сотрудником Университета Карнеги — Меллон. Браам покинул его, чтобы основать собственную компанию Cluster File Systems, реализовавшую Lustre 1.0 в 2003. В 2007 Sun Microsystems поглотила Cluster File Systems Inc.[4][5] Sun включила Lustre в свой пакет программного обеспечения для высокопроизводительных систем, намереваясь использовать преимущества технологии Lustre в файловой системе Sun ZFS и операционной системе Solaris. В ноябре 2008, Браам покинул Sun Microsystems для работы над другой файловой системой, оставив разработку аритектуры Lustre Эрику Бартону (Eric Barton) и Андреасу Дилджеру (Andreas Dilger).

В 2010 Oracle в процессе поглощения Sun в 2010, стала поддерживать и разрабатывать Lustre.

В апреле 2010 Oracle объявила о своем намерении ограничить платную поддержку для новой Lustre 2.0 только на оборудовании Oracle, или оборудовании, разработанном одобренными Oracle поставщиками. Lustre осталась доступной всем пользователям под лицензией GPL, и существующие потребители Lustre 1.8 продолжают получать техподдержку от Oracle.[6]

В декабре 2010 Oracle объявила о прекращении развития Lustre. Выпуск Lustre 1.8 переведен на обслуживание только для сопровождения[7], что создало неопределенность по поводу дальнейшего развития файловой системы. Согласно этому объявлению разработка и поддержка новых версий Lustre осуществляется сообществом разработчиков, включая Whamcloud,[8] Xyratex,[9] OpenSFS, EUROPEAN Open Filesystems (OFS) SCE и другими. В том же году, Эрик Бартон (Eric Barton) и Андреас Дилджер (Andreas Dilger) покинули Oracle для стартапа Whamcloud на базе Lustre,[10] где они продолжили работу над Lustre.

История выпусков[править | править вики-текст]

Файловая система Lustre впервые была инсталлирована для использования в работе в марте 2003 на кластере MCR Linux Cluster в LLNL,[11] одном из самых мощных суперкомпьютеров того времени.[12]

Lustre 1.2.0, выпущенная в марте 2004, поддерживала ядро Linux 2.6, возможность «size glimpse» для исключения отзыва блокировки на файлы, подлежащие записи, а также учет для кэша обратной записи данных со стороны клиента.

Lustre 1.4.0, выпущенная в ноябре 2004, обеспечивала совместимость протоколов между версиями, поддержку сети InfiniBand, а также поддержку экстентов и mballoc в дисковой файловой системе ldiskfs.

Lustre 1.6.0, выпущенная в апреле 2007, поддерживала конфигурацию монтирования («mountconf»), позволяя серверам быть сконфигурированными с помощью «mkfs» и «mount», поддерживала динамическое добавление целей хранилищ объектов (object storage target — OST), включала масштабируемый менеджер распределенной блокировки Lustre (Lustre distributed lock manager — LDLM) для симметричных мультипроцессоров (SMP), а также поддерживала управление свободным пространством при распределении объектов.

Lustre 1.8.0, выпущенная в мае 2009, предоставляла OSS Read Cache, улучшала восстановление в случае многократных отказов, добавила базовое управление гетерогенными хранилищами через OST Pools, адаптивные сетевые таймауты, а также восстановление на основе версий. Она также являлась переходным выпуском, обеспечивая взаимодесвие как с Lustre 1.6, так и с Lustre 2.0.[13]

Lustre 2.0.0, выпущенная в августе 2010, содержала переписанный стек сервера метаданных, организующий основу кластеризованных метаданных (Clustered Metadata — CMD), что позволило распределить метаданные Lustre по нескольким серверам метаданных, новый клиентский стек ввода-вывода (Client IO stack — CLIO) для переносимости с другими клиентскими операционными системами, например Mac OS, Microsoft Windows, and Solaris, а также абстрактное устройство хранения объектов (Object Storage Device — OSD) для обеспечения переносимости с другими файловыми системами, например ZFS.

Файловая система Lustre и ассоциированное с ней программное обеспечение с открытым кодом были адаптированы многими организациями. Например, и Red Hat и SUSE (Novell) предлагают ядра Linux, работающие на клиентах без дополнений, что облегчает развертывание.

Архитектура[править | править вики-текст]

Файловая система Lustre содержит три основных функциональных модуля:

  • Один сервер метаданных (metadata server — MDS) соединенный с одной целью метаданных (metadata target — MDT) в файловой системе Lustre, который хранит метаданные о пространстве имен, например имена файлов, каталогов, права доступа, а также карту размещения файлов. Данные MDT хранятся в единой локальной дисковой файловой системе.
  • Один или несколько серверов хранения объектов (object storage server — OSS), хранящих данные файлов из одного или нескольких целей хранения объектов (object storage targets — OST). В зависимости от оборудования сервера OSS обычно обслуживает от двух до восьми OSs, а каждая OST управляет одной локальной дисковой файловой системой. Емкость файловой системы Lustre определяется суммой емкостей, предоставляемых OST.
  • Клиент(ы), обращающиеся и использующие данные. Lustre предоставляет всем клиентам унифицированное пространство имен для всех файлов и данных в файловой системе, используя стандартную семантику POSIX, а также обеспечивает параллельный когерентный доступ по записи и чтению к файлам в файловой системе.

Компоненты MDT, OST, а также клиенты могут находиться на одном и том же узле, но при инсталляции их обычно помещают на отдельные узлы, взаимодействующие по сети. Уровень сети Lustre (Lustre Network — LNET) поддерживает несколько коммуникационных платформ, включая Infiniband, TCP/IP через Ethernet и другие сети, Myrinet, Quadrics, а также проприетарные сетевые технологии. Lustre также использует преимущества удаленного прямого доступа к памяти, если это возможно, для увеличения пропускной способности и снижения доли использования ЦП.

Хранилище, используемое для дублирующих файловых систем MDT и OST, делится на части и может быть организовано через управление логическими томами и/или RAID, как правило, форматированными в файловой системе ext4. Сервера Lustre OSS и MDS считывают, записывают и изменяют данные в формате, введённым этими файловыми системами.

OST является выделенной файловой системой, экспортирующей интерфейс в байтовые регионы объектов для операций чтения/записи. MDT является выделенной файловой системой для контроля доступа к файлам и сообщений киентам о том, какие объект(ы) входят в структуру файла. В настоящее время MDT и OST используют для хранения данных улучшенную версию ext4, называемую ldiskfs. В 2008 Sun начала проект портирования Lustre в Sun ZFS/DMU для хранения внутренних данных[14], продолжающийся как проект с открытым кодом.[15]

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

Клиенты не модифицируют объекты файловой системы OST напрямую, делегируя эту задачу OSS. Этот подход обеспечивает масштабируемость для крупномасштабных кластеров и суперкомпьютеров, а также улучшает безопасность и надежность. В противоположность этому блочные разделяемые файловые системы, например Global File System и OCFS должны поддерживать прямой доступ к хранилищу для всех клиентов в файловой системе, увеличивая риск повреждения файловой системы со стороны неправильных клиентов.

Реализация[править | править вики-текст]

При обычной установке Lustre на клиенте Linux модуль драйвера файловой системы Lustre загружается в ядро и файловая система монтируется как и любая другая локальная или сетевая файловая система. Приложения клиента видят одну унифицированную файловую систему, даже если она может быть составлена из дестяков тысяч индивидуальных серверов и файловых систем MDT/OST.

На некоторых процессорах массового параллелизма (MPP) вычислительные процессоры могут получить доступ к файловой системе Lustre путем перенаправления их запросов ввода-вывода на выделенный узел ввода-вывода, сконфигурированный как клиент Lustre. Этот подход используется в Blue Gene[16], установленном в Ливерморской национальной лаборатории.

Другой подход, используемый в последнее время, предлагает библиотека liblustre, предоставляющая приложениям в пространстве пользователя прямой доступ к файловой системе. Это библиотека уровня пользователя, позволяющая вычислительным процессорам-клиентам монтировать и использовать файловую систему Lustre. Используя liblustre, вычислительные процессоры могут получить доступ к файловой системе Lustre даже в случае, если обслуживающий узел, запустивший задание, не является клиентом Lustre. Библиотека liblustre позволяет непосредственно перемещать данные между пространством приложения и Lustre OSS без необходимости промежуточного копирования данных через ядро, обеспечивая вычислительным процессорам доступ к файловой системе Lustre с низкой задержкой и высокой пропускной способностью.

Объекты данных и разделение данных[править | править вики-текст]

В традиционных дисковых файловых системах UNIX, структура данных inode содержит базовую информацию о каждом файле, например о том, где хранятся данные, содержащиеся в файле. Файловая система Lustre также использует inode, но inode на MDT указывает на один или несколько объектов OST, ассоциированных с файлом, а не на блоки данных. Эти объекты реализуются как файлы OST. При открытии файла клиентом операция открытия передает множество указателей объекта и их расположение из MDS клиенту, после чего клиент может непосредственно взаимодействовать с узлом OSS, хранящим объект, что позволяет клиенту выполнять ввод-вывод в файл без последующего взаимодействия с MDS.

Если с MDT inode ассоциирован только один объект OST, этот объект содержит все данные файла Lustre. Если с файлом ассоциировано более одного объекта, данные файла «разделены» среди объектов подобно RAID 0. Разделение файла между несколькими объектами дает существенные преимущества в производительности. При использовании разделения, максимальный размер файла не ограничен размерами одной цели. Емкость и совокупная пропускная способность ввода-вывода масштабируется с ростом числа OST, по которым разделен файл. Кроме того, поскольку блокировка каждого объекта для каждой OST управляется независимо, добавление частей (OST) масштабирует возможности блокировки ввода-вывода в файл пропорционально. Каждый файл в файловой системе может иметь различное размещение при разделении, так что емкость и производительность можно оптимально настроить для каждого файла.

Блокировки[править | править вики-текст]

Lustre использует менеджера распределенной блокировки в стиле VMS для защиты целостности данных и метаданных каждого файла. Доступ и модификация файла Lustre полностью когерентна для всех клиентов. Блокировки метаданных управляются MDT, хранящим inode файла с использованием 128-битного идентификатора Lustre File Identifier (FID, состоящего из номера последовательности и идентификатора объекта), используемого как имя ресурса. Блокировки метаданных делятся на несколько частей, защищающих процесс обнаружения файла (владелец и группа файла, разрешения и режим, а также ACL, состояние inode (размер каталога, содержимое каталога, количество ссылок, временные метки), а также размещение (разделение файла). Клиент может получить несколько частей блокировки метаданных для одного inode одним запросом RPC, но в настоящее время предоставляются только блокировки для чтения inode. MDS управляет всеми модификациями inode, чтобы избежать соревнования за ресурс и сейчас возможен только один узел, получающий блокировки на запись inode.

Блокировки данных файла управляются OST, по которым разделен каждый объект файла, с использованием байтовых блокировок экстентов. Клиенты могут получить перекрывающиеся блокировки чтения экстента для части или всего файла, что позволяет существовать нескольким параллельным читателям для одного файла, а также неперекрывающиеся блокировки записи экстента для областей файла. Это позволяет многим клиентам Lustre получить параллельный доступ к файлу для чтения и записи, избегая проблем при вводе-выводе файла. На практике клиенты Linux управляют своим кэшем данных в единицах страниц, поэтому они будут запрашивать блокировки, всегда являющиеся целым, кратным размеру страницы (4096 байт в большинстве клиентов). При запросе клиентом блокировки экстента OST может предоставить блокировку на больший экстент, чтобы сократить количество запросов блокировки, выполняемых клиентом. Реальный размер предоставленной блокировки зависит от нескольких факторов, включая количество уже выполненных блокировок, наличие конфликтующих блокировок на запись, и числа запросов на блокировку. Установленная блокировка никогда не будет меньше требуемого экстента. Блокировки экстента OST используют Lustre FID в качестве имени ресурса для блокировки. Поскольку число серверов блокировки экстента растет с увеличением числа OST в файловой системе, это также увеличивает совокупную производительность блокировки файловой системы и одного файла, если он разделен по нескольким OST.

Сетевые возможности[править | править вики-текст]

В кластере с файловой системой Lustre, системная сеть, соединяющая серверы и клиентов, реализуется посредством Lustre Networking (LNET), предоставляющей коммуникационную инфраструктуру, требуемую файловой системе Lustre. Дисковое хранилище соединяется с MDS и OSS традиционными технологиями сетей хранения данных.

LNET поддерживает много общеизвестных типов сетей, например InfiniBand и IP, позволяя осуществить одновременный доступ для сетей разных типов с маршрутизацией между ними. Удаленный прямой доступ к памяти разрешен при поддержке его нижележащей сетью, такой как Quadrics Elan, Myrinet и InfiniBand. Возможности высокой доступности и восстановления позволяют прозрачное восстановление при использовании отказоустойчивых серверов.

LNET предоставляет пропускную способность через сети Ethernet (GigE) свыше 100 MB/s,[17] пропускную способность до 3 GB/s через каналы InfiniBand QDR, пропускную способность свыше 1 GB/s через интерфейсы 10GigE.

Высокая доступность[править | править вики-текст]

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

Lustre MDS конфигурируются как активная/пассивная пара, а OSS обычно развертываются в конфигурации активный/активный, обеспечивающей надежность без существенной перегрузки. Часто резервный MDS является активным MDS для другой файловой системы Lustre, поэтому в кластере нет простаивающих узлов.

Инсталляции[править | править вики-текст]

Lustre используется во многих суперкомпьютерах и крупных кластерах из TOP500. Пятнадцать из 30 мощнейших суперкомпьютеров мира использую файловую систему Lustre, включая самый быстрый суперкомпьютер мира K computer в RIKEN Advanced Institute for Computational Science,[2] и второй по производительности (мощнейший с ноября 2010 по июнь 2011), Тяньхэ-1 в Национальном суперкомпьютерном центре в городе Тяньцзинь (Китайская Народная Республика). Другие суперкомпьютеры, использующие файловую систему Lustre — это третий по мощности Jaguar в Oak Ridge National Laboratory (ORNL)и системы National Energy Research Scientific Computing Center, расположенные в Lawrence Berkeley National Laboratory (LBNL), Lawrence Livermore National Laboratory (LLNL), Pacific Northwest National Laboratory, Texas Advanced Computing Center и NASA[18] in North America, in Asia at Tokyo Institute of Technology,[19], and one of the largest systems in Europe at CEA.[20]

Коммерческая поддержка[править | править вики-текст]

Коммерческая поддержка Lustre обеспечивается большим числом поставщиков. В большинстве случаев поддержка предоставляется для вычислительной системы или оборудования хранения данных, продаваемого производителем. Неполный список поставщиков, продающих вычислительные системы и хранилища с Lustre включает Cray, Dell, Hewlett-Packard, BULL, SGI и другие. Sun Microsystems больше не поставляет систем, содержащих Lustre. Основные поставщики, продающие оборудование хранения данных с поддержкой Lustre — Data Direct Networks (DDN), Dell, Terascala, Xyratex, и другие.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Lustre Home. Архивировано из первоисточника 23 августа 2000.
  2. 1 2 An Overview of Fujitsu's Lustre Based File System. Fujitsu Limited. Проверено 24 июня 2011. Архивировано из первоисточника 3 марта 2012.
  3. Lustre File System presentation. Google Video. Проверено 28 января 2008. Архивировано из первоисточника 3 марта 2012.
  4. Sun Assimilates Lustre Filesystem. Linux Magazine (13 сентября 2007). Архивировано из первоисточника 3 марта 2012.
  5. Sun Welcomes Cluster File Systems Customers and Partners. Sun Microsystems, Inc. (2 октября 2007). Архивировано из первоисточника 3 марта 2012.
  6. Lustre 2.0 support limited to Oracle hardware customers. Infostor (28 апреля 2010). Архивировано из первоисточника 3 марта 2012.
  7. Oracle has Kicked Lustre to the Curb. Inside HPC (10 января 2011). Архивировано из первоисточника 3 марта 2012.
  8. Whamcloud aims to make sure Lustre has a future in HPC. Inside HPC (20 августа 2010). Архивировано из первоисточника 3 марта 2012.
  9. Xyratex Acquires ClusterStor, Lustre File System Expertise/. HPCwire (9 ноября 2010). Архивировано из первоисточника 3 марта 2012.
  10. Whamcloud Staffs up for Brighter Lustre. InsideHPC. Архивировано из первоисточника 3 марта 2012.
  11. Lustre Helps Power Third Fastest Supercomputer. DSStar.
  12. MCR Linux Cluster Xeon 2.4 GHz - Quadrics. Top500.Org. Архивировано из первоисточника 3 марта 2012.
  13. Lustre Roadmap and Future Plans(недоступная ссылка — история). Sun Microsystems. Проверено 21 августа 2008. Архивировано из первоисточника 18 мая 2011.
  14. Lustre to run on ZFS. Government Computer News (26 октября 2008). Архивировано из первоисточника 3 марта 2012.
  15. ZFS on Lustre(недоступная ссылка — история) (10 мая 2011).
  16. DataDirect Selected As Storage Tech Powering BlueGene/L(недоступная ссылка — история). HPC Wire, October 15, 2004: Vol. 13, No. 41.. Архивировано из первоисточника 3 декабря 2007.
  17. Lafoucrière, Jacques-Charles. Lustre Experience at CEA/DIF. HEPiX Forum, April 2007. Архивировано из первоисточника 3 марта 2012.
  18. Pleiades Supercomputer. www.nas.nasa.gov (18 августа 2008). Архивировано из первоисточника 3 марта 2012.
  19. TOP500 List - November 2006. TOP500.Org. Архивировано из первоисточника 3 марта 2012.
  20. TOP500 List - June 2006. TOP500.Org. Архивировано из первоисточника 3 марта 2012.

Ссылки[править | править вики-текст]