SUSE Linux Enterprise 12 High Availability Extension Piotr Szewczuk Starszy konsultant pszewczuk@suse.com
Agenda: 2 SLES 12 HAE omówienie podstaw Jak zbudować klaster w oparciu o SLES 12 HAE wymagane komponenty Pokaz na żywo, jak uruchomić podstawowy klaster na SLES 12 HAE na przykładzie serwisu www
SLES 12 HAE podstawy
Wyzwania dla rozwiązań wysokiej dostępności Prawo Murphy'iego jest uniwersalne 4 Czy Twoi klienci są przygotowani? Na awarię sprzętu, powódź, pożar, trzęsienie ziemi? Mogą sobie pozwolić na przerwy w dostawie usług lub gorzej, utraty danych? Ile ich kosztują przestoje? Zabezpiecz swoje dane, obciążenia (workloads), usługi za pomocą rozwiązania, które jest: Łatwe w uruchomieniu, skonfigurowaniu i zarządzaniu Działa na wszystkich platformach sprzętowych i systemach wirtualizacyjnych Integruje się z posiadanym środowiskiem Jest przystępne cenowo
SLE HAE 12 nowe funkcjonalności Odświeżony główny kod produktu Przeglądanie historii klastra Nowi agenci do Fencingu Obsługa SCSI Odzyskiwanie węzłów 5 Wsparcie off-line ReaR (Relax and Recover) Load Balancer HAproxy Klastrowe systemy plików OCFS2 GFS2
SLE HAE 12 nowe funkcjonalności Pacemaker Tagowanie obiektów Poprawiona wydajność bazy CIB HAWK Ocena zdrowia klastra Ulepszone raportowanie błędów i składni konfiguracyjnej Ulepszone kreatory Rozszerzenie Geo Ulepszony algorytm działania CIB atrybuty per site Przełączanie IP w oparciu o nazwy DNS Cluster Shell: 6
A Traditional Cluster SUSE HAE tradycyjny klaster Hardware Router Node 1 Node 2 SAN 7 Node 3
SUSE HAE dwuwęzłowy klaster A Traditional Cluster z replikowanym zasobem dyskowym Hardware Router Node 1 Node 2 TCP/IP DRBD 8
SLE HAE - przykłady klastrów dla SAP Simple Stack DRBD Data Sync 9 Enqueue Replication HA in Virtual Environments
Klaster lokalny i metro Clients SLES SLE HA 10 SLES SLE HA SLES SLE HA SLES SLE HA
Komponenty na pojedynczym węźle klastra SAP Apache iscsi Filesystems IP address STONITH Xen LRM libvirt Resource Agents MySQL LSB init... DRAC Web GUI ilo Python GUI SBD LVS CRM Shell Fencing c DRBD MPIO YaST2 Policy Engine CIB Pacemaker DRBD clvmd OpenAIS Ocfs2_controld dlm_controld ext3, XFS OCFS2 Linux Kernel DLM clvm2 SCTP 11 DRBD Multipath IO Local Disks SAN FC(oE), iscsi TCP UDP multicast Bonding Ethernet UDP Infiniband multicast c OpenAIS
Klaster architektura węzła 12
Klaster grupowanie zasobów 13
Geo Clustering w rozwiązaniu SUSE Linux High Availability Extension 14 Informacje o produkcie Rozszerza możliwości działania SLE HAE na nieograniczone odległości Pozwala wdrażać fizyczne i wirtualne klastry linuksowe w centrach danych na całym świecie Obsługuje automatyczne i ręczne przełączanie Licencjonowanie i ceny Wymaga dodatkowej subskrypcji Wymaga tego samego poziomu wsparcia, jak dla posiadanych subskrypcji SLES
Geo Cluster Konfiguracja Site C (Arbitrator) boothd boothd Node 1 boothd Node 2 Site A 15 Node 7 Node 8 Site B
Jak zbudować klaster
SUSE HAE elementy układanki Konfiguracja zasobów klastrowych Tworzenie klastra Konfiguracja systemu SLES + HAE Sieć (Bonding) Zasoby dyskowe (MPIO) 17
SUSE HAE 12 zasoby dyskowe 18 Wykorzystujemy standardowe zasoby dostępne w SLES 12 Obsługiwane protokoły dla współdzielonych zasobów (shared SCSI, iscsi, FC, FCoE) Pamiętajmy o klastrowych systemach plików (OCFS2, GFS)
SLE HAE 12 agregacja połączeń sieciowych 19
SUSE HAE 12 MPIO 20
SLE HAE 12 MPIO 21
Instalacja SLE HAE 12 22
SLE HAE 12 Fencing Izolacja zasobów (zwykle dysków) pomiędzy węzłami Dwa sposoby realizacji Izolacja zasobu - SAN switch remapping Izolacja węzła - power-off lub panic 23
SLE HAE 12 STONITH Shoot The Other Node In The Head Sposób realizacji Fencingu w SLES Program działający jako część oprogramowania klastra Zalecane metody realizacji: partycja SBD, karty zarządzające Wspiera kilka metod wymuszenia izolacji stonith 24 L wyświetla listę dostępnych urządzeń
SLE HAE przykład klastra Client s Network Links Xen VM 1 LAMP Apache IP ext3 Xen VM 2 clvm2+ocfs2 DLM Pacemaker Storage Corosync + openais Kernel 25 Kernel Kernel
Licencjonowanie - rodzaje dostępnych subskrypcji
Rodzaje subskrypcji 27 Basic poprawki (łatki, aktualizacje), nowe wersje Standard poprawki, nowe wersje + pomoc techniczna 12x5 świadczona drogą elektroniczną, czas reakcji 4 godz. Priority poprawki, nowe wersje + pomoc techniczna 24x7 świadczona drogą elektroniczną, czas reakcji 4 godz., w przypadku zatrzymania serwera - 1 godz. Co nas wyróżnia: W Polsce jest dział obsługi technicznej SUSE. Zgłoszenia elektroniczne mogą być obsługiwane lokalnie w języku polskim z możliwą eskalacją do programistów Możliwość rozszerzenia usług: on-site, wdrożenia, konsulting
SUSE Linux Enterprise Server subskrypcje i licencjonowanie 28 Platforma Intel/AMD 64-bity subskrypcje dostępne są na serwer fizyczny (bez opcji wirtualizacji) lub na serwer fizyczny (z opcją wirtualizacji, nielimitowana liczba wirtualnych maszyn) Subskrypcja zapewnia możliwość korzystania z dowolnej aktualnie wspieranej wersji SLES (10,11, 12). Wsparcie dla XEN/KVM (zawarte w SLES 12) Standardowa subskrypcja to 12 miesięcy; istnieje możliwość wykupienia subskrypcji na okres 3, 5 lat Subskrypcję należy wykupić na 2, 4 lub 8 socketów (podstawek procesora z obsadzonym CPU)
Wirtualizacja 29 Pełne wsparcie dla dwóch hipernadzorców Xen KVM Strategia Perfect Guest VMware ESX Microsoft Hyper-V Citrix XenServer SUSE Linux Enterprise wraz z Xen oraz KVM SUSE Appliance Program i SUSE Studio dla łatwego budowania, testowania i dystrybuowania gotowych rozwiązań Unikalna efektywność kosztowa nielimitowana liczba wirtualnych maszyn SLES na pojedynczym serwerze fizycznym z jedną subskrypcją SUSE Linux Enterpise Server
SLES ceny subskrypcji 30
SLE High Availability Extension - klastry, licencjonowanie * wersja 64-bitowa * poziom usługi maintenance dziedziczony z podstawowej subskrypcji SLES 31
Przykład klastra www w oparciu o SLE HAE
Opis środowiska demonstracyjnego 33 Środowisko demonstracyjne zbudowane zostało w oparciu o wirtualizację z hiperwizorem KVM 3 węzły klastra z zainstalowanym systemem SUSE Linux Enterprise Server 12 i dodatkiem HA maszyny wirtualne KVM Przestrzeń dyskowa w oparciu o SUSE Linux Enterprise Server 12 i iscsi udostępnione dwa luny: partycja sbd i partycja pod zasób dyskowy www z systemem plików OCFS2 Na potrzeby komunikacji iscsi została wydzielony odseparowany fragment sieci LAN
Generowanie kluczy SSH Aby logować się, bez haseł, za pomocą kluczy ssh na zdalne serwery należy na serwerze, z którego będziemy się logować, na inny serwer, wygenerować klucze ssh: ssh-keygen -t rsa -b 1024 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. Aby przyśpieszyć logowanie za pomocą ssh można wyłączyć rozwiązywanie nazw DNS w konfiguracji serwera ssh #vi /etc/sshd/sshd_config UseDNS no #rcsshd restart 34
Dystrybuowanie kluczy SSH Klucze ssh generujemy na każdym węźle i następnie kopiujemy na serwery obok, jak również na host na którym był generowany klucz. ssh-copy-id -i /root/.ssh/id_rsa.pub root@sles12-node2 ssh-copy-id -i /root/.ssh/id_rsa.pub root@sles12-node3 ssh-copy-id -i /root/.ssh/id_rsa.pub root@sles12-node1 35
Równoległe SSH Tworzymy plik konfiguracyjny z adresami hostów /etc/clusternodes.pssh Wykonujemy polecenia na wszystkich węzłach jednocześnie wywołując polecenie: pssh -ih /etc/clusternodes.pssh 'polecenie' sles12-node1:~ # cat /etc/clusternodes.pssh root@sles12-node1 root@sles12-node2 root@sles12-node3 36
Zasoby dyskowe iscsi (Target) 37
Zasoby dyskowe iscsi (Target) 38
Zasoby dyskowe iscsi (Target) 39
Zasoby dyskowe iscsi (Target) 40
Zasoby dyskowe iscsi (Initiator) 41
Zasoby dyskowe iscsi (Initiator) 42
Zasoby dyskowe iscsi (Initiator) 43
Zasoby dyskowe iscsi (Initiator) 44
Tworzenie klastra pierwszy węzeł Na pierwszym węźle uruchamiamy narzędzie sleha-init sles12-node1:~ # sleha-init Odpowiadamy na kolejne pytania: konfiguracja usługu NTP generowanie kluczy ssh (wybieramy opcję No) ustawienie adresacji sieciowej na potrzeby klastra (Multicast lub Unicast) wskazanie ścieżki do partycji SBD zmiana hasła (polecenie passwd) dla użytkownika passwd hacluster 45
Tworzenie klastra dodawanie koleinych węzłów w klastrze Na kolejnych węzłach klastra uruchamiamy narzędzie sleha-join sles12-node2:~ # sleha-join Odpowiadamy na kolejne pytania: konfiguracja usługu NTP generowanie kluczy ssh (wybieramy opcję No) podajemy adres IP pierwszego węzła w klastrze zmiana hasła (polecenie passwd) dla użytkownika passwd hacluster 46
Tworzenie zasobów klastrowych współdzielony zasób dyskowy OCS2 Logujemy się do graficznego narzędzia HAWK, do zarządzania klastrem SLE HAE, za pomocą przeglądarki internetowej: https://sles12-node1:7630/ Z dostępnych kreatorów wybieramy opcję tworzenia zasobu OCFS2 47
Tworzenie zasobów klastrowych współdzielony zasób dyskowy OCS2 48
Tworzenie zasobów klastrowych współdzielony zasób dyskowy OCS2 49
Tworzenie zasobów klastrowych współdzielony zasób dyskowy OCS2 50
Tworzenie zasobów klastrowych współdzielony zasób dyskowy OCS2 51
Tworzenie zasobów klastrowych współdzielony zasób dyskowy OCS2 52
Tworzenie zasobów klastrowych serwis www Na wszystkich węzłach instalujemy wymagane pakiety sles12-node1:~ # pssh -ih /etc/clusternodes.pssh 'zypper in -y apache2 apache2-mod_php5 php5' pssh -ih /etc/clusternodes.pssh 'chown -R wwwrun.www /srv/www/htdocs' pssh -ih /etc/clusternodes.pssh 'a2enmod php5' Ważne!!! - wyłączamy automatyczny start usługi www na wszystkich węzłach: pssh -ih /etc/clusternodes.pssh 'systemctl disable apache2' 53
Konfigurujemy zasoby klastrowe na potrzeby serwisu www Na wszystkich węzłach instalujemy wymagane pakiety sles12-node1:~ # pssh -ih /etc/clusternodes.pssh 'zypper in -y apache2 apache2-mod_php5 php5' pssh -ih /etc/clusternodes.pssh 'chown -R wwwrun.www /srv/www/htdocs' pssh -ih /etc/clusternodes.pssh 'a2enmod php5' Ważne!!! - wyłączamy automatyczny start usługi www na wszystkich węzłach: pssh -ih /etc/clusternodes.pssh 'systemctl disable apache2' 54
Konfigurujemy zasoby klastrowe na potrzeby serwisu www Dodajemy odpowiednie konfiguracje podstawowych agentów zasobów za pomoca polecenia crm configure edit: primitive p-ip_1 ocf:heartbeat:ipaddr2 \ meta target-role="stopped" \ params ip="192.168.2.107" cidr_netmask="16" nic="eth0" primitive p-apache ocf:heartbeat:apache \ op monitor interval="10" timeout="20" \ meta target-role="stopped" 55
Konfigurujemy zasoby klastrowe na potrzeby serwisu www Grupujemy podstawowe zasoby w grupę www, oraz zmieniamy kolejność startu usług tak, aby serwis www uruchamiał się dopero jak będzie dostępny zasób dyskowy group g-apache_group p-ip_1 p-apache order clusterfs-then-g-apache_group inf: cclusterfs g-apache_group 56 Potwierdzamy zmiany poleceniem commit
Zasoby Strona produktu Dokumentacja https://www.suse.com/documentation/sle-ha-12/ https://www.suse.com/documentation/sle-ha-geo-12/ Strona z wersjami testowymi https://download.suse.com/ SUSE Customer Center 57 https://www.suse.com/ha https://scc.suse.com
58
59
Unpublished Work of SUSE. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.