
Матвей Кондратьев. Отказоустойчивый кластер.ppt
- Количество слайдов: 34
Отказоустойчивый кластер
Что такое отказоустойчивость? Свойство системы сохранять свою работоспособность после отказа одного или нескольких составных компонентов.
Типичная конфигурация Шлюз Asterisk
Слабые места
Сеть Проблема с сетевым оборудованием — отключенный свитч или сгоревший маршрутизатор. Разрыв или отключение кабеля — задели ногой или перерезали провод при строительных работах.
Комплектующие Следующие компоненты системы, при выходе из строя которых нарушается работа системы: Процессор Оперативная память Жесткий диск Материнская плата Сетевая карта Блок питания
Электричество По разным и независящим от нас причинам, электричество может отключится в результате короткого замыкания или перегрузки в сети. Если ваш сервер подключен к стабилизаторам напряжения и ИБП, то вы защищены от выхода их строя компонентов системы.
Потеря данных Причин потери данных на жестком диске довольно много: Сбой ПО винчестера Плохого контакта в соединениях Некачественного питания. Механические повреждения
Время восстановления данных После выхода из строя жесткого диска будь-то базы данных или телефония, требуется время чтобы установить систему, восстановить данные и возобновить работу сервиса. Какие убытки понесет ваш бизнес в период технических работ? Сколько клиентов и денег он потеряет?
Кластер
Основные пакеты Отказоустойчивый кластер строится на базе операционной системы Linux. Если вы уже используете Asterisk, у вас есть возможность, используя бесплатные пакеты, собрать надежную систему. В основе кластера лежат следующие компоненты: DRBD - Отвечает за синхронизацию данных Heartbeat - Отвечает за доступность узлов
DR: BD
DRBD: Описание DRBD — распределённое реплицируемое блочное устройство. DRBD занимается полным отражением (mirroring) по сети всех операций с блочным устройством. Можно считать, что DRBD это сетевой RAID-1. DRBD берёт данные, записывает их на локальный диск и пересылает на другой хост. На другом хосте они тоже записываются на диск.
DRBD: Принцип работы DRBD синхронизирует данные поблочно, прозрачно для приложений, баз данных и файловой системы. Для DRBD рекомендуется использовать файловую систему ext 3 или ext 4. DRBD все время контролирует права доступа на чтение и запись у главной ноды и запрещает любые действия (даже чтение) на второстепенной. Все изменения сделанные на главном сервере синхронно реплицируются на вторичный.
DRBD: Схема работы astnode 01 DRBD 192. 168. 101 astnode 02 192. 168. 10. 100 heartbeat
DRBD: Необходимые компоненты Два сервера Отельный раздел или диск Вторая сетевая карта (желательно)
Конфигурационные файлы /etc/drbd. conf - главный конфигурационный файл /etc/drbd. d/asterisk. res — настройки ресурса /etc/drbd. d/global_common. conf - глобальные параметры
DRBD: /etc/drbd. d/asterisk. resource asterisk { - имя ресурса on ha 1 { - имя узла device disk /dev/drbd 0; - устройство drbd /dev/sdb 1; - раздел используемый drbd address 10. 6. 5. 1: 7789; - ip-адрес первой ноды meta-disk internal; - хранилище для метаданных } on ha 2 { device disk /dev/drbd 0; /dev/sdb 1; address 10. 6. 5. 2: 7789;
DRBD: /etc/drbd. d/global_common. conf net { protocol C; - протокол синхронизации after-sb-0 pri discard-least-changes; действия при split-brain after-sb-1 pri discard-secondary; after-sb-2 pri call-pri-lost-after-sb; cram-hmac-alg "sha 1"; - авторизация между узлами
Реплицируемые каталоги /etc/asterisk/ - конфигурационный файлы asterisk, dahdi, libpri /var/lib/asterisk/ - файл astdb, /usr/lib/asterisk/ - библиотека 32 -битных модулей /usr/lib 64/asterisk/ - библиотека 64 -битных модулей /var/spool/asterisk — записи конференций, телефонные разговоры, голосовые сообщения, временные файлы во время записи /var/www/ - директория freepbx, elastix и других вебинтерфейсов /var/lib/mysql/ - базы данных mysql /var/log/asterisk/ - логи звонков, очередей, fail 2 ban /tftpboot/ - прошивки и конфигурационные файлы телефонов
Веб-сервер: /etc/httpd/conf. d /etc/httpd/modules Dahdi: /etc/dahdi /etc/modprobe. d/dahdi. blacklist. conf /etc/modprobe. d/dahdi. conf Free. PBX: /etc/amportal. conf /etc/freepbx. conf /etc/schmooze-release Fail 2 ban: /etc/fail 2 ban/jail. local
Heartbeat
HB: Описание Heartbeat — важнейший компонент проекта Linux-HA, отвечающий за обнаружение выпадения узла из кластера.
HB: Принцип работы Основной принцип работы, проверять на доступность узлы кластера. HB может проверять как доступность другого узла, интерфейса и ресурса по ip-адресу. В случае потери соединения у главной ноды, heartbeat переключает трафик на доступный узел, назначая ему статус главного.
HB: Конфигурационные файлы /etc/ha. d/authkeys — авторизация узлов /etc/ha. d/ha. cf — проверяемые узлы /etc/ha. d/haresources — запускаемые службы
HB: /etc/ha. d/authkeys Данный файл используется для авторизации между узлами. В нём задается ключ и метод авторизации. Структура образом: файла выглядит следующим auth 1 1 sha 1 Put. Your. Super. Secret. Key. Here Где: 1 — ключ номер, связанный с этой линией
HB: /etc/ha. d/ha. cf debugfile /var/log/ha-debug — файл дебага logfile /var/log/ha-log — файл лога logfacility local 0 Keepalive 2 — интервал проверки доступности узлов Deadtime 30 — интервал в случае которого, считать что узел упал Warntime 10 — интервал в случае которого, послать предупреждение в лог Initdead 120 — интервал ожидания ответа от другого узла в момент старта кластера. Если
HB: /etc/ha. d/haresources Данный файл отвечает за несколько важных параметров при запуске: ha 1 drbddisk: : asterisk Filesystem: : /dev/drbd 0: : /mnt/asterisk: : ext 3 IPaddr: : 192. 168. 100/24/eth 0: 0/192. 168. 10. 255 mysqld asterisk httpd dahdi fail 2 ban ha 1 Mail. To: : log@voxlink. ru: : DRBD/HA-ALERT ha 1 — имя узла на котором содержится этот
HB: Схема кластера astnode 01 eth 1 10. 6. 5. 1 astnode 02 eth 1 10. 6. 5. 2 DRBD Primary Secondary eth 0 192. 168. 101 Gateway 192. 168. 10. 254 192. 168. 100 eth 0 192. 168. 102
HB: Комплектующие и электричество astnode 01 astnode 02 eth 1 10. 6. 5. 1 eth 1 10. 6. 5. 2 DRBD Secondary Primary eth 0 192. 168. 101 Gateway 192. 168. 10. 254 192. 168. 100 eth 0 192. 168. 102
HB: Сеть astnode 01 eth 1 10. 6. 5. 1 astnode 02 eth 1 10. 6. 5. 2 DRBD Secondary Primary eth 0 192. 168. 101 Gateway 192. 168. 10. 254 192. 168. 100 eth 0 192. 168. 102
HB: Отказ DRBD интерфеса astnode 01 astnode 02 eth 1 10. 6. 5. 1 eth 1 10. 6. 5. 2 DRBD Primary Secondary eth 0 192. 168. 101 Gateway 192. 168. 10. 254 192. 168. 100 eth 0 192. 168. 102
HB: Отказ интерфейса локальной сети astnode 01 astnode 02 eth 1 10. 6. 5. 1 eth 1 10. 6. 5. 2 DRBD Secondary Primary eth 0 192. 168. 101 Gateway 192. 168. 10. 254 192. 168. 100 eth 0 192. 168. 102
В заключение Кластер из двух узлов и двух бесплатных компонентов системы Linux, обеспечивает спокойствие администратора от проблем с: Сетью Комплектующими системного Электричеством Что в совокупности может повлечь за собой: Потерю данных