• Save
Building high-available application with Red Hat Cluster Suite
Upcoming SlideShare
Loading in...5
×
 

Building high-available application with Red Hat Cluster Suite

on

  • 316 views

Presentation for Linuxdays Graz 2008

Presentation for Linuxdays Graz 2008

Statistics

Views

Total Views
316
Views on SlideShare
316
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Building high-available application with Red Hat Cluster Suite Building high-available application with Red Hat Cluster Suite Presentation Transcript

  • Einführung RH Cluster Suite Anwendungsbeispiel Tipps/Tricks Ende Red Hat Cluster SuiteBuilding high-available Applications Thomas Neidhart Grazer Linuxtage 2008 Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Anwendungsbeispiel Tipps/Tricks EndeOutline 1 Einführung Clusterarten 2 RH Cluster Suite Technische Details Komponenten 3 Anwendungsbeispiel Architektur Konfiguration 4 Tipps/Tricks Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Anwendungsbeispiel Clusterarten Tipps/Tricks EndeEinführung Was ist eigentlich ein Cluster? Wozu braucht man so etwas? Welche Probleme kann ich damit lösen? Wie kann ich so einen Cluster aufbauen? Welche Komponenten werden dazu benötigt? Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Anwendungsbeispiel Clusterarten Tipps/Tricks EndeArten von Clustern Storage cluster - data access High availability - failover Load balancing - scalability High performance - parallel computation Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeWas bietet jetzt die RH Cluster Suite? kann bis zu 128 Knoten verwalten shared data storage (NFS, CIFS, GFS) bietet automatisches failover bietet load-balancing Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeKomponenten der Cluster Suite Die Cluster Suite besteht aus mehreren Komponenten, die einzelne Bereiche abdecken: Cluster infrastructure (config-file management, membership management, locking, fencing) HA Service Management Administration Tools Linux Virtual Server (LVS - IP Load Balancing) Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeGrundbegriffe Quorum zur Überprüfung der Funktionstüchtigkeit des Clusters Minimum an nötigen Stimmen jeder Knoten hat eine Stimme Quorum = 50% Knoten + 1 Stimme verhindert “split-brain” Situationen Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeCluster und Lock Management Überwacht Quorum und Cluster Membership mit Hilfe von Heartbeat Nachrichten (Ethernet) Synchronisiert Zugriff auf gemeinsame Resourcen Locking Arten distributed: CMAN/DLM (Cluster Manager, Distributed Lock Manager) client-server: GULM (Grand Unified Lock Manager) Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeCMAN Variante Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeGULM Variante Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeLocking Erlaubt Zugriff auf gemeinsame Resourcen (GFS-Partition) Gewährleistet Datenintegrität Knoten die sich nicht im Cluster befinden, können nicht auf gemeinsame Resourcen zugreifen Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeFencing Notwendig für die Datenintegrität des Clusters Ist ein Knoten ausgefallen (kein Heartbeat), wird sämtliche Aktivität eingefroren, bis der Knoten erfolgreich gefenced wurde. Fencing Arten Power fencing Fibre Channel switch fencing DRAC, IPMI, ... Achtung bei redundanten Power Supplies Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeCluster Configuration System Verwaltet die Cluster Konfiguration. Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeCluster Configuration System Im Cluster Configuration File (/etc/cluster/cluster.conf) stehen folgende Infos: Allgemeine Clusterinfo (Name, Locking Type, Fence Timing) Cluster Knoten (Name, Fence Methode, Quorum Votes) Fence Devices Managed Resources (Failover Domains, IP addresses) Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeHA Service Management Definition von Services die ausfallsicher im Cluster laufen sollen. Wird verwaltet vom rgmanager (Resource Group Manager) Service Definition Service Name Init Script (z.B. /etc/init.d/httpd) Verwendete Resourcen (floating IP Address) Failover Domain Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeFailover Domains Wo soll ein Dienst laufen? Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeShared Resources Cluster FS GFS Gemeinsame Datenquelle für alle Cluster Knoten Anbindung z.B. an ein SAN Vereinfacht Deployment und Backup von Applikationen Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeLinux Virtual Server Verteilt die Last auf mehrere “echte” Server: Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeLVS Load-Balancing Algorithmen (weighted) Round-Robin (weighted) Least-Connections Source Hash Scheduling ... Routing Methoden NAT direct routing Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeNAT Routing Sowohl intern als auch extern wird eine “floating IP” verwendet Backend-Server haben interne floating-IP als default Route eingetragen Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeDirect Routing LVS Router verarbeitet nur eingehende Pakete Antworten werden von den Servern direkt an die Clients geschickt Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeWichtige Kommandos Befehle ccs_tool update der Cluster Configuration cman_tool steuert Cluster Manager clustat zeigt Status des Clusters an clusvcadm verwaltet Services Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Technische Details Anwendungsbeispiel Komponenten Tipps/Tricks EndeMember S t a t u s : Quorate Member Name Status −−− −− −−− −− −−− −−− c l−node−70 Online , rgmanager c l−node−72 Online , Local , rgmanager c l−node−74 Online , rgmanager S e r v i c e Name Owner ( L a s t ) State − − − −− − −−− −− − − −− − − −− −−− −−− −− PgSQL c l−node−70 started Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Architektur Anwendungsbeispiel Konfiguration Tipps/Tricks EndeWir wollen eine kleine, feine Internet Applikation bauen, diedynamische Inhalte ausliefert:Beschreibung Webserver (z.B. apache) liefert die Seiten aus welche z.B. mit php generiert wurden Datenbankserver hält den dynamischen Content bereitAnforderungen Applikation muss skalierbar sein, d.h. zusätzliche Last soll durch weitere Knoten abgedeckt werden können. Datenbank muss ausfallsicher laufen. Konsistentes Backup der Daten muss möglich sein. Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Architektur Anwendungsbeispiel Konfiguration Tipps/Tricks EndeStufen Stufe 1 Load-Balancing Server Stufe 2 Application Servers Stufe 3 Database Server Stufe 4 GFS Data Source Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Architektur Anwendungsbeispiel Konfiguration Tipps/Tricks EndeKnotenkonfiguration < c l u s t e r c o n f i g _ v e r s i o n = " 1 " name="DEMO" > <fence_daemon p o s t _ f a i l _ d e l a y = " 0 " p o s t _ j o i n _ d e l a y = " 3 " / > <clusternodes > < c l u s t e r n o d e name=" c l−node−70" v o t e s ="1" > <fence > <method name="1" > < d e v i c e name=" apc−71" p o r t = " 1 " / > < d e v i c e name=" apc−73" p o r t = " 1 " / > </ method> <method name="2" > < d e v i c e name=" ipmi −71"/> </ method> </ fence > </ c l u s t e r n o d e > < c l u s t e r n o d e name=" c l−node−72" v o t e s ="1" > .... </ c l u s t e r n o d e > </ c l u s t e r n o d e s > < fencedevices > < f e n c e d e v i c e agent =" fence_apc " i p a d d r = " 1 7 2 . 1 0 . 7 3 . 7 1 " . . . / > </ fencedevices > Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Architektur Anwendungsbeispiel Konfiguration Tipps/Tricks EndeServicekonfiguration <rm> <failoverdomains > < f a i l o v e r d o m a i n name="PgSQL_Domain " ordered = " 1 " r e s t r i c t e d ="1" > < f a i l o v e r d o m a i n n o d e name=" c l−node−70" p r i o r i t y = " 1 " / > < f a i l o v e r d o m a i n n o d e name=" c l−node−72" p r i o r i t y = " 2 " / > < f a i l o v e r d o m a i n n o d e name=" c l−node−74" p r i o r i t y = " 3 " / > </ f a i l o v e r d o m a i n > </ f a i l o v e r d o m a i n s > <resources / > < s e r v i c e a u t o s t a r t = " 1 " domain ="PgSQL_Domain " name="PgSQL" r e c o v e r y =" r e l o c a t e " > < i p address = " 1 7 2 . 1 0 . 7 3 . 9 0 " m o n i t o r _ l i n k ="1" > < s c r i p t f i l e = " / e t c / i n i t . d / c l _ p g s q l " name=" i n i t p g s q l " / > </ i p > </ s e r v i c e > < s e r v i c e a u t o s t a r t = " 1 " domain ="PgSQL_Domain " name=" Clus_Cron " r e c o v e r y =" r e l o c a t e " > < s c r i p t f i l e = " / e t c / i n i t . d / c l u s _ c r o n d " name=" i n i t c l u s _ c r o n " / > </ s e r v i c e > </rm> Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Anwendungsbeispiel Tipps/Tricks EndeTipps Seperates Netzwerk für Cluster und Applikation Interface-bonding für internes Cluster-LAN Anpassung tcp send und receive Buffer Genügend Journals in der GFS Partition anlegen (pro zugreifendem Node muss ein Journal existieren) Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Anwendungsbeispiel Tipps/Tricks EndeResourcen http://www.redhat.com/docs/manuals/csgfs/ browse/4.6/Cluster_Suite_Overview/ http://sourceware.org/cluster/faq.html http://sources.redhat.com/cluster/wiki/FAQ Neidhart RH Cluster Suite
  • Einführung RH Cluster Suite Anwendungsbeispiel Tipps/Tricks EndeEnde Vielen Danke für die Aufmerksamkeit! Fragen? Neidhart RH Cluster Suite