Oracle DBA Forum  

Вернуться   Oracle DBA Forum > Работа > temp

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 14.03.2011, 10:39
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Clusters: heartbeat

Рассматривается пакет heartbeat.

DRBD
http://odba.ru/showthread.php?t=474

---------------------
Пакет DRBD обеспечивает постоянную синхронизацию.
Пакет Heartbeat - используется для обнаружения сбоев и управления ресурсами кластера.

Для Heartbeat - DRBD представляет собой ресурс (он называется datadisk), который необходимо запускать или останавливать (делать первичным или вторичным) по мере надобности.

--------------------

Статьи на которые ориентировался:

Docs
http://www.drbd.org/docs/about/

http://wiki.centos.org/HowTos/Ha-Drbd

User's Guide
http://www.drbd.org/users-guide/

Немного теории
http://xgu.ru/wiki/DRBD

Бюджетные системы высокой готовности
http://www.opennet.ru/docs/RUS/ha_cluster/

Собираем HA кластер (heartbeat disk cluster linux debian)
http://www.opennet.ru/base/sys/ha_cl...setup.txt.html


Создание отказоустойчивого кластера для биллинговой системы на базе Gentoo Linux
http://www.netup.ru/UTM5/articles.php?n=13


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

# - команды выполняются от пользователя root

Команды редактора VI
http://odba.ru/showthread.php?t=331

Руководство по установке и настройки DRBD 8.3 + Debian Etch
http://debian.telenet.ru/adjustmentsoft/drbd
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 17.05.2011 в 13:03.
Ответить с цитированием
  #2  
Старый 14.03.2011, 11:22
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Для кластера из двух нод, предоставляющего сервисы на одном IP адресе, необходимо три IP адреса: по одному для каждой системы в кластере для административных задач, и один для доступа ко всему кластеру.

Heartbeat активирует этот IP адрес на первичной машине кластера.


Имеется 2 виртуальных сервера (server1 и server2) с установленной операционной системой Oracle Enterprise Linux 55 на первый жесткий диск (/dev/sda).
Второй жесткий диск - /dev/sdb будет полностью использоваться для синхронизации данных между серверами средствами пакета drbd
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 31.03.2011 в 15:51.
Ответить с цитированием
  #3  
Старый 14.03.2011, 15:05
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Настройка heartbeat


Кластер - это прежде всего система повышенной готовности (high availability - HA), построеная с учетом того, что она продолжает работать безотказно, даже если какая-то ее часть выходит из строя.

Heartbeat - продукт проекта Linux-HA, позволяющий реализовать механизм безотказной работы отдельных частей кластера.


Необходимо настроить и оттестировать механим безотказной работы - когда какой-либо из серверов выходит из строя, второй, благодаря heartbeat, заменяет его. В данном случае условием того, что сервер вышел из строя будет считаться, что он не отвечает на broadcast запросы, т.е. проблемы в сетевом интерфейсе.

Сервера server1 и server2 будут эмулировать ip-адрес кластера - 192.168.1.25, т.е. он будет "поднят" на сетевом интерфейсе как дополнительный (alias).


У Heartbeat есть три конфигурационных файлов:
  • ha.cf содержит базовые настройки кластера;
  • haresources содержит описания ресурсных групп и, наконец,
  • authkeys обеспечивает настройку сетевой авторизации.

Все три файла должны быть одинаковыми и присутствовать на обеих системах кластера. Мы сначала создаем их на одном сервере, а после просто копируем их с помощью scp.


-------------------------------------

Создаем файлы /etc/ha.d/ha.cf

ha.cf - основной конфигурационный файл, содержащий массу различных параметров того, как будет осуществляться heartbeat-механизм.

Имена server1 и server2 должны быть hostname-именами серверов, т.е. команда uname -a должна возвращать такие же значения.


В этих файлах мы указали имена и IP-адреса серверов используемых в кластере.


На server1.localdomain

# vi /etc/ha.d/ha.cf


Код:
bcast eth0

node server1.localdomain
node server2.localdomain

--------------------------------
haresources - файл, описывающий ресурсы, контролируемые серверами server1 и server2.

Далее необходимо создать конфигурационный файл /etc/ha.d/haresources следующего содержания:

# vi /etc/ha.d/haresources


Код:
server1.localdomain IPaddr::192.168.1.25/24/eth0


В данном файле мы указали внешний IP-адрес кластера 192.168.1.25, маску подсети 24 и интерфейс eth0:1, на котором использовать данный IP-адрес.

-----------------------

Для корректной работы пакета heartbeat так же необходимо создать файл /etc/ha.d/authkeys с ключами для взаимной аутентификации серверов.
В этом файле указывается тип ключа и сам ключ. Можно использовать sha, md5, но чтобы не расходовать ресурсы достаточно использовать crc. После создания, файл необходимо установить права доступа к нему только для root


#vi /etc/ha.d/authkeys

Код:
auth 1
1 sha1 ultramonkey
// с набором других прав на файл, сервер откажется стартовать
# chmod 600 /etc/ha.d/authkeys



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

//Скопируем конфигурационные файлы на второй сервер:
[[email protected] /]# scp /etc/ha.d/haresources [email protected]:/etc/ha.d/
[[email protected] /]# scp /etc/ha.d/ha.cf [email protected]:/etc/ha.d/ha.cf
[[email protected] /]# scp /etc/ha.d/haresources [email protected]:/etc/ha.d/haresources

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


На этом настройка пакета heartbeat завершена и можно произвести его запуск на обоих серверах.

Основные команды:

# /etc/init.d/heartbeat start
# /etc/init.d/heartbeat stop
# /etc/init.d/heartbeat status

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

Проверка:


Для проверки работоспособности кластера можно использовать утилиты ifconfig, df, ps.

Сервер, который в настоящий момент является ведущим, должен иметь:

1. настроенный интерфейс eth0:1 с IP-адресом 192.168.1.25
2. смонтированную директорию /mnt/sync


Резервный сервер при этом не должен иметь вышеуказанные настройки. Для того, что бы резервный сервер стал основным необходимо остановить сервис heartbeat на основном сервере либо эмулировать аппаратный сбой физическим выключением основного сервера. При этом резервный сервер присваивает себе общий IP-адрес 192.168.1.25, монтирует директорию /mnt/sync и запускает сервисы.


// После старта heartbeat, убеждаемся, что виртуальный адрес доступен.
C:\Documents and Settings\Marley>ping 192.168.1.25 -t

Код:
Pinging 192.168.1.25 with 32 bytes of data:

Reply from 192.168.1.25: bytes=32 time<1ms TTL=64
Reply from 192.168.1.25: bytes=32 time<1ms TTL=64
Reply from 192.168.1.25: bytes=32 time<1ms TTL=64
Reply from 192.168.1.25: bytes=32 time<1ms TTL=64
// Подключаемся к нему по SSH
# ssh [email protected]

// Сразу видно, что подключились к первому серверу
// Можно убедиться, что стартован виртуальный интерфейс eth0:0
[[email protected] ~]# ifconfig


Код:
eth0      Link encap:Ethernet  HWaddr 2A:5C:4B:95:9F:A1
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::285c:4bff:fe95:9fa1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2540 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1587 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:448773 (438.2 KiB)  TX bytes:190881 (186.4 KiB)
          Interrupt:11 Base address:0x6000

eth0:0    Link encap:Ethernet  HWaddr 2A:5C:4B:95:9F:A1
          inet addr:192.168.1.25  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:11 Base address:0x6000

eth1      Link encap:Ethernet  HWaddr 42:68:39:77:B1:5E
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::4068:39ff:fe77:b15e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2897 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2356 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1639593 (1.5 MiB)  TX bytes:1610947 (1.5 MiB)
          Interrupt:10 Base address:0x6000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3072 (3.0 KiB)  TX bytes:3072 (3.0 KiB)
// Останавливаем службу heartbeat на первом узле
[[email protected] ~]# /etc/init.d/heartbeat stop

Код:
Stopping High-Availability services:
                                                           [  OK  ]


// Подключаюсь опять
# ssh [email protected]

Код:
login as: root
[email protected]'s password:
Last login: Mon Apr  4 07:51:14 2011 from 192.168.1.50
[[email protected] ~]#
================================================== ====


Для автоматического запуска сервисов после перезагрузки сервера, необходимо на обоих серверах выполнить команду:
# chkconfig --level 345 heartbeat on
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 04.05.2011 в 19:38.
Ответить с цитированием
  #4  
Старый 14.03.2011, 15:05
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Если сервер работает как active/passive. То необходимо дополнительные усилия по настройке.

1) Необходимо определиться с пакетами, которые необходимо запускать на резервном сервере, когда он берет на себя роль ведущего.

Первым должен быть запущен drbddisk, который переведет данный сервер в режим «ведущего» (Primary) для пакета drbd.

Запуск сервисов осуществляется в том порядке, в котором они указаны в файле.

Нужно произвести монтирование раздела /dev/drbd0.


Данную операцию производит пакет Filesystem. В параметрах данный пакет принимает указание на раздел - /dev/drbd0, директорию для монтирования - /mnt/sync и тип используемой файловой системы ocfs2.

Таким образом после старта этих двух пакетов директория /mnt/sync будет содержать синхронизированные между двумя серверами данные. Записанные в эту директорию данные будут автоматически дублироваться на втором резервном сервере. В случае если на основном сервере произойдет сбой, то резервный сервер будет содержать абсолютно те же данные, что и основной сервер до сбоя.

Далее по списку могут быть запущены прикладные сервисы (если они нужны: apache2,mysql и т.д.).
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 04.05.2011 в 19:39.
Ответить с цитированием
  #5  
Старый 31.03.2011, 20:03
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

// Если используются не scsi диски а ide. Необхоимо ....

# dd if=/dev/zero of=/dev/hdb1 bs=1M count=128

Код:
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 4.02475 seconds, 33.3 MB/s




# drbdadm help

Код:
USAGE: drbdadm [OPTION...] [-- DRBDSETUP-OPTION...] COMMAND {all|RESOURCE...}

OPTIONS:
 {--stacked|-S}
 {--dry-run|-d}
 {--verbose|-v}
 {--config-file|-c} val
 {--config-to-test|-t} val
 {--drbdsetup|-s} val
 {--drbdmeta|-m} val
 {--drbd-proxy-ctl|-p} val
 {--sh-varname|-n} val
 {--force|-f}
 {--peer|-P} val
 {--version|-V}

COMMANDS:
 attach                             detach
 connect                            disconnect
 up                                 down
 primary                            secondary
 invalidate                         invalidate-remote
 outdate                            resize
 syncer                             verify
 pause-sync                         resume-sync
 adjust                             wait-connect
 wait-con-int                       role
 cstate                             dstate
 dump                               dump-xml
 create-md                          show-gi
 get-gi                             dump-md
 wipe-md                            hidden-commands

Version: 8.3.8 (api:88)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by [email protected], 2010-06-04 08:04:23
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 30.08.2015 в 08:20.
Ответить с цитированием
Ответ

Метки
drbd, heartbeat, linux clusters

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:49. Часовой пояс GMT +3.


Powered by vBulletin®