Zainstaluj serwer Linux w klastrze wysokiej dostępności

Spisie treści

Ile razy wymagaliśmy, aby nasze usługi, a raczej, aby nasze usługi były zawsze dostępne, a ile razy zdarzyło nam się, że dysk twardy naszego serwera jest uszkodzony i nie mamy kopii zapasowej, no cóż, myśląc o tym okoliczności, postanowiłem to stworzyć samouczek, aby upewnić się, że nasze serwery, a raczej nasze usługi, są zawsze online.

Biorąc pod uwagę, że tutorial jest przeznaczony dla osób zaawansowanych w Linuksie, nie będę poruszał tematów takich jak instalacja systemu bazowego, z którego tym razem będę korzystał CentOS 6 64-bitowy w swojej ostatniej aktualizacji. Podobnie wspomnę tylko o tym, co jest ściśle niezbędne do działania klastra (serwery o wysokiej dostępności).

Komentuję również, że ten przewodnik jest skierowany do konieczności utrzymywania zawsze aktywnego serwisu internetowego, chociaż z powodzeniem korzystałem z niego z innymi usługami, myślę, że na początek lub lepiej na początek, najprostszą rzeczą jest utworzyć sieć klastrów serwerów.

Bez zbędnych ceregieli przejdźmy do dobrych rzeczy.

Wymagania systemowe.1. Pamięć RAM 1 GB
2. Dysk twardy 80 GB
3. Procesor Celeron
4. Partycja danych dla klastra (niezależnie od rozmiaru, jaki chcesz utworzyć)
5. System operacyjny CentOS 6 (w najnowszej aktualizacji)

Jeśli spełniasz wymagania, zacznijmy Instalacja klastra Linux.

Następną rzeczą jest zainstalowanie DRBD do synchronizacji partycji na obu serwerach, do tego jest to konieczne uruchom w powłoce następujące instrukcje:

1. Dodaj ELRepo do listy repozytoriów systemowych

 [root @ node1 ~] rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

2. Zainstaluj narzędzia drbd (Distributed Replicated Block Device) i pakiety kmod

 [root @ node1 ~] mniam install -y kmod-drbd83 drbd83-utils
(Osobiście używam wersji 8.3, ponieważ wersja 8.4 sprawiała mi problemy z niektórymi dystrybucjami)

3. Drbd jest dodawany lub wstawiany do jądra systemu

 [root @ node1 ~] modprobe drbd

4. Należy utworzyć plik zasobów dla drbd
Znajduje się w /etc/drbd.d/mydrbd.res; gdzie mydrbd.res jest nazwą pliku i może to być modyfikowane przez każdego, o ile zachowamy rozszerzenie .res; Plik ten powinien zostać utworzony na obu serwerach lub, jeśli plik jest poprawnie skonfigurowany, jest kopiowany do drugiego węzła; konfiguracja będzie mniej więcej następująca:

 resource mydrbd {#to jest nazwa zasobu protokołu C; uruchomienie {czas oczekiwania wfc 180; degr-wfc-timeout 120;} # 180 sekund oczekiwania na urządzenie podrzędne, 120 sekund, jeśli nie odpowiada, jest zdegradowane i pozostaje jako dysk wtórny {on-io-error detach; } net {cram-hmac-alg "sha1"; shared-secret "secret key";} #W tej części podany jest klucz z szyfrowaniem sha1, ten klucz służy do komunikacji między dwoma węzłami. syncer {rate 100M;} #szybkość synchronizacji, nie ma znaczenia, że ​​mamy kartę sieciową Gigabit, nie działa na 1000M, maksymalna zalecana prędkość to 100M (zainstalowałem ją z 10M i działa świetnie, trochę wolno pierwsza synchronizacja, ale potem nie widać różnicy) na węźle1 {urządzenie / dev / drbd0; # tutaj określamy jakie jest urządzenie zarezerwowane dla drbd, możemy mieć wiele urządzeń dla różnych danych, lub różne usługi, np. SAMBA, MySQL m.in. disk/dev/md2; #określ partycję, która będzie używana dla adresu drbd 172.16.0.1:7788; # Podajemy IP poza zasięgiem naszej sieci, warto wspomnieć, że kabel sieciowy musi być podłączony bezpośrednio między serwerami, bez przechodzenia przez switch lub hub, jeśli są to najnowsze modele kart sieciowych, kabel krosowy nie jest konieczny. wewnętrzny meta-dysk; } on node2 {# specyfikacje drugiego muszą być takie same jak te pierwszego, zmienia się tylko adres ip, musi to być ten sam port, ponieważ jeśli mamy 2 klastry razem, będą one kolidować i nie będą działać odpowiednio, jeśli chcemy mieć wiele klastrów, zaleca się użycie różnych portów, oczywiste jest, że te porty muszą być takie same na obu węzłach. urządzenie / dev / drbd0; dysk / dev / md2; adres 172.16.0.2:7788; wewnętrzny meta-dysk; }}

POWIĘKSZAĆ

5. Poniżej znajduje się konfiguracja pliku hostaDzieje się tak, aby serwery były wyszukiwane po IP synchronizacji, a nie po IP sieci lokalnej, dzięki czemu unikamy konfliktów z usługami:

 / etc / hosts 192.168.1.1 node1 #nazwa węzła1 w lokalnym segmencie sieci 192.168.1.2 node2 #nazwa węzła2 w lokalnym segmencie sieci 172.16.0.1 node1 #nazwa węzła1 w synchronizacji segment sieci 172.16.0.2 node2 #nazwa z węzła2 w synchronizacji segment sieci

6. Jednostka pamięci dla drbd jest inicjowana

 [root @ node1 ~] drbdadm create-md disk1

7. Rozpoczyna się usługa drbd lub demona

 /etc/init.d/drbd start

8. W węźle, który chcemy być głównym, wykonujemy następujące polecenie

 drbdadm - -overwrite-data-of-peer primary disk1

9. Monitorujemy synchronizację obu węzłów
W tym celu wykonujemy:

 kot / proc / drbd
Odpowiedź z powyższego polecenia wygląda mniej więcej tak:
 wersja: 8.3.15 (api: 88 / proto: 86-97) GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by phil @ Build32R6, 2012-12-20 20:23:49 1: cs: SyncSource ro: Primary / Secondary ds: UpToDate / Niespójne C rnns: 1060156 nr: 0 dw: 33260 dr: 1034352 al: 14 bm: 62 lo: 9 pe: 78 ua: 64 ap: 0 ep: 1 wo: foos: 31424 [===== =============>.] zsynchronizowano: 97,3% (31424/1048508) K wykończenie: 0:00:01 prędkość: 21 240 (15 644) K / sek # Tutaj możemy to zobaczyć Synchronizacja osiąga 97,3% i jest określone, że jest to węzeł główny, a węzeł pomocniczy pojawia się jako niespójny, ponieważ synchronizacja jeszcze się nie zakończyła. #Po zakończeniu ponownie uruchamiamy cat / proc / drbd i mamy następujące: wersja: 8.3.15 (api: 88 / proto: 86-97) GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by phil @ Build32R6, 2012-12-20 20 : 23: 49 1: cs: Connected ro: Primary / Secondary ds: UpToDate / UpToDate C r- ns: 1081628 nr: 0 dw: 33260 dr: 1048752 al: 14 bm: 64 lo: 0 pe: 0 ua: 0 ap : 0 ep: 1 wo: foos: 0 # Zwracając wiadomość UpToDate mamy świadomość, że synchronizacja została zakończona i partycje drbd są dokładnie takie same.

10. Następną rzeczą jest sformatowanie naszego urządzenia drbdW tym celu wykonujemy:

 mkfs.ext3 / dev / drbd1
Używam ext3, ponieważ daje mi dobrą stabilność, ale moglibyśmy również użyć ext4, nie polecam używania żadnego typu partycji poniżej ext3.

Do tej pory jesteśmy już w stanie ręcznie zamontować partycję /dev/drbd1 w dowolnym punkcie montowania systemu, w moim przypadku do montowania używam /home, ponieważ każdy z użytkowników zarejestrowanych w obu węzłach ma swoje własne katalogi stron internetowych, dlatego Biegnę:

 mount -t ext3 / dev / drbd1 / home
I zaczynam tworzyć użytkowników do replikacji danych na obu serwerach, oto instalacja bicia serca, aplikacja służąca do monitorowania serwerów między sobą i która będzie odpowiedzialna za wprowadzanie odpowiednich zmian, jeśli podstawowy z jakiegokolwiek powodu ulegnie awarii i zmieni drugi w główny, aby zapewnić funkcjonalność Systemu.

Dla instalacja bicia serca należy wykonać tylko następujące kroki. Repozytorium jest instalowane do pobrania za pomocą następującego polecenia:

 rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Edytuj plik:
 epel.repo /etc/yum.repos.d/epel.repo 
zmień linię nr 6 „Włącz = 1 przez włącz = 0”; możesz używać edytorów vi lub nano, jak chcesz.
 [epel] name = Dodatkowe pakiety dla Enterprise Linux 6 - $ basearch # baseurl = http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist = http://mirrors.fedoraproject.org/metalink? = epel-6 & arch = $ basearch failovermethod = priorytet włączony = 0 # To jest linia, którą musimy edytować Zainstaluj heartbeat za pomocą następującego polecenia: yum -enablerepo = epel install heartbeat Po zakończeniu instalacji powie nam coś podobnego do: Zainstalowano: bicie serca .i686 0: 3.0.4-1.el6 Ukończono! 
Po zakończeniu procesu instalacji następną rzeczą do zrobienia jest edycja 3 plików niezbędnych do działania pulsu; znajduje się w /etc/ha.d
  • klucze uwierzytelniające
  • ha.cf
  • zasoby

Otwieramy plik klucze uwierzytelniające za pomocą następującego polecenia:

 vi /etc/ha.d/authkeys
Dodaje się następujące wiersze:
 auth 1 1 sha1 key for connection between heartbeats # W tej linii definiujemy, który klucz będzie kluczem do komunikacji między heartbeats każdego węzła, może być taki sam jak ten użyty w drbd lub inny.
Zmieniamy uprawnienia do plików klucze uwierzytelniające tak, że może być odczytywany tylko przez roota:
 chmod 600 /etc/ha.d/authkeys
Teraz edytujemy drugi plik:
 vi /etc/ha.d/ha.cf
Dodajemy następujące wiersze:
 logfile / var / log / ha-log # log systemowy jest włączony dla przyszłych błędów logfacility local0 keepalive 2 deadtime 30 # system czeka 30 sekund, aby zadeklarować węzeł1 jako nieoperacyjny initdead 120 # system czeka 120 sekund na uruchomienie węzła, aby poczekać na drugi . bcast eth0 # określa kartę Ethernet, przez którą będzie transmitowana komunikacja między serwerami, bardzo ważne jest, aby zwrócić uwagę, ponieważ tutaj określamy, która karta sieciowa przechodzi do sieci lokalnej, a która ma kierować synchronizację udpport 694 # określony jest port synchronizacji , tak jak w drbd, możemy mieć wiele serwerów i każdą parę z odpowiednim portem zdefiniowanym auto_failback off # poprzez oznaczenie go jako wyłączone zapobiegamy powrotowi węzła 1 po uszkodzeniu i degradacji jako podstawowym lub próbie powrotu, co powoduje konflikt z innym węzłem węzeł węzeł 1 węzeł 2 # podajemy nazwy obu węzłów. 

POWIĘKSZAĆ

Aby zakończyć konfigurację musimy edytować plik haresources poleceniem:

 vi /etc/ha.d/haresources
Dodaj następujące wiersze:
 node1 192.168.1.10/24/eth0 drbddisk :: mydrbd Filesystem :: / dev / drbd0 :: / home :: ext3 #ta linia odpowiada za zamontowanie partycji danych na węźle oznaczonym jako węzeł podstawowy1 192.168.1.10/24/ eth0 httpd #ta linia jest odpowiedzialna za zdefiniowanie usługi Apache lub serwera WWW w kierunku węzła wskazanego jako podstawowy

POWIĘKSZAĆ

Te 3 pliki muszą zostać skopiowane do węzła 2, poniższe polecenie zajmie się tym:

 scp -r /etc/ha.d/root@node2:/etc/
Plik musi być edytowany httpd.conf aby nasłuchiwać żądań z wirtualnego adresu IP, w tym przypadku 192.168.1.10:
 vi /etc/httpd/conf/httpd.conf
Linia została dodana lub zmodyfikowana Posłuchaj 192.168.1.10:80
Zmodyfikowany plik jest kopiowany na drugi serwer:
 scp /etc/httpd/conf/httpd.conf root @ node2: /etc/httpd/conf/
Uruchamiamy usługę pulsu na obu węzłach:
 /etc/init.d/start bicia serca
Dzięki temu mamy gotowy serwer wysokiej dostępności, wystarczy wejść do naszej przeglądarki internetowej i ustawić adres IP 192.168.1.10 lub zainstalować wybrany przez Ciebie panel do administrowania domenami i wygenerować odpowiednich użytkowników w celu uzyskania dostępu do zarejestrowanych stron lub domen na serwerze.

Serwer wysokiej dostępności może być używany, jak już wspomniano na początku tego samouczka, jako: serwer poczty e-mail, serwer WWW, serwer bazy danych, serwer samby pośród innych; Podobnie, pomaga nam zapobiegać utracie informacji z powodu awarii sprzętu, a możemy to wzmocnić za pomocą nalotów na jednostki dyskowe, czy to sprzętowo, czy programowo. Posiadanie dysków w raidzie w celu utrzymania systemu nigdy nie jest zbyt duże.

Serwer wysokiej dostępności nie jest jednak wolny od problemów lub błędów, gdy węzeł jest zdegradowany, możemy przejść do dziennika pulsu, aby zobaczyć, co się stało, uzyskuje się to poprzez dostęp do pliku przypisanego w konfiguracji zasobów w /etc/ha.d

W ten sam sposób może się zdarzyć, że po ponownym uruchomieniu obu serwerów z jakiegoś powodu nie będą one uruchamiane jako podstawowy/dodatkowy, a jako podstawowy/nieznany i nieznany/dodatkowy.

POWIĘKSZAĆ

Aby rozwiązać ten problem, musimy wykonać następujące kroki.

W powłoce upadłego węzła wpisujemy:

 zasób dodatkowy drbdadm
Następnie:
 drbdadm odłącz zasób
I wtedy:
 drbdadm - --discard-my-data connect resource
Na koniec w zachowanym węźle, czyli podstawowym wpisujemy:
 drbdadm połączyć zasób
Teraz rozpocznie ponowną synchronizację węzłów z węzła, który przetrwał do węzła upadłego, rozpoczynając się natychmiast po naciśnięciu klawisza "Wchodzić" w instrukcji 4.

To, co się tutaj wydarzyło, jest znane jako Rozszczepiony mózg, dzieje się tak, gdy z jakiegoś powodu węzeł podstawowy ulegnie awarii i zostanie zdegradowany, gdy to się stanie, zdecydowanie zaleca się przejrzenie i dogłębną analizę upadłego węzła, a przed ponownym włączeniem go do klastra w celu rozwiązania istniejącego problemu może również konieczne jest ponowne zainstalowanie całego systemu operacyjnego tego węzła i bezproblemowe włączenie go do klastra jako drugorzędnego w celu synchronizacji, a jeśli tak, po zsynchronizowaniu, zmień go na podstawowy.

Na koniec chciałbym podkreślić, że regularny przegląd stanu klastraDobrze wiemy, że dla wysokiej wydajności zawsze dobrze jest być o krok przed katastrofami komputerowymi; Ponieważ jako personel IT, odpowiedzialność za opiekę nad danymi firmy lub firm, do których należymy spada na nas, jako dodatkowa uwaga myślę, że warto zalecić, aby zawsze mieć kopię zapasową w jakiejś alternatywnej jednostce do węzłów i w ten sposób zagwarantowane jest bezpieczeństwo informacji.

Zainstaluj i skonfiguruj Ubuntu Server

Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave