Кластерная файловая система linux

Кластерная файловая система linux

Монтирование выглядит примерно так:
mount -V cachefs -o backfstype=nfs,cachedir=/cache-directory remhost:/rem-directory local-mount-point

Похожие разработки:

  • CRFS (Coherent Remote File System) и идеи Евгения Полякова
  • HOWTO FS-Cache
    Ceph — Distributed Network File System[+]
    [обсудить]
    Ceph может использоваться на системах, состоящих от нескольких машин, до тысяч узлов. Общий объем хранилища данных может измеряться Петабайтами, встроенные механизмы продублированной репликации данных (не зависит от отказа отдельных узлов) обеспечивают чрезвычайно высокую живучесть системы, при добавлении или удалении новых узлов, массив данных автоматически ребалансируется с учетом новшеств.

    В отличии от таких файловых систем, как GFS, OCFS2, и GPFS, в Ceph обработка данных и метаданных разделена на различные группы узлов в кластере, примерно как это сделано в Lustre, с тем различием, что обработка производится на уровне пользователя, не требуя какой-то особой поддержки от ядра. Ceph может работать поверх блочных устройств, внутри одного файла или используя существующую ФС (например, XFS).

    DST — Distributed storage. [+]
    [обсудить]
    DST функционирует на уровне блочного устройства, работающего поверх нескольких машин в сети (ближайшие аналоги — DRBD, iSCSI и NBD). Обработка данных производится в неблоркирующем режиме. Поддерживаются различные алгоритмы распределения данных, например — зеркалирование или создание линейного хранилища охватывающего все узлы.

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

    Hadoop — framework for running applications on large clusters[+]
    [обсудить]
    Фреймворк на Java для организации распределенных вычислений с использованием парадигмы map/reduce, когда задача делится на множество более мелких обособленных фрагментов, каждый из которых может быть запущен на отдельном узле кластера. В состав Hadoop входит также реализация распределенной файловой системы Hadoop Distributed Filesystem (HDFS), автоматически обеспечивающей резервирование данных и оптимизированной для работы «MapReduse» приложений. Система создана как субпроект поискового механизма Apache Lucene и апробировалась в кластере с 600 узлами.
    Gfarm — file system is a network shared file system(Версия: 2.5.8 от 2013-05-15) [+]
    [обсудить]
    Альтернативная к NFS распределенная файловая система, способная объединить в единое пространство диски обособленных друг от друга машин. Работает под Linux, FreeBSD, Solaris и NetBSD. Имеется FUSE модуль.
    DSGrid — Cleversage Dispersed Storage Grid File System[+]
    [обсудить]
    Файловая система, предназначенная для создания распределенных в глобальной сети систем хранения данных. Каждый блок данных в DSGrid разбивается на 11 частей, которые сохраняются на различных машинах в сети. Данные дублируются и для сохранения целостности необходима работа всего 6 узлов из 11.
    MapFS — Linux filesystem which utilizes copy-on-write functionality[+]
    [обсудить]
    Фирма Levanta представила под GPL лицензией реализацию файловой системы MapFS, позволяющей Позволяет монтировать группе машин удаленную файловую систему доступную в режиме только для чтения, но дающую возможность модификации файлов, при этом изменения произведенные на каждой машине сохраняются локально. Идея похожа на UnionFS, за тем исключением что монтируется удаленная ФС.
    Другие похожие ФС:
  • ClusterNFS — патчи для NFS позволяющие реализовать подобную MapFS функциональность;
  • mini_fo, cowloop (copy-on-write loop driver), ovlfs (Overlay Filesystem), translucency — подобие UnionFS;
  • nfsv4_bsd — NFSv4 software for BSD[+]
    [обсудить]
    NFS4 сервер и клиент для BSD систем (FreeBSD, OpenBSD).
    NOOFS — file system storing its data in an SQL relational database.(Версия: 0.9.0 от 2006-02-04) [+]
    [обсудить]
    Файловая система, использующая в качестве хранилища данных SQL базу, в частности PostgreSQL.
    Функциональность:
  • Создание единого хранилища данных в сети;
  • Расширенные средства управления безопасностью;
  • Функции быстрого поиска файла;
  • Хранение расширенной информация об элементе ФС;
  • Виртуальное управление директориями — папки с динамически формируемым содержимым;
  • Встроенные средства по управлению целостностью данных.
  • OCFS — Oracle Cluster File System[+]
    [обсудить]
    Файловая система от Oracle, распространяемая под лицензией GPL. Предназначена для создания единой ФС, разнесенной по всем нодам кластера.
    MogileFS — open source distributed filesystem[+]
    [обсудить]
    Распределенная файловая система созданная в рамках проекта LiveJournal и реализованная на уровне многоплатформенного приложения на Perl.

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

    Для каждого файла задается его класс, определяющий на какое число соседних машин от будет реплицирован. Отлично подходит для создания распределенных web-проектов и как средство создания высоконадежного хранилища данных, не прибегая к использованию RAID. Доступ пользовательских приложений к ФС осуществляется посредством HTTP запросов (PUT/GET) или через использования виртуального NFS тома.
    Perlbal — система балансировки нагрузки на Perl, представленная на том же сайте. Отличный пример как нужно писать высокопроизводительные приложения на Perl.

    GPFS — General Parallel File System[+]
    [обсудить]
    Разработанная в недрах IBM кластерная файловая система для Linux и AIX, объединяющая в рамках одной ФС многотеррабайтное хранилище из отдельных кусочков, распределенным по нодам кластера. Присутствуют функции резервирования (одни данные продублированы на нескольких нодах) и автовосстановления.
    PVFS — Parallel Virtual File System[+]
    [обсудить]
    Распределенная файловая система, заменяющая NFS для кластера. Состоит из централизованного сервера метаданных и множества демонов ввода/вывода, непосредственно занимающихся отдачей и сохранением информации. Данные хранятся на специально отведенных нодах кластера, возможности резервирования пока отсутствуют.
    GFS (Global File System) — open source, POSIX-compliant cluster file system(Версия: 0.1 от 2004-10-27) [+]
    [ есть мнение ]
    Представленные под лицензией GPL кластерные решения от компании Red Hat. В частности файловая система GFS, ориентированная на обеспечение совместной работы всех машин кластера с единым хранилищем данных (одни и те же данные расшарены между всеми машинами кластера).

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

    Источник

    Настраиваем распределенную файловую систему GlusterFS на трехузловом кластере под управлением Linux

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

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

    Настройка разрешения имен для приватной сети

    В рамках настройки будем полагать, что все узлы соединены доверенной приватной сетью, в которой они доступны по доменными именам:

    • server1.private 10.0.0.1/24
    • server2.private 10.0.0.2/24
    • server3.private 10.0.0.3/24

    Убедитесь, что серверы находятся в разных доменах отказа, чтобы не столкнуться с ситуацией, когда авария затронет сразу две или больше машин.

    В ходе настройки будем предполагать, что используются серверы под управлением Debian 9, Ubuntu 16.04 или 18.04 или CentOS7.

    Сначала на каждом сервере сформируем файл /etc/hosts, чтобы серверы «видели» друг друга по доменным именам:

    После добавления этих строк убедитесь, что все серверы «видят» друг друга по доменным именам.

    Файрвол, SELinux, AppArmor

    Мы предполагаем, что для приватной сети весь трафик разрешен и не блокируется. AppArmor (Ubuntu, Debian), SELinux не накладывают ограничений или полностью отключены.

    Установка NTPD

    В кластерных системах очень важно, чтобы все серверы имели одинаковое время. Даже небольшой лаг времени может привести к проблемам. Для решения этой проблемы необходимо установить сервер NTPD на каждом из узлов.

    Ubuntu, Debian Linux:

    CentOS 7:

    Выбор фактора репликации

    Мы будем выполнять установку GlusterFS на 3 узла и использовать фактор репликации равный трем. Это позволяет потерять любой из узлов и при этом не столкнуться с ситуацией «split-brain», которая характерна для хранения данных с фактором репликации равным 2, когда каждая копия может считать себя правильной и продолжать функционировать, накапливая рассогласования.

    Задание пространства для файловой системы

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

    На каждом узле создадим каталог /opt/gluster-volume:

    При выделении отдельного устройства для тома GlusterFS рекомендуется создать на нем файловую систему XFS

    Установка и настройка GlusterFS

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

    Debian Linux:

    Ubuntu Linux 16.04, 18.04:

    CentOS 7:

    Добавление узлов в пул

    Для добавления узлов в пул узлов необходимо на любом из узлов выполнить команду:

    Посмотреть добавленные в пул узлы можно командой:

    Создание тома хранения данных

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

    Убедиться в том, что том создан можно с помощью команды:

    Для активации тома его необходимо запустить:

    Теперь можно запросить состояние тома gfs:

    Информация о томе:

    Настройка доступа к тому

    Для настройки безопасности выполните следующие команды, которые позволяют получать доступ к тому только этим трем серверам, на которых установлен GlusterFS, если у вас есть другие клиенты, их необходим тоже добавить:

    Монтирование тома

    Проверим монтирование тома в ручном режиме, выполнив на каждом узле:

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

    Проверьте на двух других узлах, что файл доступен:

    Добавьте на каждом хосте запись в /etc/fstab для автоматического монтирования тома при запуске системы:

    Перезапустите каждый сервер поочередно для того, чтобы убедиться, что после старта сервер автоматически монтирует каталог /mnt/gluster:

    Почему не Ceph

    По сравнению с GlusterFS Ceph более сложна в настройке и более тяжеловесна (MON,OSD, MDS). Для распределенных файловых систем начального уровня, которые развертываются на малом количестве узлов GlusterFS выглядит более предпочтительной и легковесной.

    Источник

    Читайте также:  Почему не отображается второй жесткий диск windows 10
    Оцените статью