Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 38 Следующий »

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и РУСБ.10015-10, РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

Аннотация

DRBD (Distributed Replicated Block Device) — это инструмент, позволяющий создавать решения для резервирования данных путем репликации блочных устройств (например, жестких дисков или томов LVM). При использовании DRBD данные, записанные на одном сервере, автоматически и синхронно копируются на другой сервер. Использование DRBD является одним из способов организации сетевого RAID-1. 

Ключевые особенности:

  • данные реплицируются сразу после того как они были изменены;
  • инструмент реализован как модуль ядра;
  • DRBD обеспечивает репликацию на удалённый узел содержимого локального блочного устройства; 
  • DRBD реплицирует данные только с одного узла на другой, масштабирование возможно при использовании DRBD-связки из двух узлов как локального хранилища;
  • если оба узла работоспособны, операция чтения всегда осуществляется только с локального узла;
  • для сетевого взаимодействия используется протокол TCP.

Каждый из узлов может функционировать как:

  • primary/первичный — узел доступен для чтения и записи данных как локальное блочное устройство;
  • secondary/вторичный — узел хранит данные, но не позволяет получить к ним локальный доступ.

Если первичный узел прекращает работу, DRBD переводит вторичный узел в режим первичного. Узлы могут взаимодействовать между собой в одном из трех режимов репликации.

Режимы репликации

В терминологии DRBD режимы репликации именуются как протоколы (protocol). Протокол определяет, как данные синхронизируются между узлами, а также как обрабатываются ситуации сбоя и обеспечения целостности данных. 

Инструмент поддерживает три режима репликации данных между узлами :

  1. Protocol A  — операция записи считается завершенной, если завершена запись на локальный узел и запись передана на удаленный узел.
  2. Protocol B  — выполнены аналогичные Protocol A условия после чего удаленный узел подтвердил получение записи. 
  3. Protocol C  — выполнены аналогичные Protocol A условия после чего локальный и удаленный узлы подтвердтвердили успешное завершение записи.

Protocol A рекомендуется использовать только при существенной потере в производительности при использовании DRBD.

В качестве объекта записи в DRBD выступает т.н. ресурс. Ресурс (Resource) — это реплицируемые области блочных устройств.

Параметры стенда


Для корректной работы DRBD необходимо наличие ресурсов одинакового объема на узлах

DRBD должен быть запущен на обоих узлах. Для развертывания кластера используются два подсоединенных к сети компьютера с установленной ОС Astra Linux.

ПараметрУзел 1Узел 2
Имя узлаdrbd1drbd2
Статический IP-адрес узла10.19.1.3610.19.1.39


При необходимости воспользоваться справочной страницей Настройка сетевых подключений в Astra Linux.


Установка DRBD

На обоих узлах:

  1. Установить пакет:
    sudo apt install drbd-utils


  2. Подключить модуль ядра:
    sudo modprobe drbd

Настройка репликации

Перед началом настройки сделаить резервную копию конфигурационного файла global_common.conf инструментом cp:

cd /etc/drbd.d

sudo cp global_common.conf global_common.conf.backup

или при помощи графического файлового менеджера Fly.

На обоих узлах:

Указать настройки конфигурации виртуального блочного устройства DRBD в /etc/drbd.d/global_common.conf:

global {
  usage-count no;
}
common {
  net {
    protocol C;
  }
}

Настройки основного конфигурационного файла:

    • блок global содержит параметры, влияющие на работу всех ресурсов:

      • параметр usage-count отвечает за отправку статистики использования DRBD на сервера LINBIT. По умолчанию установлен в yes. Рекомендуется изменить на no;
    • блок net содержит параметры сетевого взаимодействия между узлами:

      • параметр protocol указывает используемый режим репликации.

        DRBD допускает указание используемого протокола для ресурсов в блоке resource файлов конфигурации ресурсов (см. ниже)

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

Добавление ресурсов

На обоих узлах:

  1. Указать реплицируемый дисковый ресурс в /etc/drbd.d/r0.res для ресурса r0:
    resource r0 {
     # здесь возможно указание значения параметра protocol если он не указан в global_common.conf
      on drbd01 { 
        device    /dev/drbd0;
        disk      /dev/sdb;
        address   10.19.1.36:7789;
        meta-disk internal;
      }
      on drbd02 {
        device    /dev/drbd0;
        disk      /dev/sdb;
        address   10.19.1.39:7789;
        meta-disk internal;
      }
    }

    Настройки конфигурационного файла ресурсов:

    Конфигурационный файл подробнее:

    • resource — название ресурса;
    • on <имя_узла> — описание первого узла:
      • device — блок данных, который необходимо создать;
      • disk — родительский жесткий диск;
      • address — IP-адрес и номер порта соответствующего узла;
      • meta-disk internal — указание хранить метаданные на этом же узле.


  2. Инициализировать хранилище метаданных:
    sudo drbdadm create-md r0


  3. Запустить службу drbd:
    sudo /etc/init.d/drbd start


  4. Включить в автозагрузку службу drbd:
    echo drbd > /etc/modules-load.d/drbd.conf

Далее:

  1. Сделать один из узлов, наппример drbd01, первичным выполнив на нем:
    sudo drbdadm -- --overwrite-data-of-peer primary all


  2. На вторичном узле drbd02 проверить процесс репликации:
    watch -n1 cat /proc/drbd

    Остановить watch можно сочетанием клавиш <Ctrl+C>


  3. Указать файловую систему для созданного виртуального блочного устройства на первичном узле:
    sudo mkfs.ext4 /dev/drbd0


  4. Примонтировать устройство на первичному узле:
    sudo mount /dev/drbd0 /srv
  5. для добавления


Просмотр списка задействованных ресурсов DRBD:

drbd-overview

более детально:

/etc/init.d/drbd status


Управление DRBD

Для управления  DRBD применяется компонент drbdadm.

Основные команды:

  • проверить синтаксис настроек, указанных в файле конфигурации на ошибки:
    sudo drbdadm dump all


  • задействовать служебные метаданные:
    sudo drbdadm create-md <имя_узла>


  • инициализировать службу на узле (инициализацию нужно проводить на всех узлах):
    sudo drbdadm up <имя_узла>

     использовать down вместо up для выключения;

  • отслеживать статус синхронизации между узлами:
    drbdadm status


  • принудительно назначить узел первичным:
    sudo drbdadm primary <имя_узла>

     для назначения узла вторичным вместо primary указать secondary;

    Использование параметра --force допустимо для данной команды только при первом запуске, в противном случае данные будут утеряны


  • Вызов справки о drbdadm :
    man drbdadm

Проверка работы

  1. Скопировать несколько файлов на узел, установленный как основной, в каталог /srv :
    sudo cp -r /etc/default /srv


  2. Отмонтировать каталог /srv:
    sudo umount /srv


  3. Установить первичному узлу роль вторичного:
    sudo drbdadm secondary r0


  4. Установить вторичному узлу роль первичного:
    sudo drbdadm primary r0


  5. Смонтировать ранее отмонтированный раздел:
    sudo mount /dev/drbd0 /srv


  6. Убедиться в наличии ранее скопированных файлов в каталоге /srv :
    ls

    /etc/default


DRBD и OCFS2

Начиная с версии DRBD-8.0.08 инструмент может задействовать оба узла как первичные, что дает возможность использовать кластерные файловые системы, например OCFS2.

OCFS2 — файловая система, обеспечивающая разделяемое использование одного и того же хранилища несколькими системами.


  • Нет меток