sql >> Database teknologi >  >> NoSQL >> MongoDB

Tips til lagring af MongoDB-sikkerhedskopier i skyen

Når det kommer til sikkerhedskopiering og dataarkivering, er it-afdelinger under pres for at overholde strengere serviceniveauaftaler, levere flere tilpassede rapporter og overholde udvidede overholdelseskrav, mens de fortsætter med at administrere daglige arkiverings- og backupopgaver. Der er ingen tvivl om, at databaseserveren gemmer nogle af din virksomheds mest værdifulde information. At garantere pålidelige databasesikkerhedskopier for at forhindre tab af data i tilfælde af en ulykke eller hardwarefejl er et kritisk afkrydsningsfelt.

Men hvordan gør man det virkelig DR, når alle dine data er i det enkelte datacenter eller endda datacentre, der er i den nærmeste geolocation? Desuden, uanset om det er en 24x7 højt belastet server eller et miljø med lavt transaktionsvolumen, vil du have behov for at lave sikkerhedskopier til en problemfri procedure uden at forstyrre serverens ydeevne i et produktionsmiljø.

I denne blog vil vi gennemgå MongoDB backup til skyen. Skyen har ændret industrien for databackup. På grund af dets overkommelige prisniveau har mindre virksomheder en ekstern løsning, der sikkerhedskopierer alle deres data.

Vi vil vise dig, hvordan du udfører sikre MongoDB-sikkerhedskopier ved hjælp af mongo-tjenester samt andre metoder, som du kan bruge til at udvide dine muligheder for gendannelse af databasekatastrofer.

Hvis din server eller backupdestination er placeret i en udsat infrastruktur som en offentlig sky, hostingudbyder eller forbundet via et ikke-betroet WAN-netværk, skal du tænke over yderligere handlinger i din backuppolitik. Der er et par forskellige måder at udføre databasesikkerhedskopiering på for MongoDB, og afhængigt af typen af ​​sikkerhedskopiering vil gendannelsestid, størrelse og infrastrukturmuligheder variere. Da mange af cloud storage-løsningerne simpelthen er storage med forskellige API-frontends, kan enhver backup-løsning udføres med lidt scripting. Så hvad er de muligheder, vi har for at gøre processen glat og sikker?

MongoDB Backup Encryption

Sikkerhed bør være i centrum for enhver handling, som it-teams udfører. Det er altid en god idé at håndhæve kryptering for at øge sikkerheden for sikkerhedskopierede data. En simpel use case til at implementere kryptering er, hvor du vil skubbe sikkerhedskopien til offsite backup-lager placeret i den offentlige sky.

Når du opretter en krypteret sikkerhedskopi, er én ting at huske på, at det normalt tager længere tid at gendanne. Sikkerhedskopien skal dekrypteres før nogen gendannelsesaktiviteter. Med et stort datasæt kan dette medføre nogle forsinkelser i RTO'en.

På den anden side, hvis du bruger de private nøgler til kryptering, skal du sørge for at opbevare nøglen et sikkert sted. Hvis den private nøgle mangler, vil sikkerhedskopien være ubrugelig og uoprettelig. Hvis nøglen bliver stjålet, vil alle oprettede sikkerhedskopier, der bruger den samme nøgle, blive kompromitteret, da de ikke længere er sikret. Du kan bruge populære GnuPG eller OpenSSL til at generere private eller offentlige nøgler.

For at udføre MongoDBdump-kryptering ved hjælp af GnuPG skal du generere en privat nøgle og følge guiden i overensstemmelse hermed:

$ gpg --gen-key

Opret en almindelig MongoDBdump-sikkerhedskopi som normalt:

$ mongodump –db db1 –gzip –archive=/tmp/db1.tar.gz
Krypter dump-filen og fjern den ældre almindelige sikkerhedskopi:
$ gpg --encrypt -r ‘[email protected]’ db1.tar.gz

$ rm -f db1.tar.gz
GnuPG vil automatisk tilføje .gpg-udvidelsen til den krypterede fil. For at dekryptere

skal du blot køre gpg-kommandoen med --decrypt flag:

$ gpg --output db1.tar.gz --decrypt db1.tar.gz.gpg
For at oprette en krypteret MongoDBdump ved hjælp af OpenSSL, skal man generere en privat nøgle og en offentlig nøgle:
OpenSSL req -x509 -nodes -newkey rsa:2048 -keyout dump.priv.pem -out dump.pub.pem

Denne private nøgle (dump.priv.pem) skal opbevares på et sikkert sted til fremtidig dekryptering. For Mongodump kan en krypteret backup oprettes ved at overføre indholdet til openssl, for eksempel

mongodump –db db1 –gzip –archive=/tmp/db1.tar.gz | openssl smime -encrypt -binary -text -aes256

-out database.sql.enc -outform DER dump.pub.pem
For at dekryptere skal du blot bruge den private nøgle (dump.priv.pem) sammen med flaget -decrypt:

openssl smime -decrypt -in database.sql.enc -binary -inform

DEM -inkey dump.priv.pem -out db1.tar.gz

MongoDB Backup Compression

Inden for database cloud backup verden er komprimering en af ​​dine bedste venner. Det kan ikke kun spare lagerplads, men det kan også reducere den tid, det tager at downloade/uploade data betydeligt.

Ud over arkivering har vi også tilføjet understøttelse af komprimering ved hjælp af gzip. Dette afsløres ved introduktionen af ​​en ny kommandolinjemulighed "--gzip" i både mongodump og mongorestore. Komprimering virker både for sikkerhedskopier, der er oprettet ved hjælp af mappen og arkivtilstanden og reducerer forbruget af diskplads.

Normalt kan MongoDB dump have de bedste komprimeringshastigheder, da det er en flad tekstfil. Afhængigt af komprimeringsværktøjet og forholdet kan en komprimeret MongoDBdump være op til 6 gange mindre end den originale backupstørrelse. For at komprimere sikkerhedskopien kan du overføre MongoDBdump-outputtet til et komprimeringsværktøj og omdirigere det til en destinationsfil

Hvis du har en komprimeret sikkerhedskopi, kan du spare op til 50 % af den originale sikkerhedskopistørrelse, afhængigt af datasættet.

mongodump --db country --gzip --archive=country.archive

Begrænsning af netværksgennemstrømning

En god mulighed for sikkerhedskopiering i skyen er at begrænse netværksstreamingbåndbredden (Mb/s), når du laver en sikkerhedskopi. Det kan du opnå med pv tool. Pv-værktøjet kommer med datamodifikator-option -L RATE, --rate-limit RATE, som begrænser overførslen til et maksimum på RATE bytes pr. sekund. Nedenstående eksempel vil begrænse det til 2MB/s.

$ pv -q -L 2m

Overførsel af MongoDB-sikkerhedskopier til skyen

Når din sikkerhedskopi nu er komprimeret og sikret (krypteret), er den klar til overførsel.

Google Cloud

Gsutil-kommandolinjeværktøjet bruges til at administrere, overvåge og bruge dine lagerbøtter på Google Cloud Storage. Hvis du allerede har installeret gcloud util, har du allerede gsutil installeret. Ellers skal du følge instruktionerne til din Linux-distribution herfra.

For at installere gcloud CLI kan du følge nedenstående procedure:

curl https://sdk.cloud.google.com | bash
Genstart din shell:
exec -l $SHELL
Kør gcloud init for at initialisere gcloud-miljøet:
gcloud init
Med gsutil-kommandolinjeværktøjet installeret og autentificeret, skal du oprette en regional lagerbøtte ved navn MongoDB-backups-storage i dit nuværende projekt.
gsutil mb -c regional -l europe-west1 gs://severalnines-storage/

Creating gs://MongoDB-backups-storage/

Amazon S3

Hvis du ikke bruger RDS til at hoste dine databaser, er det meget sandsynligt, at du laver dine egne sikkerhedskopier. Amazons AWS-platform, S3 (Amazon Simple Storage Service) er en datalagringstjeneste, der kan bruges til at gemme databasesikkerhedskopier eller andre forretningskritiske filer. Enten det er Amazon EC2-instansen eller dit lokale miljø, du kan bruge tjenesten til at sikre dine data.

Mens sikkerhedskopier kan uploades via webgrænsefladen, kan den dedikerede s3-kommandolinjegrænseflade bruges til at gøre det fra kommandolinjen og gennem sikkerhedskopieringsautomatiseringsscripts. Hvis sikkerhedskopier skal opbevares i meget lang tid, og genoprettelsestiden ikke er et problem, kan sikkerhedskopier overføres til Amazon Glacier-tjenesten, hvilket giver meget billigere langtidslagring. Filer (amazon-objekter) er logisk gemt i en stor flad beholder med navnet bucket. S3 præsenterer en REST-grænseflade til sine interne. Du kan bruge denne API til at udføre CRUD-operationer på buckets og objekter, samt til at ændre tilladelser og konfigurationer på begge.

Den primære distributionsmetode for AWS CLI på Linux, Windows og macOS er pip, en pakkehåndtering til Python. Instruktioner kan findes her.

aws s3 cp severalnines.sql s3://severalnine-sbucket/MongoDB_backups
Som standard giver S3 elleve 9s objekt holdbarhed. Det betyder, at hvis du gemmer 1.000.000.000 (1 milliard) genstande i den, kan du i gennemsnit forvente at miste 1 objekt hvert 10. år. Den måde, S3 opnår et imponerende antal 9'er på, er ved at replikere objektet automatisk i flere tilgængelighedszoner, som vi vil tale om i et andet indlæg. Amazon har regionale datacentre over hele verden.

Microsoft Azure Storage

Microsofts offentlige cloud-platform, Azure, har lagermuligheder med sin kontrollinjegrænseflade. Information kan findes her. Open source Azure CLI på tværs af platforme giver et sæt kommandoer til at arbejde med Azure-platformen. Det giver meget af den funktionalitet, der ses i Azure-portalen, inklusive rig dataadgang.

Installationen af ​​Azure CLI er ret enkel, du kan finde instruktioner her. Nedenfor kan du finde, hvordan du overfører din sikkerhedskopi til Microsofts lager.

az storage blob upload --container-name severalnines --file severalnines.gz.tar --name severalnines_backup

Hybridlager til MongoDB-sikkerhedskopier

Med den voksende offentlige og private cloud storage-industri har vi en ny kategori kaldet hybrid storage. Den typiske tilgang er at opbevare data på lokale diskdrev i en kortere periode, mens cloud backup-lagring vil blive holdt i længere tid. Mange gange kommer kravet om længere sikkerhedskopiering fra juridiske forpligtelser for forskellige brancher (som telekommunikation, der skal gemme forbindelsesmetadata). Denne teknologi gør det muligt at lagre filerne lokalt, med ændringer automatisk synkroniseret til fjernbetjeningen i skyen. En sådan tilgang kommer fra behovet for at have nylige sikkerhedskopier gemt lokalt til hurtig gendannelse (lavere RTO) samt forretningskontinuitetsmål.

Det vigtige aspekt af effektiv ressourceanvendelse er at have separate sikkerhedskopiering. Data, der er gemt lokalt på redundante diskdrev, vil blive opbevaret i en kortere periode, mens cloud backup-lagring ville blive holdt i længere tid. Mange gange kommer kravet om længere sikkerhedskopiering fra juridiske forpligtelser for forskellige industrier (såsom telekommunikation, der skal gemme forbindelsesmetadata).

Skyudbydere som Google Cloud Services, Microsoft Azure og Amazon S3 tilbyder hver især praktisk talt ubegrænset lagerplads, hvilket reducerer lokale pladsbehov. Det giver dig mulighed for at beholde dine sikkerhedskopifiler i længere tid, så længe du vil og ikke have bekymringer omkring lokal diskplads.

ClusterControl Backup Management - Hybrid Storage

Når du planlægger sikkerhedskopiering med ClusterControl, kan hver af sikkerhedskopieringsmetoderne konfigureres med et sæt muligheder for, hvordan du ønsker, at sikkerhedskopieringen skal udføres. Det vigtigste for hybrid cloud storage ville være:

  • Netværksregulering
  • Kryptering med den indbyggede nøgleadministration
  • Kompression
  • Opbevaringsperioden for de lokale sikkerhedskopier
  • Opbevaringsperioden for cloud-sikkerhedskopierne

ClusterControl avancerede sikkerhedskopieringsfunktioner til cloud, parallel komprimering, netværksbåndbreddegrænse, kryptering , osv. Din virksomhed kan drage fordel af cloud-skalerbarhed og pay-as-you-go-priser til voksende lagerbehov. Du kan designe en sikkerhedskopieringsstrategi til at levere både lokale kopier i datacentret til øjeblikkelig gendannelse og en problemfri gateway til cloud storage-tjenester fra AWS, Google og Azure.

Avanceret TLS og AES 256 -bit kryptering og komprimeringsfunktioner understøtter sikre sikkerhedskopier, der fylder væsentligt mindre i skyen.


  1. Apache HBase-replikeringsoversigt

  2. Brug af Redis med Node.js og Socket.IO

  3. Brug af Redis Object Cache til at fremskynde din WordPress-installation

  4. MongoDB begrænse lagerstørrelse?