Привет Всем!Есть два сервера:
cl1 – 10.0.1.210
cl3 – 10.0.1.45
Virtual IP – 10.0.1.245
ОС – DebianУстановил DRBD8 + heartbeat 2.1.3-6lenny1
Задача:
1. Сделать полное резервирование одного раздела жесткого диска на обеих машинах
2. Объединить машины в один кластер с одним виртуальным IPНиже конфигурационный файл DRBD8, он одинаковый на двух серверах:
[html]
resource r0 {
protocol C;startup { wfc-timeout 30; degr-wfc-timeout 120; }
disk { on-io-error detach; }
syncer {
rate 200M;
al-extents 257;
}
on cl1 {
device /dev/drbd1;
disk /dev/hda9;
address 10.0.1.210:7788;
meta-disk internal;
}on cl3 {
device /dev/drbd1;
disk /dev/hda9;
address 10.0.1.45:7788;
meta-disk internal;
}}
[/html]
Ниже конфигурационный файл ha.cf, он одинаковый на серверах, за исключением параметра «ucast eth0 10.0.1.45». На cl1 он имеет IP cl3. На cl3 он имеет IP cl1.[html]
logfacility local0
logfile /var/log/ha-log
debugfile /var/log/ha-debug
use_logd on
udpport 694
keepalive 1 # 1 second
warntime 5
deadtime 10
auto_failback on
use_logd yes
bcast eth0
node cl1
node cl3
ucast eth0 10.0.1.45
udp eth0
crm off
[/html]Ниже конфигурационный файл haresources, он одинаковый на двух серверах:
cl1 IPaddr::10.0.1.245/24/eth0/10.0.1.255
cl1 drbddisk::r0 Filesystem::/dev/drbd1::/homeВопросы:
1, почему при выполнение команды cat /proc/drbd:
cl1:~# cat /proc/drbd
version: 8.0.14 (api:86/proto:86)
GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:331: cs:WFConnection st:Primary/Unknown ds:UpToDate/DUnknown C r---
ns:0 nr:0 dw:40 dr:849 al:2 bm:2 lo:0 pe:0 ua:0 ap:0
resync: used:0/61 hits:0 misses:0 starving:0 dirty:0 changed:0
act_log: used:0/257 hits:8 misses:2 starving:0 dirty:0 changed:2я вижу статус только первого сервера «Primary» на cl1 и «Secondary» на cl2. То есть почему если cl1 есть «Primary» а cl2 «Secondary» я не вижу следующего на cl1:
cs:WFConnection st:Primary/Secondary ds:UpToDate/DUnknown C r---
И следующего на cl2:
cs:StandAlone st:Secondary/ Primary ds:UpToDate/DUnknown r---
2. Почему не пишется лог в ha-log ?
Раздел drbd1 на обоих нодах не синхронизирован, о чем говорит статус WFConnection.
>Раздел drbd1 на обоих нодах не синхронизирован, о чем говорит статус WFConnection.
>Подскажи, пожалуйста, как их синхронизировать ?
>>Раздел drbd1 на обоих нодах не синхронизирован, о чем говорит статус WFConnection.
>>
>
>Подскажи, пожалуйста, как их синхронизировать ?Испчерпывающая ин-фа по настройке и администрированиию
http://www.drbd.org/users-guide/
>>>Раздел drbd1 на обоих нодах не синхронизирован, о чем говорит статус WFConnection.
>>>
>>
>>Подскажи, пожалуйста, как их синхронизировать ?
>
>Испчерпывающая ин-фа по настройке и администрированиию
>http://www.drbd.org/users-guide/В предыдущей конфигурации у меня возникала ситуация split-brain.
Я внес изменения описывающие разрешения ситуации split-brain в мой конфигурационный файл drbd.conf в раздел net {}. После этого все заработало корректно:cl1:/etc# drbd-overview
1:r0 Connected Primary/Secondary UpToDate/UpToDate C r--- /home ext3 1.9G 251M 1.6G 15%cl3:~# drbd-overview
1:r0 Connected Secondary/Primary UpToDate/UpToDate C r---Ниже приведен пример моего конфига:
drbd.conf
global {
usage-count yes;
}
resource r0 {
protocol C;
syncer {
rate 40M;
}
net { after-sb-0pri discard-younger-primary;
after-sb-1pri consensus;
after-sb-2pri call-pri-lost-after-sb;}
on cl1 {
device /dev/drbd1;
disk /dev/hda9;
address 10.0.1.210:7788;
meta-disk internal;
}on cl3 {
device /dev/drbd1;
disk /dev/hda9;
address 10.0.1.45:7788;
meta-disk internal;
}}
Так же настроил heartbeat. Ниже приведен его конфигурационный файл:
ha.cf
autojoin none
logfacility none
logfile /var/log/ha-logdebug 3
debugfile /var/log/ha-debug# Отправка одного сигнала heartbeat каждую секунду
keepalive 2 # 1 second# Предупреждение об опаздывающих сигналах heartbeats
warntime 15deadping 80
# Объявляем узлы отключенными после 10 секунд
deadtime 40initdead 120
udpport 694
bcast eth0
auto_failback on
# Перечень компонентов кластера (реальных серверов)
node cl1
node cl3ucast eth0 10.0.1.210
ucast eth0 10.0.1.45crm off
При ручной миграции сервисов с одного хоста на другой:cl1:/etc# /usr/lib/heartbeat/hb_standby
все отработано корректно:
Сервисы: Virtual IP и /dev/drbd1 перешли с cl1 перешел к cl3Но есть проблема
Если я отключаю сетевую карточку у cl3. Virtual IP и /dev/drbd1 переезжают на cl1
Но вот когда я подымаю сетевую карточку на cl3 у меня появляется Split-Brain, ниже лог:drbd1: state = {cs:WFReportParams st:Primary/Unknown ds:UpToDate/DUnknown r---}
drbd1: wanted = {cs:WFReportParams st:Secondary/Unknown ds:UpToDate/DUnknown r---}
drbd1: Split-Brain detected, dropping connection!
drbd1: error receiving ReportSate, 1:4!Я так понимаю нужно колдовать с drbd.conf c разделом net {}. Может кто-то может подсказать исходя из своего опыта какие параметры лучше использовать ????
>[оверквотинг удален]
>появляется Split-Brain, ниже лог:
>
>drbd1: state = {cs:WFReportParams st:Primary/Unknown ds:UpToDate/DUnknown r---}
>drbd1: wanted = {cs:WFReportParams st:Secondary/Unknown ds:UpToDate/DUnknown r---}
>drbd1: Split-Brain detected, dropping connection!
>drbd1: error receiving ReportSate, 1:4!
>
>Я так понимаю нужно колдовать с drbd.conf c разделом net {}. Может
>кто-то может подсказать исходя из своего опыта какие параметры лучше использовать
>????я бы net переписал следующим образом
net {
after-sb-0pri disconnect;
after-sb-1pri disconnect;
after-sb-2pri disconnect;
rr-conflict disconnect
}исходя из своего опыта в случае Split-Brain эту ситуацию лучше решать самосоятельно. т.е.
на сбойной ноде:drbd secondary resource
drbdam -- --discard-my-data connect resourceи протокол я бы поставил B (если у вас ноды в режиме primary/slave) на отказоустойчивость не сильно повлияет но скорости добавится ощутимо