El sistema operativo a instalar en cada una de las máquinas virtuales ya creadas es Debian, el mismo que hemos utilizado para el clúster. Para ello utilizamos la plantilla de Debian incluida en Proxmox y realizamos una instalación normal

Instalación de MongoDB

img crear lxc

apt update

apt install mongo

IP fija: 192.168.123.100, .101, .102 y .103

Configuración del almacenamiento

Para la gestión de los datos usamos el motor de almacenamiento WiredTiger:

  • Es una plataforma de código abierto NoSQL
  • Usa un formato de ficheros compacto y compresión de datos: se reduce el acceso a disco.
  • Utiliza la arquitectura de Control de Concurrencia MultiVersion (MVCC): acceso concurrente a los datos
  • A partir de MongoDB 3.2 es el utilizado por defecto

Editamos el fichero /etc/mondodb.conf en todos los servidores de base de datos con el contenido siguiente (sustituir <ip interna del servidor> por su valor real):

systemLog:
destination: file
path: «/var/log/mongodb/mongod.log»
logAppend: true

# Listen to local interface only. Comment out to listen on all interfaces.
net:
bindIp: <ip interna del servidor>
port: 27017

# Storage engine

storage:
dbPath: /data/mongodb
engine: wiredTiger
directoryPerDB: true
wiredTiger:
engineConfig:
cacheSizeGB: 1

# Replication option

replication:
oplogSizeMB: 1024
replSetName: rsBD

########################################################################

Creamos el directorio /data/mongodb para almacenar los datos de la base y le damos permisos sobre el mismo a mongodb:mongodb

mkdir /data/mongodb

chown -R mongodb:mongodb /data/mongodb

Se reinicia el servicio en uno de los servidores. Para comprobar que está bien iniciado miramos la respuesta del shell

service mongodb restart

Comprobar con db.serverStatus que el storage.engine está habilitado y que rs.status() dice que falta la inicialización.

Árbitro

Hay que añadir un árbitro para que decida en caso de empate en votos entre servidores acerca de quién es el primario

Editamos el fichero /etc/mondodb.conf y cambiamos el puerto de comunicaciones (30000)

systemLog:

port: 30000

replSetName: rsBD

########################################################################

Se crea el directorio /data/arb (aquí no se van a almacenar los datos de la base ) y se le dan permisos a mongodb:mongodb

mkdir /data/arb

chown -R mongodb:mongodb /data/arb

Se reinicia el servicio de mongo en el árbitro, y desde el primario añadimos el árbitro

rs.addArb(«host»:30000)

Para entender mejor los comandos de configuración de réplicas os aconsejamos el siguiente link

https://docs.mongodb.com/manual/reference/method/js-replication/

Verificación del la instalación

service mongodb status

rs.status()

Estado de mongodb1

cambio de primario a secundario

Se para el primario y se ve como el secundario recoge el control. Para ello se puede hacer con un

service mongodb stop

Comprobar que uno de los otros nodos ha pasado a ser primario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.