Upload
highload-2009
View
2.054
Download
3
Embed Size (px)
Citation preview
Созинов Роман
HA-кластерсвоими руками
Что такое кластер?• распределители нагрузки/
маршрутизаторы (load balancer, director)
• рабочие узлы кластера (nodes, реальные сервера)
• разделяемые ресурсы (shared storage, database)
Linux Virtual ServerIPVS - набор дополнений к Linux ядру, реализующий
функциональность распределителя нагрузки. VIP (Virtual IP) - виртуальный ip-адрес, использующийся
только клиентами для доступа к ресурсам кластера.Virtual Service - виртуальный сервис, доступный на VIP.Варианты маршрутизации трафика в LVS:
• VS via NAT• VS via Direct Routing• VS via IP Tunneling
Virtual Server via NAT
Virtual Server via Direct Routing
Virtual Server via IP Tunneling
Преимущества и недостатки различных способов маршрутизации • VS/NAT прост в реализации, но ограничен в масштабируемости.• VS/Direct Routing хорошо масштабируется, в отличие от IP Tunneling
отсутствуют издержки на реализацию тунелей. Требует поддержки операционной системой Loopback-интерфейса (ARP-response проблема), load balancer и физические сервера должны находиться в одной физической сети.
• VS/IP Tunneling позволяет разнести географически реальные сервера, отлично масштабируется, но требует поддержки IP Tunneling в используемых ОС.
Распределение нагрузки• IPVS распределяет нагрузку, работая на уровне
ядра (hash table), на транспортном уровне (L4)• Утилита ipvsadm используется для
добавления(удаления) реальных серверов в(из) кластер(а)
• При распределении нагрузки учитываются технические характеристики реальных серверов (коэффициенты), число активных соединений, с учётом IP-адреса получателя (отправителя)
Алгоритмы распределения нагрузки • Циклическое распределение (Round-Robin Scheduling)• Циклическое распределение с весовыми коэффициентами
(Weighted Round-Robin; A-4, B-3, C-2: AABABCABC)• Минимум соединений (Least-Connection Scheduling)• Weighted Least-Connection Scheduling• Сохранение соединения (Connection Affinity)• Firewall Marks
Безотказная работа load balancer'а • Heartbeat
• VRRP (Virtual Router Redundancy Protocol, RFC2338, sync group)
• CARP (Common Address Redundancy Protocol, pfsyncd)
Инструменты управления кластером
• Heartbeat (HA-Linux). Комплект утилит (heartbeat, stonith). Широкий выбор вариантов конфигурации (например, heartbeat по COM-порту). Присутствует GUI (python-gtk). SUSE support.
• Keepalived (http://www.keepalived.org). "Всё в одном" с использованием VRRP-протокола. Проект активно развивается разработчиками. Пока нет реализации IPv6. Отсутствует GUI.
• Piranha - (утилиты pulse, nanny). RedHat разработка, похоже остановлена, но если Вы планируете использовать RedHat/CentOS системы, лучше всего выбрать данный продукт. Присутствует web-GUI. Хорошая документация.
Heartbeat GUI
Piranha GUI
Разделяемые ресурсы • сервис (NFS-директория,
примонтированная на всех нодах, CIFS, database, DRBD)
• блочное устройство, доступного всем нодам (SAN, iSCSI, GNBD)
Блочное устройство в кластере • Кластерные файловые системы
– GFS (активная разработка, отличная документация, support, fencing)
– OCFS2 (Oracle RAC, разработка остановлена)
Благодарю за внимание!