DRBD - проблеми и решения

от ILuxWiki

Направо към: навигация, търсене

Съдържание

инсталация на ubuntu

 sudo apt-get install drbd8-utils
 sudo apt-get install pacemaker
 sudo apt-get install heartbeat
 /usr/sbin/update-rc.d -f corosync remove
 node $id="93e2cf22-274b-4304-9081-413c56e87844" aes-01 \
       attributes standby="off"
 node $id="ab0ce93f-ba55-4ec4-b673-65178f3c77fb" aes-02 \
       attributes standby="off"
 primitive ClusterIP ocf:heartbeat:IPaddr2 \
       params ip="94.155.49.6" cidr_netmask="32" \
       op monitor interval="30s"
 primitive drbd ocf:linbit:drbd \
       params drbd_resource="r0" \
       op monitor interval="60s"
 primitive drbd_fs ocf:heartbeat:Filesystem \
       params device="/dev/drbd0" directory="/replicated" fstype="reiserfs"
 primitive mysql ocf:heartbeat:mysql \
       params binary="/usr/bin/mysqld_safe" config="/etc/mysql/my.cnf" user="mysql" group="mysql" log="/var/log/mysql/mysql.log" pid="/var/run/mysqld/mysqld.pid" datadir="/var/lib/mysql" socket="/var/run/mysqld/mysqld.sock" \
       op monitor interval="30s" timeout="30s" \
       op start interval="0" timeout="120" \
       op stop interval="0" timeout="120"
 ms drbd_ms drbd \
       meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
 colocation alltogether inf: mysql drbd_fs ClusterIP drbd_ms:Master
 colocation fs_on_drbd inf: drbd_fs drbd_ms:Master
 order fs_after_drbd inf: drbd_ms:promote drbd_fs:start
 order mysql_after_fs inf: drbd_fs:start mysql:start
 property $id="cib-bootstrap-options" \
       dc-version="1.0.8-042548a451fce8400660f6031f4da6f0223dd5dd" \
       cluster-infrastructure="Heartbeat" \
       stonith-enabled="false" \
       no-quorum-policy="ignore" \
       last-lrm-refresh="1332207454"
 rsc_defaults $id="rsc-options" \
       resource-stickiness="100"


  • редакция на /etc/init.d/heartbeat (раздел tmpfs)
   test -d $RUNDIR/mysqld || mkdir $RUNDIR/mysqld
   chown mysql:mysql $RUNDIR/mysqld
  • ползване на group
 group mysql res-Wmysql3-IP res-Wmysql3-Fs res-Mysql
 colocation col-mysql inf: mysql ms-Drbd-R0:Master
 order ord-mysql inf: ms-Drbd-R0:promote mysql:start
  • Изчистване на грешки
 crm_resource -P

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

Като цяло няма разлика в начина на инсталация на Сървър №1 и Сървър №2.

  • Сървър №1 - eas-01 (eth1: 10.255.0.1)
  • Сървър №2 - eas-02 (eth1: 10.255.0.2)


Сървър №1

 global {
                 usage-count     yes;
 }
 resource r0 {
         protocol        C;
         startup {
                 degr-wfc-timeout        0;
         }
         net {
 #               cram-hmac-alg   sha1;
 #               shared-secret   QBZjLRAGYZngXb4OQUfz4yxLn64uUl5T;
         }
         syncer {
                 rate 100M;
                 al-extents 257;
         }
         disk {
                 on-io-error     detach;
         }
         on aes-01 {
                 device  /dev/drbd0;
                 disk    /dev/cciss/c0d0p2;
                 address 10.255.0.1:7788;
                 flexible-meta-disk      internal;
         }
         on aes-02 {
                 device  /dev/drbd0;
                 disk    /dev/cciss/c0d0p2;
                 address 10.255.0.2:7788;
                 flexible-meta-disk      internal;
         }
 }

Сървър №2

Съдържанието е същото като на Сървър №1. Как става това за постоянно - csync2. След като създадем файловете в /etc/drbd.conf, изпълняваме следната команда:

 drbdadm create-md all

При желание може да се ползва структурата на debian, погледнете съдържанието на /etc/drbd.d/* директория, в този случай, горните файлове трябва да се казват r0.res и да се намират в тази директория, като /etc/drbd.conf става със следното съдържание:

 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example
 include "drbd.d/global_common.conf";
 include "drbd.d/*.res";


Проверка за състоянието се прави така:

 cat /proc/drbd

split-brain или що ме боли главата...

Защо НЕ! Винаги когато нещо трябва да се свърши много спешно се настъпва най-голямата мотика...

Ако и двата ви хоста с drbd дават следния проблем:

 [root@db-2 ~]# cat /proc/drbd 
 version: 8.0.13 (api:86/proto:86)
 GIT-hash: ee3ad77563d2e87171a3da17cc002ddfd1677dbe build by buildsvn@c5-i386-build, 2008-08-07 13:42:56
 0: cs:StandAlone st:Secondary/Unknown ds:UpToDate/DUnknown   r---
   ns:0 nr:0 dw:0 dr:0 al:0 bm:0 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:0 misses:0 starving:0 dirty:0 changed:0

Ето решението на този проблем:

 bad-node# drbdadm -- --discard-my-data connect <resource>
 good-node# drbdadm connect <resource>

mkfs не работи

Ако при стартиране на mkfs получавате подобна грешка:

 mkfs.ext3 /dev/drbd0
 mke2fs 1.41.11 (14-Mar-2010)
 mkfs.ext3: Wrong medium type while trying to determine filesystem size

Проверете какво показва /proc/drbd

 cat /proc/drbd
 version: 8.3.7 (api:88/proto:86-91)
 GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@aes-01, 2010-11-11 19:25:19
  0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r----
     ns:0 nr:0 dw:0 dr:200 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

ако имате Secondary/Secondary, изпълнете тази команда:

 drbdadm primary drbd_resource

полезни