Vai al contenuto principale

Concetti — MongoDB

Architettura​

MongoDB su Hikube è un servizio gestito. Ogni cluster creato dalla console è, per impostazione predefinita, un replica set: un insieme di membri che contengono gli stessi dati, di cui uno solo accetta le scritture. Il cluster appartiene a un progetto e consuma le quote di tale progetto.


Terminologia​

TermineDescrizione
Cluster MongoDBIstanza gestita creata dalla console.
ProgettoSpazio isolato che raggruppa le sue risorse e a cui si applicano le quote.
Replica setGruppo di membri MongoDB che replicano gli stessi dati.
PrimaryMembro che accetta le scritture.
SecondaryMembro che replica il primary e può essere eletto al suo posto in caso di guasto.
OplogRegistro delle operazioni del primary, rieseguito dai secondary.
ShardSottoinsieme dei dati, ospitato dal proprio replica set (topologia shardata).
Server di configurazioneMembri che memorizzano i metadati della topologia shardata.
MongosRouter che riceve le richieste dei client e le indirizza verso gli shard corretti.
PresetModello di risorse (CPU, memoria) allocato a ogni nodo.

Replicazione e alta disponibilità​

I secondary rieseguono in continuo l'oplog del primary. Se il primary diventa indisponibile, i membri restanti eleggono un nuovo primary; perché l'elezione vada a buon fine deve essere disponibile la maggioranza dei membri.

Il valore Number of replicas si sceglie alla creazione:

Valore propostoUtilizzo
1 (Standalone)Sviluppo, test
3 (Max High Availability)Produzione: tollera la perdita di un membro
5 (Ultra High Availability)Produzione critica: tollera la perdita di due membri
avviso

Il numero di repliche, il preset e lo sharding non possono essere modificati dopo la creazione. Per cambiarli, contatti il supporto.


Sharding​

L'opzione Sharding (Distributed Topology) della procedura guidata è descritta così: «Enable sharding (automatically deploys configuration servers and Mongos routers, and configures replica sets as shards)». La console crea quindi:

  • 2 shard, ciascuno composto dal numero di repliche scelto e da un disco della dimensione scelta;
  • dei server di configurazione, con lo stesso numero di repliche e la stessa dimensione del disco;
  • dei router Mongos, con lo stesso numero di repliche.

Il consumo di risorse e il costo stimato ne tengono conto. Si veda Configurare lo sharding.


Utenti, database e ruoli​

La pagina di un cluster MongoDB comprende una sezione Users; non esiste una scheda dedicata ai database. I diritti si gestiscono per utente:

  • Global Role (Optional): No global role, Administrator o Read-only (global);
  • Specific Access (Databases): un elenco di coppie Database name / Rights (Administrator (Admin) o Read-only).

Un utente deve avere almeno un ruolo: senza ruolo globale né accesso specifico, la console mostra «Please assign at least one role (global or specific) to the user.» e rifiuta il salvataggio.

Gli utenti dichiarati nella procedura guidata di creazione del cluster ricevono il Role scelto sul database admin, visibile nella colonna Databases dell'elenco degli utenti: Administrator corrisponde ai ruoli MongoDB readWrite e dbAdmin su tale database, Read-only al ruolo read. Questi ruoli non danno accesso ad alcun altro database: conceda poi l'accesso ai suoi database applicativi tramite Manage Access. Tutti gli utenti vengono creati nel database admin, che funge da database di autenticazione (authSource=admin).

La password di un utente è generata dalla piattaforma e mostrata una sola volta. In caso di smarrimento, ne generi una nuova con Change Password.

Regole di denominazione​

ElementoRegola
Nome del clusterDa 3 a 16 caratteri: minuscole, cifre e trattini; inizia con una lettera, termina con una lettera o una cifra
Nome utenteMinuscole, cifre e trattini; inizia con una lettera, termina con una lettera o una cifra (da 3 a 16 caratteri nella procedura guidata di creazione del cluster)
Nome del databaseDa 1 a 63 caratteri: minuscole, cifre e trattini; inizia con una lettera, termina con una lettera o una cifra
nota

I trattini bassi (_) e le maiuscole non sono accettati né nei nomi dei database né nei nomi utente.


Preset​

Il Preset definisce la capacità allocata a ogni nodo. Fa fede l'elenco mostrato dalla procedura guidata; a titolo indicativo:

PresetCPUMemoria
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Accesso di rete​

  • External access disattivato (impostazione predefinita): il cluster non è esposto su Internet. Il campo Host del riquadro Network and Connection mostra Not defined.
  • External access attivato: la piattaforma assegna un indirizzo pubblico, mostrato nel campo Host per un cluster con sharding. Senza sharding, ciascun membro riceve il proprio indirizzo pubblico e il campo resta su Not defined: richieda l'indirizzo al supporto. La porta è quella standard di MongoDB, 27017. La procedura guidata fornisce una stringa di connessione nella forma mongodb://<utente>:<password>@<host>.

Backup e ripristino​

La configurazione dei backup e il ripristino non sono disponibili nella console; contatti il supporto.


Quote e costi​

La procedura guidata mostra l'Estimated Cost e l'impatto del cluster sulle quote del progetto. Se il cluster supera le quote disponibili, il pulsante Next resta inattivo.

ParametroValore
Versioni6.0, 7.0, 8.0
Repliche1, 3 o 5
Dimensione del discoDa 1 a 4.096 GB, entro il limite della quota di storage del progetto

Per approfondire​