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

