DRBD

Простая минимальная настройка DRBD:
Глобальный файл настроек находится тут:
/etc/drbd.d/global_common.conf

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

Файл ресурса, может быть назван как угодно(главное вконце добавить .res), он может быть не один:
/etc/drbd.d/r0.res

resource r0 {
    device    /dev/drbd0;
    disk      /dev/sdb;
    meta-disk internal;
  on node1 {
    address   10.10.10.71:7789;
  }
  on node2 {
    address   10.10.10.72:7789;
  }

И последний файл, самый важный,он должен знать где лежат глобальные настройки и файлы ресурсов:
/etc/drbd.conf

include "drbd.d/global_common.conf";
include "drbd.d/*.res";

Иногда используют просто этот один файл, и закидывают все в него, но так лучше не делать.

Запускаем на двух нодах:

/etc/init.d/drbd start
drbdadm create-md r0
drbdadm up r0

На одной ноде:

drbdadm -- --overwrite-data-of-peer primary r0

Смотрим результат:

cat /proc/drbd

Переключения ресурсов:

drbdadm primary r0
drbdadm secondary r0

0) Шифруем передачу данных:

resource
   net {
      cram-hmac-alg sha1;
      shared-secret "PasswordDRBD";
    ...
  }
  ...
}

1) Скорость, для гигабитной выставляем 110М

resource
   syncer {
      rate 120M;
      ...
      }
  ...
}

2) Буфер записи на диск(по умолчанию 2048)

resource  {
  net {
    max-buffers 8000;
    max-epoch-size 8000;
    ...
  }
  ...
}

3) TCP буфер (по умолчанию 128 KiB, 0 для автоматического выбора )

resource  {
  net {
    sndbuf-size 0;
    ...
  }
  ...
}

4) Оптимизируем Activity Log

resource  {
  syncer {
    al-extents 3389;
    ...
  }
  ...
}

5)Если используются Heartbeat/Pacemaker
Для Heartbeat добавляеем строки:
/etc/ha.d/ha.cf

respawn hacluster /usr/lib/heartbeat/dopd
apiauth dopd gid=haclient uid=hacluster

Файл ресурса DRBD

resource  {
    handlers {
        fence-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
        ...
    }
    disk {
        fencing resource-only;
        ...
    }
    ...
}

Для Pacemaker файл ресурса DRBD будет таким:

resource  {
  disk {
    fencing resource-only;
    ...
  }
  handlers {
    fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
    after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
    ...
  }
  ...
}

6) Для двух мастеров:

resource {
net {
protocol C;
allow-two-primaries yes;
}
...
}

Пример 1
Скорость работы более 100 Мбайт запись, и чтение больше 130

global {
	usage-count yes;
}

common {
	protocol C;

	handlers {
		pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
		pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
		local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
		fence-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
	}

	startup {
		wfc-timeout 30;
		degr-wfc-timeout 90; 
	}

	disk {
                on-io-error   detach;
 		fencing resource-only;
                no-disk-barrier;
                no-disk-flushes;
                no-md-flushes;
	}

	net {
                 sndbuf-size 0;
                 max-buffers 8000;
                 max-epoch-size 8000;
                 no-tcp-cork;
                 unplug-watermark 16;
	}

	syncer {
		rate 120M;
                al-extents 3389;
	}
}

Бывает нужно поправить

dpkg-statoverride --add --update root haclient 04754 /sbin/drbdsetup
dpkg-statoverride --add --update root haclient 04754 /sbin/drbdmeta

Если пишет

You need to fix this with these commands:
chgrp haclient /sbin/drbdsetup   
chmod o-x /sbin/drbdsetup   
chmod u+s /sbin/drbdsetup
chgrp haclient /sbin/drbdmeta   
chmod o-x /sbin/drbdmeta   
chmod u+s /sbin/drbdmeta

Скачать можно тут:

http://goodadmin.org/wp-content/uploads/2012/11/global_common.zip
http://goodadmin.org/wp-content/uploads/2012/11/drbd.d.zip

Запись опубликована в рубрике Кластеры. Добавьте в закладки постоянную ссылку.