Hulpartikel overzicht

Hulpartikel

Linux redundantie tutorial 1: intro en benodigheden

TransIP bied je de mogelijkheid je diensten geografisch te spreiden over onze availability zones. Hierdoor is het mogelijk om een redundante VPS-omgeving opzetten, waarbij wanneer bijvoorbeeld een hypervisor offline zou gaan, je klanten er niets van merken.

In deze tutorial series laten wij je zien hoe je een redundante omgeving opzet voor het hosten van websites, inclusief database, en zorgt dat je data tussen VPS'en gesynchroniseerd blijft. Er is helaas geen one-size fits all oplossing voor alle denkbare scenario's, dus raden wij aan eerst deze tutorials door te lezen, voordat je de beschreven stappen uitvoert.

Het opzetten van een redundante VPS-omgeving wordt in de volgende delen behandeld:

  1. Inleiding, benodigdheden, use cases
  2. Je websites updaten en synchroniseren (Rsync)
  3. Je database synchroniseren (master-slave)
  4. Failover van je database (MaxScale en MariaDB-Monitor)
  5. Je database aan je applicatie koppelen met Keepalived (PHP, WordPress)
  6. Aanvullende tips

De concepten zoals RSync, master-slave, etc. worden in de betreffende delen nader toegelicht.

  • Voor deze tutorialseries gaan wij ervan uit dat je bekend bent met het opzetten van een veilige VPS met een webserver en MariaDB-server en gerelateerde materie, zoals SQL-queries. Deze materie wordt verder niet behandeld in deze tutorialseries.
     
  • Maak eerst een snapshot van je VPS'en voor je aan deze tutorialseries begint, zo heb je altijd een back-up wanneer je per ongeluk een ongewenste configuratieaanpassing maakt.
     
  • De VPS'en die wij voor deze tutorialseries gebruiken zijn voorzien van: CentOS 7, Apache 2.4.6 (webserver), proFTPD 1.3.6 (webserver) en MariaDB 10.2 (SQL-server). Waar relevant geven wij in deze tutorial series voor eventuele extra software ook de installatie-stappen voor Ubuntu/Debian aan (getest op Ubuntu 16.04).
     
  • Voor het opzetten van een SQL-cluster zoals in deze tutorials, is MariaDB 10.2 of nieuwer nodig. Wanneer wij in deze tutorials over SQL spreken, doelen wij op SQL van MariaDB.
     
  • De beveiliging van de VPS'en is aan jezelf. Waar bijvoorbeeld poorten moeten worden open gezet zullen wij wel aangeven welke poorten dit zijn.

Use case

Het doel van deze tutorial series is om je te laten zien hoe je in brede zin redundante webservers en SQL-servers opzet op VPS'en met CentOS7 en Debian 8/Ubuntu 16.04 of nieuwer. De principes zijn ook toepasbaar op servers met een controlepaneel, maar dit wordt niet officieel ondersteund door de ontwikkelaars van die controlepanelen en valt buiten de scope van deze tutorial series.

Wij laten je een manier zien om een doorlopende synchronisatie op te zetten voor de websites die je op je VPS host. Hierdoor worden updates van websites gesynchroniseert op je webservers, en blijven bestanden onderling synchroniseert.

Daarnaast laten wij je zien hoe je een redundante SQL-configuratie opzet waarbij je op meerdere servers dezelfde database(s) host, al dan niet met automatische failover en loadbalancing.

Het hoofddoel is om je bekend te maken met diverse tools die je kunt inzetten voor het opzetten van redundante webservers en SQL-servers. Het eindresultaat van de configuratie die besproken wordt in deze tutorial series is:

  • Websites: De websites verwijzen in hun DNS-instellingen naar HA-IP Pro. Hiermee bereik je loadbalancing en failover:
    • Loadbalancing: Bezoekers worden automatisch verdeeld over de twee gekoppelde VPS'en.
    • Failover: Wordt één van de webservers onbereikbaar, dan neemt de ander al het verkeer over.
       
    Voor de synchronisatie van de bestanden op de websites zetten wij Rsync in.
     
  • SQL: Wij gebruiken een master-slave-setup voor de SQL-database:
     
    • Bij een master-slave-setup voert de SQL-master alle write- (create-, drop-, etc.) SQL-queries uit naar zichzelf en naar alle gekoppelde slave VPS'en. Stel dat een bezoeker zich registreert op je website, dan worden die gegevens doorgaans vastgelegd in een write-query.
    • De read-queries worden uitgevoerd op het private LAN IP-adres van de SQL-servers.
    • MaxScale zorgt ervoor dat wanneer de master onbereikbaar wordt, automatisch een van de gekoppelde slaves de nieuwe master wordt.
    • Wij zetten een virtueel IP-adres in om te zorgen dat write-queries altijd naar de huidige master worden gestuurd.

Voor het schrijven hebben wij twee VPS'en als webservers gebruikt en twee VPS'en als SQL-servers.


VPS-monitoring

Gaat er in je redundante setup een VPS offline, dan wil je daar natuurlijk bovenop zitten. Stel dan ook altijd monitoring voor je VPS'en in. Je ontvangt dan automatisch een e-mail als een van je VPS'en onbereikbaar wordt.


Wat heb ik nodig om een redundante VPS-omgeving op te zetten?

Voor het opzetten van een redundante VPS-omgeving zoals in deze tutorial series, heb je minimaal twee VPS'en in iedere availability-zone nodig. In iedere availability zone heb je één VPS die dienst doet als webserver en één VPS die dienst doet als database (SQL) server. Je hebt minimaal de volgende producten nodig voor een dergelijke redundante setup:

  • Vier VPS'en: Twee in de ene availability-zone (Amsterdam), en twee in een andere (Delft). Richt twee VPS'en in als identieke webservers en twee als identieke SQL-servers met MariaDB 10.2 of nieuwer.

    Je kunt bijvoorbeeld een webserver en SQL-server volledig inrichten in Amsterdam en daarna klonen naar twee nieuwe VPS'en in Delft. Alternatief kun je tijdens het bestellen van de VPS'en een availability-zone kiezen en ze allemaal geheel vanaf nul inrichten.
     
  • HA-IP Pro: HA-IP Pro is een out-of-the-box loadbalancer met automatische failover. HA-IP Pro zetten wij in deze tutorial series in om inkomend verkeer gelijkmatig over je webservers te verdelen.
     
  • Private network: Voor een optimale werking van je redundante setup, wil je alle bestanden tussen je VPS'en laten synchroniseren. Met een private network zal de synchronisatie tussen beide VPS'en niet bijdragen aan het  dataverkeer van je traffic pool. Daarnaast is het wenselijk je webservers via een private network te laten communiceren met de SQL-servers en deze publiekelijk ontoegankelijk te maken (meer daarover in een later deel).

Optioneel:

  • Big Storage: Sla je grote hoeveelheden data op, dan raden wij aan Big Storage erbij te gebruiken (één in de ene availability-zone, en één in de andere). Met Big Storage voeg je maximaal 400TB opslag toe aan een VPS.

HA-IP Pro-configuratie

Wil je deze tutorial series één op één volgen, dan heb je de onderstaande instellingen in HA-IP Pro nodig.

VPS'en koppelen

Koppel enkel je webservers aan HA-IP Pro (niet je SQL-servers).

Load balancing

De keuze van een loadbalancing-methode is een persoonlijke en je bent hier helemaal vrij in. Voor een evenredige verdeling over de VPS'en gebruiken wij Round Robin.

haip pro load balancing instellingen

TCP-poortinstellingen

Er zijn twee soorten verkeer die je moet doorsturen in HA-IP Pro: HTTP- en HTTPS-,verkeer. Stel je HA-IP Pro hiervoor in zoals in het screenshot hieronder. Voor meer informatie over HA-IP pro, zie ons artikel over HA-IP Pro.

haip pro instellingen - tcp poortinstellingenBekijk ons artikel 'Wat is HA-IP Pro' voor meer informatie over het instellen van de Health check.


DNS-instellingen

Verwijs in de DNS-instellingen van het domein dat je gebruikt voor deze tutorials het A-record en AAAA-record naar respectievelijk je IPv4- en IPv6-adres van HA-IP Pro.


 

Daarmee zijn wij aan het eind van het inleidende deel van een redundante VPS-omgeving opzetten gekomen. Zorg voor je verder gaat dat je de volgende configuratie klaar hebt:

  • Twee identieke webservers met een Apache- of Nginx-server, met een SFTP / FTPS server.
  • De webservers zijn gekoppeld aan HA-IP Pro.
  • Twee identieke VPS'en met MariaDB 10.2+
  • Alle vier de VPS'en zijn gekoppeld aan je private network.
  • Minimaal één domein dat in de DNS is gekoppeld aan HA-IP Pro.

Klik vervolgens hier om verder te gaan met deel twee: je websites synchroniseren.


 

Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' aan de onderzijde van deze pagina.

Wil je dit artikel met andere gebruikers bespreken, laat dan vooral een bericht achter onder 'Reacties'.

Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op