рдкреЗрд╕рдореЗрдХрд░, рдХреЛрд░реЛрд╕рд┐рдВрдХреН, рдФрд░ DRBD (CentOS 5.5) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХреНрдЯрд┐рд╡ / рдкреИрд╕рд┐рд╡ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реА рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

рдпрд╣ рдЖрд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреЗрд╕рдореЗрдХрд░, рдХреЛрд░реЛрд╕рд┐рдВрдХреНрд╕ рдФрд░ рдбреАрдЖрд░рдмреАрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдХреНрд░рд┐рдп / рдирд┐рд╖реНрдХреНрд░рд┐рдп рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдПрд▓ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред

BRLink рд╕рд░реНрд╡рд┐рдбреЛрд░ рд▓рд┐рдирдХреНрд╕ рдЯреАрдо рд╕реЗ рд░рд╛рдлреЗрд▓ рдорд╛рд░рдВрдЧреЛрдиреА рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛



1. рдЯрд┐рдкреНрдкрдгреА:





рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг:


Centos 5.5 рд╡рд┐рддрд░рдг рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдк Red Hat Linux рдпрд╛ Fedore Core рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ

рд╣рдо рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ PostgreSQL рдбреЗрдЯрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП DRBD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ DRBD рдбрд┐рд╕реНрдХ рдпрд╛ рд╡рд┐рднрд╛рдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдпрд╛рдж рд░рдЦреЗрдВ: рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдбрд┐рд╕реНрдХ рд╡рд┐рднрд╛рдЬрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП



рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдг / рдЯреЛрдкреЛрд▓реЙрдЬреА:


рд╣рдо рджреЛ рдЧрд┐рдЧрд╛рдмрд┐рдЯ рдПрдирдЖрдИрд╕реА рдХреЗ рдкреНрд░рддрд┐ рдиреЛрдб, рдПрдХ (eth0) рдиреЗрдЯрд╡рд░реНрдХ (LAN) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ (eth1) рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕ рдХрдиреЗрдХреНрдЯ рдХреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреНрд░реЙрд╕рдУрд╡рд░ рдХреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдо рджреЛ рднреМрддрд┐рдХ рдиреЛрдбреНрд╕ рдиреЛрдб 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ редclusterbr.int рдФрд░ node2.clusterbr.int:

рдиреЛрдб1.clusterbr.int: рдкрд╣рд▓реЗ рдиреЛрдб рдХрд╛ рдЖрдИрдкреА 10.0.0.191 (LAN) рдФрд░ рдЖрдИрдкреА 172.16.0.1 (рдХреНрд░реЙрд╕-рдХрдиреЗрдХреНрдЯ)

node2.clusterbr.int: рдЖрдИрдкреА 10.0.0.192 (LAN) рдФрд░ IP 172.16.0.2 (рдХреНрд░реЙрд╕ рдХрдиреЗрдХреНрдЯ)

dbip.clusterbr.int: рдХреНрд▓рд╕реНрдЯрд░ IP, 10.0.0.190 (рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ PostgreSQL рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ IP рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)

* рдХреНрд░реЙрд╕ рдХрдиреЗрдХреНрдЯ рдореИрдВ рдХреНрд░реЙрд╕-рдУрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛



рдбрд┐рд╕реНрдХ:


рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдХреЗ рджреЛ рдЦрдВрдб рд╣реИрдВ:

/ dev / sda: OSes рдХреЗ рд▓рд┐рдП;

/ рджреЗрд╡ / sdb: DRBD рдХреЗ рд▓рд┐рдПред



PostgreSQL:


PostgreSQL рд╕рдВрд╕реНрдХрд░рдг 8.5, DRBD рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рднреА рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



2. рдиреЛрдб рдХреА рддреИрдпрд╛рд░реА:



рдЪрдпрди рдЕрдХреНрд╖рдо рдХрд░реЗрдВ:

vi /etc/selinux/config







(рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╛рдХреА рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ)

SELINUX=disabled







рд╣реЛрд╕реНрдЯрдирд╛рдо рдФрд░ рд╣реЛрд╕реНрдЯ рдЧреЗрдЯрд╡реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

vi /etc/sysconfig/network







node1:

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=node1.clusterbr.int

GATEWAY=10.0.0.9

node2:

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=node2.clusterbr.int

GATEWAY=10.0.0.9








рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

node1:

LAN рдЗрдВрдЯрд░рдлрд╝реЗрд╕:

vi /etc/sysconfig/network-scripts/ifcfg-eth0



DEVICE=eth0

BOOTPROTO=static

IPADDR=10.0.0.191

NETMASK=255.255.255.0

ONBOOT=yes

HWADDR=a6:1e:3d:67:66:78








рдХреНрд░реЙрд╕-рдУрд╡рд░ / DRBD рдЗрдВрдЯрд░рдлрд╝реЗрд╕:

vi /etc/sysconfig/network-scripts/ifcfg-eth1



DEVICE=eth1

BOOTPROTO=static

IPADDR=172.16.0.1

NETMASK=255.255.255.0

ONBOOT=yes

HWADDR=ee:ef:ff:9a:9a:57








node2:

LAN рдЗрдВрдЯрд░рдлрд╝реЗрд╕:

vi /etc/sysconfig/network-scripts/ifcfg-eth0



DEVICE=eth0

BOOTPROTO=static

IPADDR=10.0.0.192

NETMASK=255.255.255.0

ONBOOT=yes

HWADDR=52:52:a1:1a:62:32








рдХреНрд░реЙрд╕-рдУрд╡рд░ / DRBD рдЗрдВрдЯрд░рдлрд╝реЗрд╕:

vi /etc/sysconfig/network-scripts/ifcfg-eth1



DEVICE=eth1

BOOTPROTO=static

IPADDR=172.16.0.2

NETMASK=255.255.255.0

ONBOOT=yes

HWADDR=1a:18:b2:50:96:1e








DNS рд╕реЗрдЯрдЕрдк:

vi /etc/resolv.conf



search clusterbr.int

nameserver 10.0.0.9








рд╣реЛрд╕реНрдЯрдирд╛рдо рд╕реЗрдЯрд┐рдВрдЧ:

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рд╕рдорд╛рди рд╣реИ:

vi /etc/hosts



127.0.0.1 localhost.localdomain localhost

10.0.0.191 node1.clusterbr.int node1

10.0.0.192 node2.clusterbr.int node2

10.0.0.190 dbip.clusterbr.int node2








рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

node1:

рд╣рдо рдиреЛрдб 2 (рд▓реИрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЛ рдкрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ:

ping -c 2 node2



[root@node1 ~]# ping -c 2 node2

PING node2 (10.0.0.192) 56(84) bytes of data.

64 bytes from node2 (10.0.0.192): icmp_seq=1 ttl=64 time=0.089 ms

64 bytes from node2 (10.0.0.192): icmp_seq=2 ttl=64 time=0.082 ms

--- node2 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 999ms

rtt min/avg/max/mdev = 0.082/0.085/0.089/0.009 ms








рд╣рдо рдиреЛрдб 2 (рдХреНрд░реЙрд╕-рдУрд╡рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ):

ping -c 2 172.16.0.2



[root@node1 ~]# ping -c 2 172.16.0.2

PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.

64 bytes from 172.16.0.2: icmp_seq=1 ttl=64 time=0.083 ms

64 bytes from 172.16.0.2: icmp_seq=2 ttl=64 time=0.083 ms

--- 172.16.0.2 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 999ms

rtt min/avg/max/mdev = 0.083/0.083/0.083/0.000 ms








node2:

рд╣рдо рдиреЛрдб 1 (рд▓реИрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдкрд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

ping -c 2 node1

[root@node2 ~]# ping -c 2 node1

PING node1 (10.0.0.191) 56(84) bytes of data.

64 bytes from node1 (10.0.0.191): icmp_seq=1 ttl=64 time=0.068 ms

64 bytes from node1 (10.0.0.191): icmp_seq=2 ttl=64 time=0.063 ms

--- node1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 999ms

rtt min/avg/max/mdev = 0.063/0.065/0.068/0.008 ms








рд╣рдо рдкрд┐рдВрдЧ рдиреЛрдб 1 (рдХреНрд░реЙрд╕-рдУрд╡рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ):

ping -c 2 172.16.0.1



[root@node2 ~]# ping -c 2 172.16.0.1

PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data.

64 bytes from 172.16.0.1: icmp_seq=1 ttl=64 time=1.36 ms

64 bytes from 172.16.0.1: icmp_seq=2 ttl=64 time=0.075 ms

--- 172.16.0.1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1001ms

rtt min/avg/max/mdev = 0.075/0.722/1.369/0.647 ms








рдЖрд░рдВрднреАрдХрд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ:

(рдХреЗрд╡рд▓ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╢реЗрд╖ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)

vi /etc/inittab



id:3:initdefault:








рдЪрд▓рд┐рдП рд╕реЗрд╡рд╛рдПрдВ рджреЗрдЦрддреЗ рд╣реИрдВ:

chkconfig --list | grep 3:sim



[root@node1 ~]# chkconfig --list | grep 3:sim

acpid 0:n├Г┬гo 1:n├Г┬гo 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo

anacron 0:n├Г┬гo 1:n├Г┬гo 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo

apmd 0:n├Г┬гo 1:n├Г┬гo 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo

atd 0:n├Г┬гo 1:n├Г┬гo 2:n├Г┬гo 3:sim 4:sim 5:sim 6:n├Г┬гo

cpuspeed 0:n├Г┬гo 1:sim 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo

crond 0:n├Г┬гo 1:n├Г┬гo 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo

irqbalance 0:n├Г┬гo 1:n├Г┬гo 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo

kudzu 0:n├Г┬гo 1:n├Г┬гo 2:n├Г┬гo 3:sim 4:sim 5:sim 6:n├Г┬гo

network 0:n├Г┬гo 1:n├Г┬гo 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo

rawdevices 0:n├Г┬гo 1:n├Г┬гo 2:n├Г┬гo 3:sim 4:sim 5:sim 6:n├Г┬гo

sshd 0:n├Г┬гo 1:n├Г┬гo 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo

syslog 0:n├Г┬гo 1:n├Г┬гo 2:sim 3:sim 4:sim 5:sim 6:n├Г┬гo








рдЕрдм, рдЙрдкрд░реЛрдХреНрдд рдЪрд░рдгреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдиреЛрдбреНрд╕ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВрдЧреЗред



3. рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛



рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ:

yum install -y postgresql84** gcc perl-mailtools perl-dbi php-pgsql







рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝реЗрдВ:

rpm -Uvh download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm







рдЕрдм рд╣рдо рдХреНрд▓рд╕реНрдЯрд░рд╕реНрдЯрд░ рдИрдкреАрдПрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

wget -O /etc/yum.repos.d/pacemaker.repo clusterlabs.org/rpm/epel-5/clusterlabs.repo







рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ DRBD рдкреИрдХреЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

yum install -y pacemaker corosync drbd83 kmod-drbd83 heartbeat







4. DRBD рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ DRBD рдХреЛ рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

vi /etc/drbd.conf



global {

usage-count no;

}

common {

syncer { rate 100M; }

protocol C;

}

resource postgres {

startup {

wfc-timeout 0;

degr-wfc-timeout

120;

}

disk { on-io-error detach; }

on node1.clusterbr.int {

device /dev/drbd0;

disk /dev/sdb;

address 172.16.0.1:7791;

meta-disk internal;

}

on node2.clusterbr.int {

device /dev/drbd0;

disk /dev/sdb;

address 172.16.0.2:7791;

meta-disk internal;

}

}








рдореБрдЦреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрдЗрдЯрдо:



рд╕рдВрд╕рд╛рдзрди: рд╣рдо рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ DRBD рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ "рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ" рдХрд╣рд╛ рд╣реИ

рдбрд┐рд╕реНрдХ: рдЙрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬреЛ DRBD (рдбрд┐рд╕реНрдХ рдпрд╛ рд╡рд┐рднрд╛рдЬрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛

рдкрддрд╛: IP рдкрддрд╛ рдФрд░ рдкреЛрд░реНрдЯ рдЬреЛ DRBD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рд╣рдордиреЗ рдХреНрд░реЙрд╕-рдУрд╡рд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ)

syncer: рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рджрд░

рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рдпрд╛ рд╕рдВрджреЗрд╣ рд╣реИрдВ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдореИрдиреБрдЕрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: www.drbd.org/users-guide-emb



рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рдж, рд╣рдо PostgreSQL рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдХреЗ:

node1:

drbdadm create-md postgres



[root@node1 ~]# drbdadm create-md postgres

Writing meta data...

initializing activity log

NOT initialized bitmap

New drbd meta data block successfully created.








node2:

drbdadm create-md postgres



[root@node2 ~]# drbdadm create-md postgres

Writing meta data...

initializing activity log

NOT initialized bitmap

New drbd meta data block successfully created.








рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ, рд╣рдо рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВрдЧреЗ:

drbdadm up postgres







рдЕрдм рд╣рдо рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддреБрд▓реНрдпрдХрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдиреЛрдб 1 рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдореБрдЦреНрдп рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░реЗрдВ:

drbdadm -- --overwrite-data-of-peer primary postgres







рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ:

cat /proc/drbd



[root@node1 ~]# cat /proc/drbd

version: 8.3.8 (api:88/proto:86-94)

GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09

0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----

ns:48128 nr:0 dw:0 dr:48128 al:0 bm:2 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:8340188

[>....................] sync'ed: 0.6% (8144/8188)M delay_probe: 7

finish: 0:11:29 speed: 12,032 (12,032) K/sec








рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдм рдЖрдХрд╛рд░, рдбрд┐рд╕реНрдХ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд▓рд╕реНрдЯрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЧрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкреЛрд╕реНрдЯрдЧреНрд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ

node1:

cat /proc/drbd



[root@node1 ~]# cat /proc/drbd

version: 8.3.8 (api:88/proto:86-94)

GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

ns:8388316 nr:0 dw:0 dr:8388316 al:0 bm:512 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0








node2:

cat /proc/drbd



[root@node2 ~]# cat /proc/drbd

version: 8.3.8 (api:88/proto:86-94)

GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09

0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----

ns:0 nr:8388316 dw:8388316 dr:0 al:0 bm:512 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0








5. PostgreSQL рд╕реЗрдЯрдЕрдк


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ DRBD рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

/etc/init.d/drbd start







рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдиреЛрдб 1 рдореБрдЦреНрдп рдиреЛрдб рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдкрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ:

cat /proc/drbd



[root@node1 ~]# cat /proc/drbd

version: 8.3.8 (api:88/proto:86-94)

GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

ns:8388316 nr:0 dw:0 dr:8388316 al:0 bm:512 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0








рдкреНрд░рд╛рдердорд┐рдХ / рдорд╛рдзреНрдпрдорд┐рдХ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдердорд┐рдХ рдФрд░ рджреВрд╕рд░рд╛ рдорд╛рдзреНрдпрдорд┐рдХ рд╣реИред



рдЕрдЧрд▓рд╛ рд╣рдореЗрдВ DRBD рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ ext3 рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

node1:

mkfs.ext3 /dev/drbd0







рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдорд╛рдирдХ PostgreSQL рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЛрдб рдкрд░ рдЕрдиреБрднрд╛рдЧ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

node1:

mount -t ext3 /dev/drbd0 /var/lib/pgsql







рдЕрдЧрд▓рд╛, рд╕реНрд╡рд╛рдореА рдмрджрд▓реЗрдВ рдФрд░ рд╕рдореВрд╣ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

node1:

chown postgres.postgres /var/lib/pgsql







рдЕрдм PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ:

node1:

su - postgres

initdb /var/lib/pgsql/data

exit








рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдФрд░ рдЖрдИрдкреА рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:

node1:

echo "host all all 10.0.0.191/32 trust" >> /var/lib/pgsql/data/pg_hba.conf

echo "host all all 10.0.0.192/32 trust" >> /var/lib/pgsql/data/pg_hba.conf

echo "host all all 10.0.0.190/32 trust" >> /var/lib/pgsql/data/pg_hba.conf








рдЕрдЧрд▓рд╛, рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ PostgreSQL рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗ:

node1:

vi /var/lib/pgsql/data/postgresql.conf







рдХреЗрд╡рд▓ рдпрд╣ рд░реЗрдЦрд╛

listen_addresses = '0.0.0.0'







PostgreSQL рдЪрд▓рд╛рдПрдБ:

node1:

/etc/init.d/postgresql start







рдЕрдм PostgeSQL рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ:

node1:

su - postgres

createuser --superuser admpgsql --pwprompt








рдЖрдкрдХреЛ admpgsql рдкрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛



рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЙрд╕реЗ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░реЗрдВрдЧреЗ:

node1:

su - postgres

createdb pgbench

pgbench -i pgbench








pgbench рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЖрдмрд╛рдж рдХрд░реЗрдЧрд╛:

pgbench -i pgbench



-bash-3.2$ pgbench -i pgbench

NOTA: tabela "pgbench_branches" n├Г┬гo existe, ignorando

NOTA: tabela "pgbench_tellers" n├Г┬гo existe, ignorando

NOTA: tabela "pgbench_accounts" n├Г┬гo existe, ignorando

NOTA: tabela "pgbench_history" n├Г┬гo existe, ignorando

creating tables...

10000 tuples done.

20000 tuples done.

30000 tuples done.

40000 tuples done.

50000 tuples done.

60000 tuples done.

70000 tuples done.

80000 tuples done.

90000 tuples done.

100000 tuples done.

set primary key...

NOTA: ALTER TABLE / ADD PRIMARY KEY criar├Г┬б ├Г ndice impl├Г cito "pgbench_branches_pkey" na tabela "pgbench_branches"

NOTA: ALTER TABLE / ADD PRIMARY KEY criar├Г┬б ├Г ndice impl├Г cito "pgbench_tellers_pkey" na tabela "pgbench_tellers"

NOTA: ALTER TABLE / ADD PRIMARY KEY criar├Г┬б ├Г ndice impl├Г cito "pgbench_accounts_pkey" na tabela "pgbench_accounts"

vacuum...done.








рдЕрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдбрд╝рддреЗ рд╣реИрдВ:

node1:

psql -U admpgsql -d pgbench

select * from pgbench_tellers;



psql -U admpgsql -d pgbench

psql (8.4.5)

Digite "help" para ajuda.



pgbench=# select * from pgbench_tellers;

tid | bid | tbalance | filler

-----+-----+----------+--------

1 | 1 | 0 |

2 | 1 | 0 |

3 | 1 | 0 |

4 | 1 | 0 |

5 | 1 | 0 |

6 | 1 | 0 |

7 | 1 | 0 |

8 | 1 | 0 |

9 | 1 | 0 |

10 | 1 | 0 |

(10 registros)








рдпрд╣ рд╕реЗрдЯрдЕрдк рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред



рдиреЛрдб 2 рдкрд░ PostgreSQL рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдБрдЪ:

рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдкреЗрд╕рдореЗрдХрд░ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдкреЛрд╕реНрдЯрдЧреНрд░реЗ рдиреЛрдб 2 рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдиреЛрдб 1 рдкрд░ рд╣рдореЗрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реИрд╕рдХреНрд▓ рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛:

node1:

/etc/init.d/postgresql stop







рдЕрдЧрд▓рд╛, DRBD рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

umount /dev/drbd0







рдЕрдм рд╣рдо DRBD рдкрд░ рдиреЛрдб 1 рдХреЛ рджреНрд╡рд┐рддреАрдпрдХ рдмрдирд╛рдпреЗрдВрдЧреЗ:

drbdadm secondary postgres







рдЕрдм рдиреЛрдб 2 рдкрд░ рд╣рдо DRBD рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдмрдирд╛рдПрдВрдЧреЗ:

node2:

drbdadm primary postgres







рдЕрдЧрд▓рд╛, DRBD рдбрд┐рд╡рд╛рдЗрд╕ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

mount -t ext3 /dev/drbd0 /var/lib/pgsql/







рдФрд░ рдЕрдВрдд рдореЗрдВ PostgreSQL рдЪрд▓рд╛рдПрдВ:

/etc/init.d/postgresql start







рдЕрдм рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдиреЛрдб 2 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ pgbench рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

psql -U admpgsql -d pgbench

select * from pgbench_tellers;



[root@node2 ~]# psql -U admpgsql -d pgbench

psql (8.4.5)

Digite "help" para ajuda.



pgbench=# select * from pgbench_tellers;

tid | bid | tbalance | filler

-----+-----+----------+--------

1 | 1 | 0 |

2 | 1 | 0 |

3 | 1 | 0 |

4 | 1 | 0 |

5 | 1 | 0 |

6 | 1 | 0 |

7 | 1 | 0 |

8 | 1 | 0 |

9 | 1 | 0 |

10 | 1 | 0 |

(10 registros)








рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

node2:

/etc/init.d/postgresql stop

umount /dev/drbd0

drbdadm secondary postgres

/etc/init.d/drbd stop








node1:

drbdadm primary postgres

/etc/init.d/drbd stop








рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рд╕рднреА рд╕реЗрд╡рд╛рдПрдВ рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рдЕрдХреНрд╖рдо рд╣реИрдВ:

chkconfig --level 35 drbd off

chkconfig --level 35 postgresql off








6. Corosync (рдУрдкрдирдПрдЖрдИрдПрд╕) рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛



рдХреЛрд░реЛрд╕рд┐рдВрдХ рд╕реЗрдЯрдЕрдк рдмрдирд╛рдирд╛

node1:

export ais_port=4000

export ais_mcast=226.94.1.1

export ais_addr=`ip address show eth0 | grep "inet " | tail -n 1 | awk '{print $4}' | sed s/255/0/`








рдлрд┐рд░ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

env | grep ais_







Ais_addr рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдПрдбреНрд░реЗрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реБрдиреЗрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ 10.0.0.0 рд╣реИ

рдЖрдЧреЗ рд╣рдо corosync рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВрдЧреЗ:

cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf

sed -i.gres "s/.*mcastaddr:.*/mcastaddr:\ $ais_mcast/g" /etc/corosync/corosync.conf

sed -i.gres "s/.*mcastport:.*/mcastport:\ $ais_port/g" /etc/corosync/corosync.conf

sed -i.gres "s/.*bindnetaddr:.*/bindnetaddr:\ $ais_addr/g" /etc/corosync/corosync.conf








рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд╣рдорд╛рд░реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

cat <<-END >>/etc/corosync/corosync.conf

aisexec {

user: root

group: root

}

END

cat <<-END >>/etc/corosync/corosync.conf

service {

# Load the Pacemaker Cluster Resource Manager

name: pacemaker

ver: 0

}

END








рдлрд╝рд╛рдЗрд▓ /etc/corosync/corosync.conf



рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

compatibility: whitetank



totem {

version: 2

secauth: off

threads: 0

interface {

ringnumber: 0

bindnetaddr: 10.0.0.0

mcastaddr: 226.94.1.1

mcastport: 4000

}

}



logging {

fileline: off

to_stderr: yes

to_logfile: yes

to_syslog: yes

logfile: /tmp/corosync.log

debug: off

timestamp: on

logger_subsys {

subsys: AMF

debug: off

}

}



amf {

mode: disabled

}

aisexec {

user: root

group: root

}

service {

# Load the Pacemaker Cluster Resource Manager

name: pacemaker

ver: 0

}








рдиреЛрдб 1 рд╕реЗ рд╣рдо рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдиреЛрдб 2 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ:

scp /etc/corosync/* node2:/etc/corosync/







рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рд╣рдореЗрдВ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

mkdir /var/log/cluster/







рдЕрдм corosync рдЪрд▓рд╛рдПрдВ

node1:

/etc/init.d/corosync start







рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреНрд░рдо рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

node1:

grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages



[root@node1 bin]# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages

Apr 7 12:37:21 node1 corosync[23533]: [MAIN ] Corosync Cluster Engine ('1.2.0'): started and ready to provide service.

Apr 7 12:37:21 node1 corosync[23533]: [MAIN ] Successfully read main configuration file '/etc/corosync/corosync.conf'.








рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдЬреЛ рдХреЛрд░реЛрд╕рд┐рдВрдХ рдХреЛ рд╕реБрдирдирд╛ рдЪрд╛рд╣рд┐рдП:

grep TOTEM /var/log/messages



[root@node1 bin]# grep TOTEM /var/log/messages

Apr 7 12:37:21 node1 corosync[23533]: [TOTEM ] Initializing transport (UDP/IP).

Apr 7 12:37:21 node1 corosync[23533]: [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).

Apr 7 12:37:21 node1 corosync[23533]: [TOTEM ] The network interface [10.0.0.191] is now up.

Apr 7 12:37:21 node1 corosync[23533]: [TOTEM ] A processor joined or left the membership and a new membership was formed.








рдЕрдЧрд▓рд╛, рдкреЗрд╕рдореЗрдХрд░ рджреЗрдЦреЗрдВ:

grep pcmk_startup /var/log/messages



[root@node1 bin]# grep pcmk_startup /var/log/messages

Apr 7 12:37:21 node1 corosync[23533]: [pcmk ] info: pcmk_startup: CRM: Initialized

Apr 7 12:37:21 node1 corosync[23533]: [pcmk ] Logging: Initialized pcmk_startup

Apr 7 12:37:21 node1 corosync[23533]: [pcmk ] info: pcmk_startup: Maximum core file size is: 4294967295

Apr 7 12:37:21 node1 corosync[23533]: [pcmk ] info: pcmk_startup: Service: 9

Apr 7 12:37:21 node1 corosync[23533]: [pcmk ] info: pcmk_startup: Local hostname: node1








рд╣рдо рдЕрдкрдиреА corosync рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

ps axf



[root@node1 bin]# ps axf

(should contain something like this)

23533 ? Ssl 0:00 corosync

23539 ? SLs 0:00 \_ /usr/lib/heartbeat/stonithd

23540 ? S 0:00 \_ /usr/lib/heartbeat/cib

23541 ? S 0:00 \_ /usr/lib/heartbeat/lrmd

23542 ? S 0:00 \_ /usr/lib/heartbeat/attrd

23543 ? S 0:00 \_ /usr/lib/heartbeat/pengine

23544 ? S 0:00 \_ /usr/lib/heartbeat/crmd








рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рд╣рдо corosync рдХреЛ рдиреЛрдб 2 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

node2:

/etc/init.d/corosync start







рд╣рдо рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдЪреЗрдХ рдХрд░рддреЗ рд╣реИрдВ:

crm_mon -1



[root@node1 ~]# crm_mon -1

============

Last updated: Fri Oct 29 17:44:36 2010

Stack: openais

Current DC: node1.clusterbr.int - partition with quorum

Version: 1.0.9-89bd754939df5150de7cd76835f98fe90851b677

2 Nodes configured, 2 expected votes

0 Resources configured.

============



Online: [ node1.clusterbr.int node2.clusterbr.int ]








рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдХреЛ рдСрдирд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ autoload рдореЗрдВ corosync рдЬреЛрдбрд╝реЗрдВ:

chkconfig --level 35 corosync on







7. рдкреЗрд╕рдореЗрдХрд░ рд╕реЗрдЯрдЕрдк



рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрджреЗрд╢:



рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдВрдЪреЗрдВ:

crm_verify -L







рд╣рдо рд╕реВрдЪреА рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

crm_mon -1







рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реВрдЪреА:

crm configure show







рдЦреБрд▓реЗ рдХреНрд░рдо рдХрдВрд╕реЛрд▓ рдХреА рд╕реВрдЪреА

crm







Stonith рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдП:

crm_verify -L







рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрдЯреЛрдирд┐рде рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

crm configure property stonith-enabled=false







рдЕрдм рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪреЗрдХ рдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

crm_verify -L







рдмреЗрд╕рд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕



рд╣рдорд╛рд░реЗ рдиреЛрдб рд╕реЗ рдХрд┐рд╕реА рднреА рдиреЛрдб рдкрд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

crm configure property no-quorum-policy=ignore







рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рджреВрд╕рд░реЗ рдиреЛрдб рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдиреЛрдб рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рджреВрд╕рд░реЗ рдиреЛрдб рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

crm configure rsc_defaults resource-stickiness=100







рдЖрдЗрдП рджреЗрдЦреЗрдВ рд╣рдорд╛рд░рд╛ рд╡рд┐рдиреНрдпрд╛рд╕:

crm configure show



[root@node1 ~]# crm configure show

node node1.clusterbr.int

node node2.clusterbr.int

property $id="cib-bootstrap-options" \

dc-version="1.0.9-89bd754939df5150de7cd76835f98fe90851b677" \

cluster-infrastructure="openais" \

expected-quorum-votes="2" \

stonith-enabled="false" \

no-quorum-policy="ignore"

rsc_defaults $id="rsc-options" \

resource-stickiness="100"








DBIP рд╡рд┐рдиреНрдпрд╛рд╕



рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ IP рдкрддрд╛ DBIP рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

crm configure primitive DBIP ocf:heartbeat:IPaddr2 \

params ip=10.0.0.190 cidr_netmask=24 \

op monitor interval=30s








рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

crm_mon -1



[root@node1 ~]# crm_mon -1

============

Last updated: Fri Oct 29 17:47:53 2010

Stack: openais

Current DC: node1.clusterbr.int - partition with quorum

Version: 1.0.9-89bd754939df5150de7cd76835f98fe90851b677

2 Nodes configured, 2 expected votes

1 Resources configured.

============



Online: [ node2.clusterbr.int node1.clusterbr.int ]



DBIP (ocf::heartbeat:IPaddr2): Started node2.clusterbr.int








рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рдВрд╕рд╛рдзрди рдХрд╣рд╛рдБ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд▓рд╣рд╛рд▓ рдХрд╛рдо рдиреЛрдб 2 рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдиреЛрдб 1 рдкрд░ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ



рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ DRBD рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди



рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ DRBD рдЬреЛрдбрд╝реЗрдВ:

crm configure primitive drbd_postgres ocf:linbit:drbd \

params drbd_resource="postgres" \

op monitor interval="15s"








рдкреНрд░рд╛рдердорд┐рдХ рдФрд░ рджреНрд╡рд┐рддреАрдпрдХ рдиреЛрдб рд╕реЗрдЯ рдХрд░реЗрдВ:

crm configure ms ms_drbd_postgres drbd_postgres \

meta master-max="1" master-node-max="1" \

clone-max="2" clone-node-max="1" \

notify="true"








рдорд╛рдЙрдВрдЯ DRBD:

crm configure primitive postgres_fs ocf:heartbeat:Filesystem \

params device="/dev/drbd0" directory="/var/lib/pgsql" fstype="ext3"








рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ PostgreSQL рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛



рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ postgresql рдЬреЛрдбрд╝реЗрдВ:

crm configure primitive postgresql ocf:heartbeat:pgsql \

op monitor depth="0" timeout="30" interval="30"








рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛

crm configure group postgres postgres_fs DBIP postgresql

crm configure colocation postgres_on_drbd inf: postgres ms_drbd_postgres:Master








рдкреЛрд╕реНрдЯрдЧреНрд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

DRBDcrm configure order postgres_after_drbd inf: ms_drbd_postgres:promote postgres:start







рдЖрдЗрдП рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЗрдЦреЗрдВ

crm configure show



[root@node1 ~]# crm configure show

node node1.clusterbr.int

node node2.clusterbr.int

primitive DBIP ocf:heartbeat:IPaddr2 \

params ip="10.0.0.190" cidr_netmask="24" \

op monitor interval="30s"

primitive drbd_postgres ocf:linbit:drbd \

params drbd_resource="postgres" \

op monitor interval="15s"

primitive postgres_fs ocf:heartbeat:Filesystem \

params device="/dev/drbd0" directory="/var/lib/pgsql" fstype="ext3"

primitive postgresql ocf:heartbeat:pgsql \

op monitor interval="30" timeout="30" depth="0" \

meta target-role="Started"

group postgres postgres_fs DBIP postgresql \

meta target-role="Started"

ms ms_drbd_postgres drbd_postgres \

meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"

colocation postgres_on_drbd inf: postgres ms_drbd_postgres:Master

order postgres_after_drbd inf: ms_drbd_postgres:promote postgres:start

property $id="cib-bootstrap-options" \

dc-version="1.0.9-89bd754939df5150de7cd76835f98fe90851b677" \

cluster-infrastructure="openais" \

expected-quorum-votes="2" \

stonith-enabled="false" \

no-quorum-policy="ignore"

rsc_defaults $id="rsc-options" \

resource-stickiness="100"

[root@node1 ~]#








рдкрд╕рдВрджреАрджрд╛ рдиреЛрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

crm configure location master-prefer-node1 DBIP 50: node1.clusterbr.int







рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

crm_mon -1



[root@node2 ~]# crm_mon -1

============

Last updated: Fri Oct 29 19:54:09 2010

Stack: openais

Current DC: node2.clusterbr.int - partition with quorum

Version: 1.0.9-89bd754939df5150de7cd76835f98fe90851b677

2 Nodes configured, 2 expected votes

2 Resources configured.

============



Online: [ node2.clusterbr.int node1.clusterbr.int ]



Master/Slave Set: ms_drbd_postgres

Masters: [ node2.clusterbr.int ]

Slaves: [ node1.clusterbr.int ]

Resource Group: postgres

postgres_fs (ocf::heartbeat:Filesystem): Started node2.clusterbr.int

DBIP (ocf::heartbeat:IPaddr2): Started node2.clusterbr.int

postgresql (ocf::heartbeat:pgsql): Started node2.clusterbr.int








рдпрджрд┐ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдирдП рдХреЛрд░реЛрд╕рд┐рдВрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ DBIP (10.0.0.190) рдХреЛ рдЯреАрд╕реАрдкреА 5432 рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕реЗрд╡рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдмрдВрдзрди



рд╕рдВрд╕рд╛рдзрди рдХреЛ рджреВрд╕рд░реЗ рдиреЛрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛:

crm resource migrate postgres node1.clusterbr.int







рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрдорд╛рдВрдб рд╣рдЯрд╛рдирд╛:

crm resource unmigrate postgres







рд╣рдо рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢ рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ:

crm resource cleanup postgres







PostgreSQL рд╕реЗрд╡рд╛ рдмрдВрдж рдХрд░реЛ

crm resource stop postgresql







PostgreSQL рд╕реЗрд╡рд╛ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн

crm resource start postgresql







8. рд╣рдо рд╕реЗрд╡рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ



рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛

рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

/etc/init.d/httpd start

chkconfig --level 35 httpd on








рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ (DocumentRoot):

mkdir /var/www/html/cluster/







рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░реЗрдВ:

crm_mon --daemonize --as-html /var/www/html/cluster/index.html







рдФрд░ рдЪрд▓рд┐рдП рдЗрд╕ рдкреВрд░реА рдмрд╛рдд рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ:

echo "crm_mon --daemonize --as-html /var/www/html/cluster/index.html" >> /etc/rc.d/rc.local







рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдереВрдерди рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

10.0.0.190/cluster







9. postgresql рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП phppgAdmin рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛



рд╣рдо рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреЗ рд╣реИрдВ:

mkdir /download

cd /download

wget 'http://downloads.sourceforge.net/project/phppgadmin/phpPgAdmin%20%5Bbeta%5D/phpPgAdmin-5.0/phpPgAdmin-5.0-beta2.tar.bz2?r=http%3A%2F%2Fphppgadmin.sourceforge.net%2F%3Fpage%3Ddownload&ts=1288189530&use_mirror=ufpr'








рд╕реЗрдЯ рдХрд░реЗрдВ:

tar -jxvf phpPgAdmin-5.0-beta2.tar.bz2

mv phpPgAdmin-5.0-beta2 /var/www/html/cluster-pgadmin

chown apache.apache -R /var/www/html/cluster-pgadmin








10.0.0.190/cluster-pgadmin рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЬрд╛рдПрдВ

рдкреБрдирд╢реНрдЪ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдереЗ



10. рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ



рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ



рдпрд╣рд╛рдБ рд╣рдо 10.0.0.0/24 рдХреЛ MD5 рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ

echo "host all all 10.0.0.0/24 md5">> /var/lib/pgsql/data/pg_hba.conf







рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:

crm resource stop postgresql

crm resource start postgresql








11. рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛



рдХреНрд▓рд╕реНрдЯрд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк Zabbix рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ Zabbix рдПрдЬреЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:



рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП 1. рдЪреЗрдХ рдкрд┐рдВрдЧ (10.0.0.191, 10.0.0.192 рдФрд░ 172.16.0.1, 172.16.0.2)

2. DBIP (рдЖрдИрдкреА рдХреНрд▓рд╕реНрдЯрд░) рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ 10.0.0.190

3. DBIP 10.0.0.190 рдкрд░ TCP рдкреЛрд░реНрдЯ 5432 рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

4. рд╕реАрдкреАрдпреВ, рд░реИрдо рдФрд░ рдбрд┐рд╕реНрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

5. рдЖрдк Monitor_drbd.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд░рд┐рдгрд╛рдо 1 рддрдм рдЖрддрд╛ рд╣реИ рдЬрдм рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реЛ рдФрд░ 0 рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдкрд░ 0)

Zabbix рдХреЗ рд▓рд┐рдП Monitor_drbd.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

#!/bin/bash



CHECK=`cat /proc/drbd | grep UpToDate/UpToDate | cut -d: -f5 | cut -c1-17`

STRING_OK="UpToDate/UpToDate"



# Comparando as duas.

if [ "$CHECK" == "$STRING_OK" ] ; then

# Is ok, returning 1

echo 1;

else

# Not ok, returning 0

echo 0;

fi








PS рдпрджрд┐ рдЖрдкрдиреЗ рдЯрд╛рдЗрдкреЛ рдпрд╛ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдХреЛрдИ рдорд┐рд╕рдореИрдЪ рджреЗрдЦрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрд╕реЗ рдкреАрдПрдо рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рд╕рдорд╛рдЬ рдХреЗ рд╣рд┐рдд рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рдареАрдХ рдХрд░реВрдВрдЧрд╛ред



All Articles