Параллельные файловые системы

Завершено

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

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

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

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

Параллельные файловые системы исторически были полным классом возможностей, для которых требуется глубокое знание операций ввода-вывода приложений. Эта информация поможет построить понимание, а не опыт.

Распределенные файловые системы NAS (NFS) и параллельные файловые системы

Распределенные файловые системы NAS и параллельные файловые системы являются общими файловыми системами. Несколько клиентов считывают файлы одновременно, файлы записываются и блокируются, метаданные можно изменять и многое другое.

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

схема, которая сравнивает подключенное к сети хранилище и параллельные архитектуры файловой системы.

Параллельные операции ввода-вывода

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

Ниже приведены три основных параллельных файловой системы:

  • GPFS IBM, известный как шкала спектра
  • Lustre, который является открытым исходным кодом, но имеет некоторые коммерческие реализации
  • BeeGFS

Эти системы обеспечивают параллельный ввод-вывод различными способами. GPFS использует серверы, известные как сетевые накопители (NSD),, которые подключаются к высокопроизводительной сети хранения данных (SAN). Поэтому серверы GPFS имеют необработанные операции ввода-вывода в качестве резервного хранилища. BeeGFS имеет множество одинаковых архитектурных компонентов, что и Lustre, но также имеет надежную распределенную архитектуру метаданных. BeeOND, сокращение от BeeGFS On Demand, позволяет создавать среды BeeGFS по запросу, использующие хранилище на каждом клиенте. Такие временные среды файловой системы можно использовать для всплесковой буферизации.

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

Метаданные

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

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

Размер блока

Ранее мы обсуждали размер блока в контексте NFS. Размер блоков параллельной файловой системы может превышать размеры блоков NFS. По умолчанию rsize/wsize для клиентов NFS обычно составляет 64 000. Например, в Lustre размеры блоков указаны в МБ. У этого увеличенного размера есть два эффекта. Во-первых, чтение и запись больших файлов выше в параллельной файловой системе. Но параллельные файловые системы имеют мало преимуществ, если размер файла мал, а количество файлов большое.

Сложность

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

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

Рекомендации по развертыванию

Azure предлагает несколько вариантов параллельной файловой системы. Вы можете перейти в Azure Marketplace, чтобы просмотреть параметры, включая BeeGFS и Lustre. (Поиск Whamcloud.) Вы также можете установить Lustre на стандартные виртуальные машины Linux или использовать шаблоны Azure Resource Manager (ARM), найденные на сайте Azure Quickstart.

Проверка знаний

1.

Какой выбор отражает отличное использование параллельной файловой системы?