Kolikrát jsme požadovali, aby naše služby byly, nebo spíše aby naše služby byly vždy k dispozici, a kolikrát se nám už stalo, že je poškozený pevný disk našeho serveru a nemáme zálohu, přemýšlíme o nich za těchto okolností jsem se rozhodl toto vytvořit tutoriál, který zajistí, že naše servery nebo spíše naše služby budou vždy online.
Vzhledem k tomu, že tutoriál je určen pro pokročilé v Linuxu, nebudu se dotýkat témat, jako je instalace základního systému, které tentokrát použiji CentOS 6 64 bitů ve své poslední aktualizaci. Stejně tak zmíním pouze to, co je nezbytně nutné pro provoz clusteru (servery s vysokou dostupností).
Rovněž uvádím, že tato příručka je zaměřena na potřebu udržovat webovou službu vždy aktivní, ačkoli jsem ji úspěšně používal s jinými službami, domnívám se, že jako začátek nebo lépe řečeno, jako začátek je nejjednodušší vytvořit serverový klastrový web.
Bez dalších okolků přejdeme k dobrým věcem.
Požadavky na systém.1. RAM paměť 1 GB
2. Pevný disk 80 GB
3. Procesor Celeron
4. Datový oddíl pro klastr (bez ohledu na velikost, kterou chcete vytvořit)
5. Operační systém CentOS 6 (ve své nejnovější aktualizaci)
Pokud splňujete požadavky, začněte Instalace clusteru Linux.
Další věcí je nainstalovat DRBD pro synchronizaci oddílů na oba servery, k tomu je to nutné spusťte in shell následující pokyny:
1. Přidejte ELRepo do seznamu systémových úložišť
[root @ node1 ~] rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
2. Nainstalujte nástroje drbd (Distributed Replicated Block Device) a balíčky kmod
[root @ node1 ~] yum install -y kmod-drbd83 drbd83-utils(Osobně používám 8.3, protože 8.4 mi dělal problémy s některými distribucemi)
3. Drbd je přidán nebo vložen do systémového jádra
[root @ node1 ~] modprobe drbd
4. Musí být vytvořen soubor prostředků pro drbd
Nachází se na /etc/drbd.d/mydrbd.res; kde mydrbd.res je název souboru a ten může upravit kdokoli, pokud chceme zachovat příponu .res; Tento soubor by měl být vytvořen na obou serverech, nebo pokud je soubor správně nakonfigurován, zkopíruje se do druhého uzlu; konfigurace by byla víceméně následující:
zdroj mydrbd {#toto je název prostředku protokolu C; startup {wfc-timeout 180; degr-wfc-timeout 120;} # 180 sekund čekání na podřízené zařízení, 120 sekund, pokud neodpoví, je degradováno a zůstane jako sekundární disk {on-io-error detach; } net {cram-hmac-alg "sha1"; shared-secret „tajný klíč“;} #V této části je zadán klíč se šifrováním sha1, tento klíč slouží ke komunikaci mezi dvěma uzly. synchronizátor {rate 100M;} #synchronization speed, nezáleží na tom, že máme gigabitovou síťovou kartu, nefunguje na 1000M, maximální doporučená rychlost je 100M (nainstaloval jsem ji s 10M a funguje skvěle, trochu pomalu první synchronizace, ale pak nevidíte rozdíl) na node1 {zařízení / dev / drbd0; # zde určujeme, které zařízení je vyhrazeno pro drbd, můžeme mít více zařízení pro různá data nebo různé služby, například SAMBA, MySQL, mimo jiné disk / dev / md2; #zadejte oddíl, který bude použit pro adresu drbd 172.16.0.1:7788; # Specifikujeme IP mimo rozsah naší sítě, stojí za zmínku, že síťový kabel musí být připojen přímo mezi servery, aniž by procházel přepínačem nebo rozbočovačem, pokud se jedná o nedávné modelové síťové karty, křížený kabel není nutný. interní metadisk; } na node2 {# specifikace druhého musí být stejné jako u prvního, mění se pouze adresa IP, musí to být stejný port, protože pokud máme dohromady 2 klastry, budou v konfliktu a nebudou fungovat vhodně, pokud chceme mít více klastrů, doporučujeme použít různé porty, je samozřejmé, že tyto porty musí být na obou uzlech stejné. zařízení / dev / drbd0; disk / dev / md2; adresa 172.16.0.2:7788; interní metadisk; }}
ZVĚTŠIT
5. Následuje konfigurace souboru hostiteleDůvodem je, že servery jsou prohledávány prostřednictvím synchronizační IP, a nikoli podle IP místní sítě, a tím se vyhneme konfliktům se službami:
/ etc / hosts 192.168.1.1 node1 #name of node1 on local network segment 192.168.1.2 node2 #name of node2 on local network segment 172.16.0.1 node1 #name of node1 on synchronization network segment 172.16.0.2 node2 #name from node2 in sync segment sítě
6. Inicializuje se úložná jednotka pro drbd
[root @ node1 ~] drbdadm create-md disk1
7. Spustí se služba drbd nebo deamon
/etc/init.d/drbd start
8. V uzlu, který chceme být primární, provedeme následující příkaz
drbdadm--overwrite-data-of-peer primární disk1
9. Sledujeme synchronizaci obou uzlů
Za tímto účelem provedeme:
kat / proc / drbdOdpověď z výše uvedeného příkazu je něco jako následující:
verze: 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 / Inconsistent C rn- ns: 1060156 nr: 0 dw: 33260 dr: 1034352 al: 14 bm: 62 lo: 9 pe: 78 ua: 64 ap: 0 ep: 1 wo: f oos: 31424 [===== ==============>.] synchronizováno: 97,3% (31424/1048508) K dokončení: 0:00:01 rychlost: 21,240 (15,644) K / s # Zde to vidíme Synchronizace jde na 97,3% a je uvedeno, že se jedná o primární uzel a sekundární uzel se jeví jako nekonzistentní, protože synchronizace ještě nebyla dokončena. #Jakmile skončíme, znovu spustíme cat / proc / drbd a máme následující: verze: 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: f oos: 0 # Vrácením zprávy UpToDate jsme si vědomi, že synchronizace je dokončena a oddíly drbd jsou úplně stejné.
10. Další věcí je formátování našeho zařízení drbdZa tímto účelem provedeme:
mkfs.ext3 / dev / drbd1Používám ext3, protože mi poskytl dobrou stabilitu, ale mohli bychom také použít ext4, nedoporučuji používat žádný typ oddílu pod ext3.
Zatím jsme již schopni ručně připojit oddíl / dev / drbd1 v jakémkoli bodě připojení systému, v mém případě pro připojení používám / home, protože každý z uživatelů registrovaných v obou uzlech má své vlastní adresáře pro webové stránky, proto Běžím:
mount -t ext3 / dev / drbd1 / homeA začnu vytvářet uživatele pro replikaci dat na obou serverech, následující je instalace prezenčního signálu, aplikace používaná k monitorování serverů mezi sebou a kdo bude mít na starosti provádění příslušných změn, pokud primární z jakéhokoli důvodu spadne a změní sekundární na primární, aby byla zajištěna funkčnost systému.
Pro instalace prezenčního signálu měly by být dodrženy pouze následující kroky. Úložiště je nainstalováno ke stažení pomocí následujícího příkazu:
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmUpravit soubor:
epel.repo /etc/yum.repos.d/epel.repozměnit řádek # 6 „Povolit = 1 povolením = 0“; můžete použít vi nebo nano editory, jak chcete.
[epel] name = Extra balíčky pro Enterprise Linux 6 - $ basearch # baseurl = http: //download.fedoraproject.org/pub/epel/6/$basearch mirrorlist = http: //mirrors.fedoraproject.org/metalink? repo = epel -6 & arch = $ basearch failovermethod = priorita povolena = 0 # Toto je řádek, který musíme upravit. do: Instalováno: prezenční signál .i686 0: 3.0.4-1.el6 Dokončeno!Jakmile je instalační proces dokončen, další věcí, kterou musíte udělat, je upravit 3 základní soubory, aby prezenční signál fungoval; nachází se v /etc/ha.d
- autorizační klíče
- ha.cf
- haresources
Otevřeme soubor autorizační klíče s následujícím příkazem:
vi /etc/ha.d/authkeysDoplňují se následující řádky:
auth 1 1 sha1 klíč pro spojení mezi prezenčními údery # V tomto řádku definujeme, který bude klíč pro vzájemné komunikace srdečních tepů každého uzlu, může být stejný jako ten použitý v drbd nebo jiný.Změníme oprávnění k souboru autorizační klíče takže jej lze přečíst pouze pomocí root:
chmod 600 /etc/ha.d/authkeysNyní upravíme druhý soubor:
vi /etc/ha.d/ha.cfPřidáváme následující řádky:
logfile / var / log / ha-log # systémový protokol je povolen pro budoucí chyby logfacility local0 keepalive 2 deadtime 30 # systém čeká 30 sekund na deklaraci node1 jako nefunkční initdead 120 # systém čeká 120 sekund na spuštění uzlu na čekání druhého . bcast eth0 # je specifikována ethernetová karta, přes kterou bude přenášena komunikace mezi servery, je velmi důležité věnovat pozornost, protože zde definujeme, která síťová karta jde do místní sítě a která směřuje synchronizaci udpport 694 # je určen synchronizační port , stejně jako v drbd můžeme mít více serverů a každý pár s příslušným portem definován auto_failback off # tím, že jej označíme jako vypnutý, zabráníme tomu, aby se node1, jakmile je poškozen a degradován, vrátil jako primární nebo se pokusil vrátit, čímž by došlo ke konfliktu s uzlem jiného uzlu node1 node2 # určíme názvy obou uzlů.
ZVĚTŠIT
K dokončení konfigurace musíme upravit soubor haresources pomocí příkazu:
vi /etc/ha.d/haresourcesPřidejte následující řádky:
node1 192.168.1.10/24/eth0 drbddisk :: mydrbd Filesystem ::/ dev/ drbd0 ::/ home :: ext3 #tento řádek je zodpovědný za připojení datového oddílu na uzel označovaný jako primární node1 192.168.1.10/24/ eth0 httpd #this line je zodpovědný za definování služby apache nebo webového serveru směrem k uzlu označovanému jako primární
ZVĚTŠIT
Tyto 3 soubory musí být zkopírovány do node2, o to se postará následující příkaz:
scp -r /etc/ha.d/root@node2:/etc/Soubor musí být upraven httpd.conf aby naslouchal požadavkům z virtuální IP, v tomto případě 192.168.1.10:
vi /etc/httpd/conf/httpd.confŘádek je přidán nebo upraven Poslouchejte 192.168.1.10:80
Upravený soubor se zkopíruje na druhý server:
scp /etc/httpd/conf/httpd.conf root @ node2: /etc /httpd /conf /Službu prezenčního signálu spouštíme na obou uzlech:
/etc/init.d/heartbeat startDíky tomu máme připravený server s vysokou dostupností, stačí zadat náš internetový prohlížeč a vložit IP 192.168.1.10 nebo nainstalovat panel podle vašeho výběru pro správu domény a vygenerovat příslušným uživatelům přístup k registrovaným stránkám nebo doménám na serveru.
Server s vysokou dostupností lze použít, jak již bylo zmíněno na začátku tohoto kurzu, jako: e -mailový server, webový server, databázový server, server samba mezi ostatními; Stejně tak nám to pomáhá předcházet ztrátě informací v důsledku selhání hardwaru a můžeme to ještě posílit nájezdy na diskové jednotky, ať už hardwarem nebo softwarem, nikdy není příliš mnoho disků v raidu na údržbu systému.
Server s vysokou dostupností však není osvobozen od problémů nebo chyb, když je uzel degradován, můžeme přejít do protokolu prezenčního signálu a zjistit, co se stalo, toho je dosaženo přístupem k souboru přiřazenému v konfiguraci haresources v /etc/ha.d
Stejně tak se může stát, že když z nějakého důvodu restartujete oba servery, nespustí se jako primární / sekundární a začínají jako primární / neznámé a neznámé / sekundární.
ZVĚTŠIT
Abychom to vyřešili, musíme provést následující kroky.
Do shellu spadlého uzlu napíšeme:
drbdadm sekundární zdrojNásledně:
drbdadm odpojit zdrojA pak:
drbdadm--zahodit prostředek pro připojení mých datNakonec do přeživšího uzlu nebo primárního zadáme:
zdroj připojení drbdadmNyní spustí resynchronizaci uzlů z přežívajícího uzlu na spadlý uzel, což začne okamžitě po stisknutí klávesy "Enter" v pokynu 4.
To, co se zde stalo, je známé jako a Rozdělený mozek"To se stane, když z nějakého důvodu primární uzel selže a je degradován, jakmile se to stane, důrazně doporučujeme důkladně zkontrolovat a analyzovat spadlý uzel a před opětovným začleněním do clusteru vyřešit jakýkoli existující problém, může to být také nutné přeinstalovat celý operační systém tohoto uzlu a bez problémů jej začlenit do clusteru jako sekundární pro synchronizaci a pokud by tomu tak bylo, po synchronizaci jej změňte na primární.
Na závěr bych rád zdůraznil pravidelná kontrola stavu clusteruDobře víme, že pro vysoký výkon je vždy dobré být o krok napřed před počítačovými katastrofami; Vzhledem k tomu, že jako IT pracovníci máme odpovědnost za péči o data společnosti nebo společností, do nichž patříme, jako další poznámku, domnívám se, že stojí za to doporučit vždy mít zálohu v nějaké alternativní jednotce k uzlům a mít tak zaručenou bezpečnost informací.
Nainstalujte a nakonfigurujte server Ubuntu
Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod