High-Availability със свободен софтуер

Васил Колев

<vasil@ludost.net>

http://vasil.ludost.net/

Благодарности

Атанас Бъчваров

EuroLion Plc

Момчил Кинов

Георги Чорбаджийски

Заданието

Обработка на транзакции от PoS терминали

Наблюдение в реално време на базата данни

Даване на информация на потребителите през web

Обслужване на вътрешна и външна поща

Системата трябва да е сигурна, надеждна и проста

Използван софтуер

Системата е изгадена само със свободен софтуер

heartbeat

drbd

nagios

други (apache, postfix, courier-imap, amavis, clamav, Linux, FreeBSD, named, etc...)

Cluster manager

Следи за работата на машините

по UDP (поддържа multicast)

по серийна връзка (RS232)

Спира и пуска услуги

Може да деактивира машини (STONITH)

Разработва се от Linux-HA екипа

Присъства в повечето Linux и *BSD дистрибуции

heartbeat

http://www.linux-ha.org/

drbd

Означава 'distributed remote block device'

Репликира дял от диска до отдалечена машина

Осигурява работещо резервно копие на данните

Поддържа транзакционна семантика

write() операцията е успешна, ако данните са стигнали до локалния диск и до диска на отдалечената машина.

Поддържа и други семантики, за по-голямо бързодействие

Работи в ядрото, няма проблеми да се възползва от пълната скорост на дисковете или на мрежата

Поддържа добре ext3, не работи с XFS, има проблеми с reiserfs

http://www.drbd.org

nagios

Наблюдение (monitoring)

Прави активно и пасивно следене на услуги

Поддържа стандартни услуги като ping, http, smtp, pgsql

Може да следи и нестандартни, като ниво на батерия на UPS.

Известяване (alerting)

По sms, email или чрез външен модул

Написано максимално модулно

С малки shell или perl скриптове може да се прави всичко

Примерен и работещ nagios:

http://ludost.net/nagios/

http://www.nagios.org/

Системен софтуер

Postgresql

Apache

PHP

Postfix

courier-imap

amavis

clamav

Debian GNU/Linux

FreeBSD firewalling

Какво са HA и SPOF?

HA – High Availability

Висока надеждност

Издръжливост при отказ на отделни компоненти

SPoF – Single Point of Failure

Точка, при чието отпадане спира цялата система

Колкото по-малко такива точки, толкова по-добре

Не винаги може да се избегнат

Две схеми

обикновена

с висока надеждност

Web и Mail сървъри

Работещи услуги на 2-те машини

apache, apache-ssl, clamav, amavis

Контролирани от heartbeat за web1

WebIP1, postfix, courier-imap, MailIP, drbd

Контролирани от heartbeat за web2

WebIP2

Поведение при срив

Database сървъри

Работещи услуги на 2-те машини няма

Контролирани от heartbeat за db1

postgresql, drbd_dev, IP_dbnet, IP_pos, business soft.

Контролирани от heartbeat за web2 няма

Поведение при срив

Протичане на една нормална транзакция

Необичайни ситуации

Срив преди съобщаване за края на транзакцията

Решава се с помощта на клиентския софтуер

Отпадане на двата DB или web сървъра

Изчакват се да се активират и двата

Ако има само един работещ, системният администратор може да го форсира като главен

Защо?

Отпадане на мрежов интерфейс

Използване на ping nodes

Архивиране и възстановяване на базата

Архивиране (Backup)

Backup софтуера няма права за четене по сървъра и базата

Backup се генерира на DB сървъра, след което се криптира с GnuPG

Backup сървърът се свързва чрез ssh и получава криптирания backup

Архивът може да се съхранява навсякъде и “изтичането” му не представлява проблем за конфиденциалността на данните

Възстановяване (Restore)

Взема се ключа от хранилището му и се декриптира с passphrase.

Passphrase е известно на двама души, за да не се създава SPoF

Файловете се декриптират и използват със стандартни инструменти

Решението е просто и е ~40-редa shell script

(известни още като backup и restore)

Демонстрация

... или какво все пак става, когато някой се спъне в кабела :)

Благодаря Ви за вниманието!
Въпроси?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

HA with Free Software

Running a HA system with free software

HA Free Software Open Source

2004-10-21T00:47:14