Установка · 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 filer01SSH Общие ключи
Чтобы позволить двум устройствам 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 statusdrbd 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 statusdrbd 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 (и будет настроен в ближайшее время).
Get new posts in your inbox
No spam. Unsubscribe anytime.