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

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

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

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

  • 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 обеспечивает репликацию на удалённый узел содержимого локального блочного устройства; 
  • операция чтения всегда осуществляется только с локального узла;
  • для сетевого взаимодействия используется протокол TCP.

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

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

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

Использование более двух узлов возможно только при использовании DRBD версии 9 и выше

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

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

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

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

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

В качестве объекта записи в DRBD выступает т.н. ресурс. Ресурс (Resource) — это реплицируемые области блочных устройств. Помимо ресурсов DRBD хранит на узлах необходимую для репликации служебную информацию (размеры блочных устройств, журналы активности и т.д.), которая именуется как метаданные (metadata).

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


Для корректной работы 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

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

На всех узлах:

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

    cd /etc/drbd.d

    sudo cp global_common.conf global_common.conf.backup

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

  2. Указать настройки конфигурации виртуального блочного устройства 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 файлов конфигурации ресурсов (см. ниже)

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

Управление DRBD

Для получения справки по DRBD и настройкам конфигурационных файлов выполнить:

info 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. Указать реплицируемый дисковый ресурс в /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

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

  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 — файловая система, обеспечивающая разделяемое использование одного и того же хранилища несколькими системами.

Настройка DRBD с OCFS2

На всех узлах:

  1. Установить пакет ocfs2-tools :
    sudo apt install ocfs2-tools
  2. Указать параметры настроек ocfs2-tools в основном конфигурационном файле /etc/ocfs2/cluster.conf:
    cluster:
         node_count = 2
         name = ocfs2cluster
     
    node:
         number = 1
         cluster = ocfs2cluster
         ip_port = 7777
         ip_address = 10.19.1.36
         name = drbd01
     
    node:
         number = 2
         cluster = ocfs2cluster
         ip_port = 7777
         ip_address = 10.19.1.39
         name = drbd02
  3. пункт для добавления

Далее:
       Создать файловую систему для drbd0:

mkfs.ocfs2 -L "testVol" /dev/drbd0

где "testVol" — имя создаваемого раздела.


Далее на всех узлах:

  1. Указать параметры в в /etc/default/o2cb
    O2CB_ENABLED=true
    O2CB_BOOTCLUSTER=ocfs2cluster
  2. Инициализировать новый кластер:
    o2cb register-cluster ocfs2cluster
  3. Включить и добавить в автозапуск:
    systemctl enable drbd o2cb ocfs2
    systemctl start drbd o2cb ocfs2
  4. Добавить новые точки монтирования в fstab:
    /dev/drbd0 /srv ocfs2 defaults,auto,heartbeat=local 0 0



  • Нет меток