Det eine arkivet gjenopprettar ein fungerande Pritunl-distribusjon; det andre gjenopprettar eit bilete av han. Ein klientprofil, ein kopi av vertskonfigurasjonen og ein tarball av tilstandsmappa ser alle ut som sikkerheitskopiar, og ingen av dei åleine bringer tilbake organisasjonane, brukarane og serverdefinisjonane som Pritunl administrerer. Skilnaden er eigarskap: noko tilstand høyrer til ein database, noko til verten, og noko er regenerert utdata. Vel du feil lag, gir gjenopprettinga ein server som startar, lyttar og ikkje veit noko. Denne samanlikninga skil dei tre laga slik at arkivet du held på samsvarar med feilen du gjenopprettar frå.

To objekt ser ut som sikkerheitskopiar, og berre eitt gjenopprettar tenesta

Ein nedlasta klientprofil inneheld eit sertifikat, ein nøkkel og eit endepunkt. Han er komplett for den eine eininga og ubrukeleg som register over distribusjonen: han ber ingen organisasjonar, ingen deaktiverte brukarar, ingen serverruter og ingen administrative kontoar. Gjenoppretting frå ei mappe med profilar gir klientar som ikkje kan autentisere seg mot noko.

Ein kopi av vertskonfigurasjonen er like delvis. /etc/pritunl.conf inneheld innstillingar på vertsnivå, mellom anna korleis databasen blir nådd, og han inneheld ikkje sjølve VPN-objekta.

Kva databasen eig, og kva verten eig

Pritunl oppbevarer serverdefinisjonar, brukarar, organisasjonar og nøklar i MongoDB. Den databasen er det autoritative kontrollplanet, og kvar genererte OpenVPN-fil på disken er utdata avleia frå han. Ei endring gjord direkte i ei generert fil overlever til neste regenerering og forsvinn deretter, og difor er redigering av køyretidsfiler inga varig retting. Den same regelen gjeld for effektive ruter og grensesnitt: dei skildrar kva kontrollplanet har produsert, ikkje kva det burde produsere.

Verten bidreg med eit mindre, men ikkje-overførbart sett med verdiar. Ein av dei er /var/lib/pritunl/pritunl.uuid, identiteten til nettopp den noden.

Den identiteten tyder mest i ein klynge. Ein erstatningsvert treng si eiga registrering i staden for ein klone av UUID-en til ein aktiv node, elles kjempar dei to om same identitet. Registrer tilordninga mellom kvar vert, UUID-en hans og databasen han peikar på, fordi ein einaste databasedump ikkje skildrar kva vertsinnstillingar som høyrde til kva maskin. Programvareversjonar og offentlege endepunktnamn høyrer til same register.

Ta ein konsistent dump, ikkje ein mappekopi

Kopiering av MongoDB-datamappa medan tenesta skriv, produserer filer som kanskje ikkje utgjer ein brukbar database. Bruk i staden den støtta dumppathen til databasen, køyrd mot topologien du faktisk har:

mongodump --uri="mongodb://127.0.0.1:27017/pritunl" --out=/var/backups/pritunl/db
sudo tar czf /var/backups/pritunl/host.tgz /etc/pritunl.conf /var/lib/pritunl/pritunl.uuid

Ein frittståande vert toler den enkle forma. Eit replikasett treng eit konsistent tidspunkt, og ein oplog-basert dump har krav som ein vanleg dump ikkje har. Den støtta prosedyren avheng av MongoDB-versjonen og -topologien din, så ikkje utlei han frå tilstadeveringa av ei datamappe. Arkiver vertslaget ved sida av dumpen, i same køyring, med same tidsstempel.

Øv på gjenopprettinga før du treng henne

Ein sikkerheitskopi som ingen har gjenoppretta, er ein hypotese. Bygg tenesta i eit isolert nettverk, gjenopprett dumpen og legg vertsfilene tilbake:

mongorestore --uri="mongodb://127.0.0.1:27017" --drop /var/backups/pritunl/db
sudo tar xzf /var/backups/pritunl/host.tgz -C /

Verifiser deretter objekta i staden for prosessen: logg inn, stadfest at organisasjonar og brukarar er til stades, og start ein testklient mot ein serverdefinisjon du kjenner att. Hindre den gjenoppretta verten i å annonsere produksjonsendepunktet eller godta ekte tilkoplingar før adresser og identitetar er medvite valde. Det er òg her du oppdagar at arkivet treng påloggingsinformasjon som berre levde på maskinen som feila, så oppbevar gjenopprettingsopplysningane på ein uavhengig stad. Ei gjenoppretting som er avhengig av verten du nettopp mista, er ingen gjenopprettingsplan.

Til slutt, hugs at eit gammalt augeblinksbilete gjenopprettar gamle avgjerder. Viss ein administrator deaktiverte ein identitet etter at dumpen vart teken, aktiverer gjenopprettinga han igjen. Avstemming etter gjenoppretting høyrer til prosedyren, ikkje til ettertanken.

Relaterte artiklar