Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.4. Кластеризация

Кластерное хранилище позволяет серверам в составе кластера обращаться к накопителям в его составе как к единому целому. Наличие единой файловой системы упрощает администрирование, так как отпадает необходимость в установке, обновлении приложений и поддержке резервных копий в разных файловых системах.
Комплект Red Hat High Availability в совокупности с Red Hat Global File System 2 предоставляет инструменты для управления кластерным хранилищем.

7.4.1. GFS 2

Файловая система Red Hat GFS2 (Global File System 2) напрямую взаимодействует с интерфейсом файловой системы ядра Linux и служит для организации совместного пространства хранения данных в кластере. Настройки GFS2 определяются автоматически, но можно корректировать их вручную, что и будет рассмотрено в этой секции.
В Red Hat Enterprise Linux 6.3 одновременная запись файлов разными процессами приводила к фрагментации, что замедляло работу, особенно при обслуживании больших файлов. В Red Hat Enterprise Linux 6.4 эта функциональность была оптимизирована.
Несмотря на то что Red Hat Enterprise Linux не предоставляет средства для дефрагментации GFS2, можно выполнить дефрагментацию отдельных файлов вручную. Команда filefrag поможет определить фрагментированные файлы, которые можно скопировать во временные и переименовать, заменив исходные файлы.
GFS2 использует глобальный механизм блокирования, требующий взаимодействия узлов в кластере. Чтобы сократить число обращений, при проектировании системы следует избегать ситуаций, приводящих к состязанию узлов за ресурсы. Для этого можно:
  • Заранее выделить место для файлов и каталогов при помощи fallocate.
  • Минимизировать области, которые будут использоваться совместно. Например, если несколько узлов монтируют одну и ту же файловую систему, но обращаются к разным каталогам, перемещение одного каталога в другую файловую систему поможет улучшить производительность.
  • Выбрать оптимальный размер и число групп ресурсов в зависимости от среднего размера файлов и свободного пространства в системе. Это определяет вероятность одновременного обращения узлов к группе ресурсов. Но следует помнить, что слишком большое число групп может замедлить выделение блоков, в то время как недостаточное их количество приведет к конкуренции во время освобождения блоков. Обычно эти характеристики подбираются экспериментальным путем.
Другие способы повышения производительности GFS2:
  • При выборе оборудования следует принимать во внимание требования файловой системы и особенности ввода-вывода кластерных узлов.
  • Использовать SSD-диски.
  • Подобрать размер файловой системы в соответствии с ожидаемым уровнем нагрузки таким образом, чтобы ее занятость не превышала 80%. Небольшие файловые системы не требуют много времени на проверку и резервное копирование, но при больших нагрузках подвергаются фрагментации.
  • Для интенсивной нагрузки рекомендуется увеличить размер журналов. Несмотря на то что журналы будут использовать больше памяти, производительность улучшится, так как запись на диск будет осуществляться реже.
  • Синхронизация часов на узлах GFS2 позволит избежать проблем в работе сетевых приложений. Для этой цели рекомендуется выбрать протокол NTP.
  • Если время доступа к файлам и каталогам некритично, файловая система должна быть смонтирована с параметрами noatime и nodiratime.

    Примечание

    Для GFS2 рекомендуется выбрать noatime.
  • При наличии квот следует уменьшить частоту их синхронизации или предпочесть грубую синхронизацию.

    Примечание

    Нестрогие квоты допускают превышение заданного порога. Чтобы его минимизировать, GFS2 будет динамически сокращать интервал синхронизации по мере приближения к предельному значению.
За дальнейшей информацией обратитесь к руководству GFS2 по адресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.