Установка · 4 min read · Jan 31, 2026

Установка и настройка Openfiler с DRBD и Heartbeat

Установка и настройка Openfiler с DRBD и Heartbeat

Введение

Openfiler — это высокопроизводительная операционная система, предназначенная для использования в качестве устройства SAN/NAS. Эта конфигурация позволит двум устройствам Openfiler работать в сценарии высокой доступности Active/Passive.

Требования

Оборудование

  • 2 x устройства, соответствующие минимальным требованиям аппаратного обеспечения Openfiler.
  • 2 x сетевых интерфейса в каждом устройстве
  • Установочный носитель Openfiler 2.3.
  • Оба устройства должны иметь диски одинакового размера, чтобы избежать несоответствий при репликации.

Программное обеспечение

Установите Openfiler 2.3 на оба устройства, используя следующую конфигурацию диска:

  • 3 ГБ коревой (“/”) раздел
  • 2 ГБ раздел “swap”
  • 512 МБ раздел “/meta” (используется для DRBD0)
  • Раздел данных, настроенный как не смонтированный LVM (используется для DRBD1)

Конфигурация

Сеть

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

Третий “виртуальный” интерфейс используется службой heartbeat и будет использоваться компьютерами в LAN.

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

filer01

  • LAN Интерфейс (eth0) 192.168.1.18
  • Интерфейс репликации (eth1) 10.188.188.1

filer02

  • LAN Интерфейс (eth0) 192.168.1.19
  • Интерфейс репликации (eth1) 10.188.188.2

HA NAS/SAN Адрес (eth0) 192.168.1.17

  • Это настраивается в файле cluster.xml (не пытайтесь настраивать в другом месте)

Настройка имени хоста

Чтобы оба узла могли распознавать друг друга по имени, настройте файл hosts на каждом компьютере.
Измените наш /etc/hosts (на filer01):

# Не удаляйте следующую строку, иначе различные программы
# которые требуют сетевой функциональности, будут работать некорректно.
127.0.0.1 filer01 localhost.localdomain localhost
10.188.188.2 filer02

Измените наш /etc/hosts (на filer02):

# Не удаляйте следующую строку, иначе различные программы
# которые требуют сетевой функциональности, будут работать некорректно.
127.0.0.1 filer02 localhost.localdomain localhost
10.188.188.1 filer01

SSH Общие ключи

Чтобы позволить двум устройствам Openfiler общаться друг с другом без необходимости использования пароля, используйте общие ключи SSH.

На filer01:

  root@filer01 ~# ssh-keygen -t dsa

Нажмите Enter на запросах (не устанавливайте пароль для ключа).

На filer02:

  root@filer02 ~# ssh-keygen -t dsa

Нажмите Enter на запросах (не устанавливайте пароль для ключа).

Вышеуказанная команда создаст файл с именем “id_dsa.pub” в ~/.ssh/, который необходимо скопировать на другой узел:

root@filer01 ~# scp .ssh/id_dsa.pub root@filer02:~/.ssh/authorized_keys2
root@filer02 ~# scp .ssh/id_dsa.pub root@filer01:~/.ssh/authorized_keys2

Настройка DRBD

DRBD — это то, что будет поддерживать данные между двумя узлами в согласованном состоянии.

На filer01:

  root@filer01 ~# mv /etc/drbd.conf /etc/drbd.conf.org

Затем измените drbd.conf (версия 8) в соответствии с следующим:

global {
 # minor-count 64;
 # dialog-refresh 5; # 5 секунд
 # disable-ip-verification;
 usage-count ask;
}

common {
 syncer { rate 100M; }
}

resource cluster_metadata {
 protocol C;
 handlers {
  pri-on-incon-degr "echo O > /proc/sysrq-trigger ; halt -f";
  pri-lost-after-sb "echo O > /proc/sysrq-trigger ; halt -f";
  local-io-error "echo O > /proc/sysrq-trigger ; halt -f";
  # outdate-peer "/usr/sbin/drbd-peer-outdater";
 }
 
 startup {
  # wfc-timeout 0;
  degr-wfc-timeout 120; # 2 минуты.
 }

 disk {
  on-io-error detach;
 }

 net {
  after-sb-0pri disconnect;
  after-sb-1pri disconnect;
  after-sb-2pri disconnect;
  rr-conflict disconnect;
 }

 syncer {
  # rate 10M;
  # after "r2";
  al-extents 257;
 }

 on filer01 {
  device /dev/drbd0;
  disk /dev/sda3;
  address 10.188.188.1:7788;
  meta-disk internal;
 }

 on filer02 {
  device /dev/drbd0;
  disk /dev/sda3;
  address 10.188.188.2:7788;
  meta-disk internal;
 }
}

resource vg0drbd {
 protocol C;
 startup {
  wfc-timeout 0; ## Бесконечно!
  degr-wfc-timeout 120; ## 2 минуты.
 }

 disk {
  on-io-error detach;
 }

 net {
  # timeout 60;
  # connect-int 10;
  # ping-int 10;
  # max-buffers 2048;
  # max-epoch-size 2048;
 }

 syncer {
  after "cluster_metadata";
 }

 on filer01 {
  device /dev/drbd1;
  disk /dev/sda5;
  address 10.188.188.1:7789;
  meta-disk internal;
 }

 on filer02 {
  device /dev/drbd1;
  disk /dev/sda5;
  address 10.188.188.2:7789;
  meta-disk internal;
 }
}

Оба узла должны иметь одинаковый drbd.conf, поэтому файл drbd.conf с filer01 будет скопирован на filer02:

  root@filer01 ~# scp /etc/drbd.conf root@filer02:/etc/drbd.conf

Инициализируйте метаданные на /dev/drbd0 (cluster_metadata) и /dev/drbd1 (vg0drbd) на обоих узлах:

root@filer01 ~# drbdadm create-md cluster_metadata
root@filer01 ~# drbdadm create-md vg0drbd
root@filer02 ~# drbdadm create-md cluster_metadata
root@filer02 ~# drbdadm create-md vg0drbd

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

  root@filer01 ~# dd if=/dev/zero of=/dev/sda3

Будьте осторожны с этой командой и убедитесь, что она выполняется на правильном диске.

Перед запуском службы DRBD убедитесь, что раздел, используемый для drbd0 (в ресурсе cluster_metadata в файле drbd.conf), не смонтирован (что будет по умолчанию, если он был создан во время установки).

  root@filer01 ~# umount /dev/sda3

Теперь запустите DRBD на обоих узлах:

root@filer01 ~# service drbd start
  root@filer02 ~# service drbd start

Если все пройдет хорошо, они должны подключиться, и выполнение “service drbd status” должно выдать вывод, похожий на следующий:

  root@filer1 /# service drbd status

drbd driver loaded OK; device status:
version: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
0:cluster_metadata Connected Secondary/Secondary Inconsistent/Inconsistent C
1:vg0drbd Connected Secondary/Secondary Inconsistent/Inconsistent C

Как только оба ресурса drbd подключены и оба узла находятся в состоянии Secondary (как выше), установите Primary узел:

root@filer01 ~# drbdsetup /dev/drbd0 primary -o
root@filer01 ~# drbdsetup /dev/drbd1 primary -o

Это должно дать вам результат статуса, похожий на следующий:

  root@filer1 /# service drbd status

drbd driver loaded OK; device status:
version: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
… sync’ed: 17.9% (247232/297152)K
0:cluster_metadata SyncSource? Primary/Secondary UpToDate/Inconsistent C
1:vg0drbd PausedSyncS? Primary/Secondary UpToDate/Inconsistent C

Примечание: если LVM vg0drbd большой, синхронизация займет много времени (возможно, всю ночь).

Включите DRBD для автоматического запуска при загрузке:

root@filer01 ~# chkconfig –level 2345 drbd on
root@filer02 ~# chkconfig –level 2345 drbd on

Теперь создайте файловую систему cluster_metadata. Используйте этот 512 МБ раздел для хранения всех данных конфигурации Openfiler и данных для служб, которые должны быть доступны в HA (например, NFS, iSCSI, SMB).

  root@filer01 ~# mkfs.ext3 /dev/drbd0

Не добавляйте этот раздел в /etc/fstab, так как он управляется Heartbeat (и будет настроен в ближайшее время).

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.