Отказоустойчивость — различия между версиями

Материал из Cisco CCNP
Перейти к навигации Перейти к поиску
imported>Artem
(Новая страница: «https://www.zabbix.org/wiki/Docs/howto/high_availability»)
 
imported>Artem
 
Строка 1: Строка 1:
 
https://www.zabbix.org/wiki/Docs/howto/high_availability
 
https://www.zabbix.org/wiki/Docs/howto/high_availability
 +
 +
 +
http://freeldev.blogspot.ru/2010/08/drbdheartbeatmysql-linux.html
 +
DRBD+Heartbeat+MySQL - Краткий экскурс по резервированию данных в Linux.
 +
Данный вариант настройки производился под Ubuntu 9.04.
 +
 +
DRBD
 +
 +
 +
Устанавливаем DRBD
 +
 +
shell> apt-get update
 +
shell> apt-get install drbd8-utils drbd8-module-source \
 +
  build-essential module-assistant
 +
shell> module-assistant auto-install drbd8
 +
 +
Для настройки DRBD необходимо создать отдельный раздел на диске, размер которого достаточен для размещения базы данных. Далее настраиваем файл /etc/drbd.conf следующим образом:
 +
global {                     
 +
  usage-count no;             
 +
}                         
 +
common {                     
 +
  protocol C;                 
 +
}                         
 +
resource r0 {                 
 +
  syncer {                 
 +
    rate 10M;                 
 +
  }                         
 +
  device    /dev/drbd0;         
 +
  disk      /dev/sdb2;         
 +
  meta-disk internal;         
 +
  on ubuntu1 {                 
 +
    address  192.168.0.1:27789; 
 +
  }                         
 +
  on ubuntu2 {                 
 +
    address  192.168.0.2:27789; 
 +
  }                         
 +
}
 +
где:
 +
rate - скорость обмена данными между резервной и основной машиной.
 +
device - имя виртуального дисковый накопителя.
 +
disk - раздел на диске о котором говорил ранее.
 +
ubuntu1,ubuntu2 - соответствующие host-имена машин.
 +
 +
Копируем данный файл на резервную машину.
 +
 +
1)Настраиваем DRBD для основной машины:
 +
Создаем устройство /dev/drbd0
 +
root-shell> drbdadm create-md all
 +
 +
запускаем DRBD
 +
root-shell> /etc/init.d/drbd start
 +
 +
переводим DRBD в режим primary
 +
root-shell> drbdadm -- --overwrite-data-of-peer primary all
 +
 +
Форматируем раздел под файловую систему ext3 (Можно под другую, но должна быть журналируемой)
 +
root-shell> mkfs.ext3 /dev/drbd0     
 +
 +
Монтируем раздел к операционной системе
 +
root-shell> mkdir /mnt/drbd         
 +
root-shell> mount /dev/drbd0 /mnt/drbd   
 +
 +
2)Настраиваем DRBD для запасной машины
 +
 +
создаем раздел /dev/drbd0
 +
root-shell> drbdadm create-md all
 +
 +
запускаем DRBD
 +
root-shell> /etc/init.d/drbd start
 +
 +
после чего должна запуститься синхронизация, проверить можно следующим образом.
 +
root-shell> cat /proc/drbd
 +
version: 8.0.4 (api:86/proto:86)
 +
SVN Revision: 2947 build by root@drbd-one, 2007-07-30 16:43:05
 +
0: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
 +
    ns:252284 nr:0 dw:0 dr:257280 al:0 bm:15 lo:0 pe:7 ua:157 ap:0
 +
        [==>.................] sync'ed: 12.3% (1845088/2097152)K
 +
        finish: 0:06:06 speed: 4,972 (4,580) K/sec
 +
 +
MySQL
 +
 +
 +
Отключаем MySQL
 +
shell> mysqladmin shutdown
 +
 +
создаем папку MySQL
 +
root-shell> mkdir /mnt/drbd/mysql
 +
 +
копируем базу данных в созданную папку
 +
root-shell> cp -R /var/lib/mysql /mnt/drbd/mysql/data
 +
 +
в файле /etc/mysql/my.cnf на обоих машинах изменяем следующую строку
 +
datadir = /mnt/drbd/mysql/data
 +
 +
Далее вносим аналогичные изменения в файл /etc/apparmor.d/usr.sbin.mysqld
 +
и перезапускаем службу  apparmor
 +
root-shell> /etc/init.d/apparmor upgrate
 +
 +
Перезапускаем MySQL
 +
root-shell> /etc/init.d/mysql start
 +
 +
 +
Heartbeat
 +
 +
 +
В папке /etc/ha.d/ надо создать три файла со следующм содержанием
 +
a) ha.cf
 +
logfacility local0         
 +
keepalive 500ms             
 +
deadtime 10                 
 +
warntime 5                 
 +
initdead 30                 
 +
mcast bond0 225.0.0.1 694 2 0     
 +
auto_failback off             
 +
node ubuntu1             
 +
node ubuntu2
 +
             
 +
b) authkeys - установить права только для чтения
 +
auth 1 
 +
1 crc   
 +
 +
c) haresources
 +
ubuntu1 drbddisk Filesystem::/dev/drbd0::/mnt/drbd::ext3::group gdm mysql apache2 chown 192.168.0.100
 +
 +
 +
  chown — это скрипт который меняет пользователя для монтируемой папки, может иметь следующие содержание
 +
 +
#!/bin/sh -e                 
 +
chown -R mysql:mysql /mnt/drbd

Текущая версия на 18:56, 1 февраля 2013

https://www.zabbix.org/wiki/Docs/howto/high_availability


http://freeldev.blogspot.ru/2010/08/drbdheartbeatmysql-linux.html DRBD+Heartbeat+MySQL - Краткий экскурс по резервированию данных в Linux.

Данный вариант настройки производился под Ubuntu 9.04.

DRBD


Устанавливаем DRBD

shell> apt-get update shell> apt-get install drbd8-utils drbd8-module-source \

 build-essential module-assistant

shell> module-assistant auto-install drbd8

Для настройки DRBD необходимо создать отдельный раздел на диске, размер которого достаточен для размещения базы данных. Далее настраиваем файл /etc/drbd.conf следующим образом: global {

 usage-count no;               

} common {

 protocol C;                   

} resource r0 {

 syncer {                   
   rate 10M;                   
 }                           
 device    /dev/drbd0;           
 disk      /dev/sdb2;           
 meta-disk internal;           
 on ubuntu1 {                   
   address   192.168.0.1:27789;   
 }                           
 on ubuntu2 {                   
   address   192.168.0.2:27789;   
 }                           

} где: rate - скорость обмена данными между резервной и основной машиной. device - имя виртуального дисковый накопителя. disk - раздел на диске о котором говорил ранее. ubuntu1,ubuntu2 - соответствующие host-имена машин.

Копируем данный файл на резервную машину.

1)Настраиваем DRBD для основной машины: Создаем устройство /dev/drbd0 root-shell> drbdadm create-md all

запускаем DRBD root-shell> /etc/init.d/drbd start

переводим DRBD в режим primary root-shell> drbdadm -- --overwrite-data-of-peer primary all

Форматируем раздел под файловую систему ext3 (Можно под другую, но должна быть журналируемой) root-shell> mkfs.ext3 /dev/drbd0

Монтируем раздел к операционной системе root-shell> mkdir /mnt/drbd root-shell> mount /dev/drbd0 /mnt/drbd

2)Настраиваем DRBD для запасной машины

создаем раздел /dev/drbd0 root-shell> drbdadm create-md all

запускаем DRBD root-shell> /etc/init.d/drbd start

после чего должна запуститься синхронизация, проверить можно следующим образом. root-shell> cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@drbd-one, 2007-07-30 16:43:05

0: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
   ns:252284 nr:0 dw:0 dr:257280 al:0 bm:15 lo:0 pe:7 ua:157 ap:0
       [==>.................] sync'ed: 12.3% (1845088/2097152)K
       finish: 0:06:06 speed: 4,972 (4,580) K/sec

MySQL


Отключаем MySQL shell> mysqladmin shutdown

создаем папку MySQL root-shell> mkdir /mnt/drbd/mysql

копируем базу данных в созданную папку root-shell> cp -R /var/lib/mysql /mnt/drbd/mysql/data

в файле /etc/mysql/my.cnf на обоих машинах изменяем следующую строку datadir = /mnt/drbd/mysql/data

Далее вносим аналогичные изменения в файл /etc/apparmor.d/usr.sbin.mysqld и перезапускаем службу apparmor root-shell> /etc/init.d/apparmor upgrate

Перезапускаем MySQL root-shell> /etc/init.d/mysql start


Heartbeat


В папке /etc/ha.d/ надо создать три файла со следующм содержанием a) ha.cf logfacility local0 keepalive 500ms deadtime 10 warntime 5 initdead 30 mcast bond0 225.0.0.1 694 2 0 auto_failback off node ubuntu1 node ubuntu2

b) authkeys - установить права только для чтения auth 1 1 crc

c) haresources ubuntu1 drbddisk Filesystem::/dev/drbd0::/mnt/drbd::ext3::group gdm mysql apache2 chown 192.168.0.100


  chown — это скрипт который меняет пользователя для монтируемой папки, может иметь следующие содержание 
  1. !/bin/sh -e

chown -R mysql:mysql /mnt/drbd