Automatyczna instalacja oraz zmiana konfiguracji w ramach całego klastra. WP 12 Marek Zawadzki <mzawadzk@man.poznan.pl> Częstochowa Gdańsk, Poznań, Zielona Góra
Plan prezentacji: zarządzanie oprogramowaniem w ramach klastra krajowego zarządzanie konfiguracją w klastrze lokalnym wprowadzenie automatyczne generowanie plików konfiguracyjnych zarządzanie startem systemu na węzłach zarządzanie oprogramowaniem w klastrze lokalnym wprowadzenie automatyczna instalacja systemu operacyjnego na wielu węzłach uaktualnianie oprogramowania i konfiguracji procedury na wypadek awarii głównego węzła
Zarządzanie oprogramowaniem w ramach klastra krajowego: zarządzanie oprogramowaniem i konfiguracją w klastrze lokalnym i krajowym The NetBSD Packages Collection instalacja typu sandbox automatyczne tworzenie pakietów binarnych NAJPIERW: zarządzanie w klastrze lokalnym
Zarządzanie konfiguracją w klastrze lokalnym wprowadzenie: kaŝdy węzeł ma kilka adresów, róŝne połoŝenie w racku i właściwości te same informacje są wykorzystywane w wielu plikach konfiguracyjnych typowa instalacja bezdyskowa jest niewygodna i nieefektywna startowanie systemu z dysku jest niewygodne i niebezpieczne ;-) zmiana konfiguracji na dowolnych węzłach musi być trywialna
Automatyczne generowanie plików konfiguracyjnych: idea: pojedynczy plik zawierający dane kaŝdego węzła nazwa węzła MAC adresy wszystkich interfejsów fizyczne połoŝenie w szafie rozmiar pamięci, dysku, itp. proste skrypty generujące na tej podstawie róŝne pliki
Automatyczne generowanie plików konfiguracyjnych: DEMO 1/4:
Automatyczne generowanie plików konfiguracyjnych: DEMO 1/4 a): [Access] access:~$ cat /etc/cluster/cluster.conf node0 00:30:6e:3a:20:d9 00:30:6E:39:D7:87 00:30:6E:39:57:07 00:30:6E:F4:1D:46 10.1.0.100 3,1 node1 00:30:6e:3a:73:48 00:30:6E:4A:E3:F5 00:30:6E:4A:E2:45 00:30:6E:E9:0F:C1 10.1.0.101 3,2 node2 00:30:6e:3a:63:a6 00:30:6E:4C:EB:80 00:30:6E:4C:EA:25 00:30:6E:F4:D0:69 10.1.0.102 3,3 node3 00:30:6e:39:39:50 00:30:6E:39:97:29 00:30:6E:39:17:3A 00:30:6E:4B:97:EA 10.1.0.103 3,4
Automatyczne generowanie plików konfiguracyjnych: DEMO 1/4 b): [Access] access:~$ cat /etc/cluster/clusterconf_gen_hosts.awk # S1-4GB-001 00:30:6e:3a:a2:0d 00:30:6E:4C:FB:82 00:30:6E:4C:FA:F0 00:30:6E:F4:EC:72 192.168.0.1 1,1 BEGIN { } { } system("cat hosts.head"); printf("%-18s %s\n", $6, $1);
Zarządzanie startem systemu na węzłach: typowa instalacja bezdyskowa jest niewygodna i nieefektywna: główny filesystem musi być read-only serwer NFS staje się wąskim gardłem startowanie systemu z dysku jest niewygodne i niebezpieczne ;-) błąd w konfiguracji moŝe oznaczać konieczność reinstalacji systemu zmiana w konfiguracji wymaga zmian na partycji EFI potrzebna jest partycja EFI ;-) rozwiązaniem jest bootowanie przez sieć tylko kernela + parametry
Zarządzanie startem systemu na węzłach: kaŝdy węzeł jest skonfigurowany do bootowania przez sieć (DHCP + TFTP), w drugiej kolejności z dysku kernel i towarzyszące pliki są wybierane podczas generowania konfiguracji DHCP /tfpboot zawiera drzewo kerneli wraz z parametrami system bez problemu umoŝliwia jednoczesne bootowanie 100+ węzłów
Zarządzanie startem systemu na węzłach: DEMO 2/4:
Zarządzanie startem systemu na węzłach: DEMO 2/4 a): [Firewall] firewall:~$ grep -A8 node0 /etc/dhcpd.conf host node0 { hardware ethernet 00:30:6E:39:57:07; fixed-address 10.1.0.100; #filename "/service/elilo.efi"; #filename "/systemimager/elilo.efi"; filename "/debian/elilo.efi"; #filename "/egee/elilo.efi"; }
Zarządzanie oprogramowaniem w klastrze lokalnym wprowadzenie: moŝliwość zdalnej (re)instalacji OS na dowolnej grupie węzłów utrzymywanie wielu roŝnych obrazów gotowych do instalacji łatwa instalacja i upgrade oprogramowania na węzłach KISS: prosta i zrozumiała architektura i technologia Wszystkie te elementy zapewnia odpowiednio skonfigurowany SystemImager (http://systemimager.org)
Automatyczna instalacja systemu operacyjnego na wielu węzłach: (1) instalujemy OS i serwer SystemImager'a na węźle dostępowym (2) instalujemy OS i klienta SI na pojedynczym węźle (golden-client) (3) budujemy na serwerze image na podstawie golden-client'a (4) na serwerze wybieramy grupę węzłów do reinstalacji: DHCP + TFTP (5) ściągnięcie konfiguracji i image'u na węzeł: SI (mini-dystrybucja w initrd + rsync + skrypty)
Automatyczna instalacja systemu operacyjnego na wielu węzłach: DEMO 3/4:
Uaktualnianie oprogramowania i konfiguracji: koncepcyjnie węzły powinny mieć identyczną konfigurację w ramach image'u update'y są wprowadzane do image'u na serwerze (np. chroot) węzły updatują się na podstawie image'u poprzez rsync
Typowa procedura wprowadzania zmiany na wszystkich węzłach: 1. chroot /mnt/images/systemimager/images/clusterix_node_debian 2. apt-get... ; cp ; rm ; vi 3. exit 4../deployer.sh 100 114 \ updateclient -server access -image clusterix_node_debian
Typowa procedura wprowadzania zmiany na wszystkich węzłach: DEMO 4/4:
Procedury na wypadek awarii głównego węzła: kaŝdy węzeł jest przygotowany aby stać się węzłem dostępowym rsync głównego węzła do osobnego katalogu na pozostałych węzłach + standardowe procedury backupowe Minor Start End Filesystem Name 1 0.017 200.000 fat16 EFI 2 200.000 1000.000 ext3 Service 3 1000.000 11000.000 ext3 System 4 11000.000 36000.000 ext3 Images 5 36000.000 66000.000 ext3 Tmp 6 66000.000 70007.180 linux-swap Swap
Dziękuję. Pytania? Marek Zawadzki <mzawadzk@man.poznan.pl>