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

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

Lustre
Тип распределённая файловая система и свободное и открытое программное обеспечение
Автор Peter Braam[d]
Разработчик DataDirect Networks[d]
Написана на Си[1]
Операционная система ядро Linux
Первый выпуск 16 декабря 2003
Последняя версия
Лицензия GNU GPL 2
Сайт lustre.org (англ.)

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

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

История

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

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

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

В июле 2012 года Whamcloud была приобретена Intel[13][14]. Это произошло после того, как Whamcloud выиграла контракт для министерства энергетики США на расширение Lustre в рамках первой фазы проекта экзафлопных вычислений под названием FastForward на период до 2018 года[15]. После этого OpenSFS перевела все контракты по разработке Lustre в Intel.

История выпусков

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

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[18].

Lustre 2.0.0, выпущенная в августе 2010, содержала переписанный стек сервера метаданных, организующий основу кластеризованных метаданных (Clustered Metadata — CMD), что позволило распределить метаданные Lustre по нескольким серверам метаданных, новый клиентский стек ввода-вывода (Client IO stack — CLIO) для переносимости с другими клиентскими операционными системами, например Mac OS, Microsoft Windows, 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 для хранения внутренних данных[19], продолжающийся как проект с открытым кодом[20].

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

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

Реализация

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

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

Другой подход, используемый в последнее время, предлагает библиотека 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[22], пропускную способность до 3 GB/s через каналы InfiniBand QDR, пропускную способность свыше 1 GB/s через интерфейсы 10GigE.

Высокая доступность

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

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

Инсталляции

Lustre используется во многих суперкомпьютерах и крупных кластерах из TOP500. Пятнадцать из 30 мощнейших суперкомпьютеров мира используют файловую систему Lustre, включая самый быстрый суперкомпьютер мира K computer в RIKEN[4], и второй по производительности (мощнейший с ноября 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[23] в Северной Америке, Tokyo Institute of Technology[24] в Азии, и одна из самых больших систем в Европе — CEA[25].

Коммерческая поддержка

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

Платформа Amazon Web Services предлагает Amazon FSx for Lustre, полностью управляемый сервис для обработки Amazon S3 и собственных (локальных) данных.

Примечания

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

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.