Configura un escenario con dos máquinas. Cada una tiene que tener dos discos adicionales (tamaño 1Gb para que la sincronización sea rápida).
Configura en modo Single-primary el recurso wwwdata.
- Primero debemos instalar el paquete necesario para usar
DRBD
en las dos máquinas.
vagrant@maquina1:~$ sudo apt install drbd-utils
- Ahora para crear este recurso lo hacemos creando un fichero en
/etc/drbd.d/
al que llamaremos wwwdata.res
resource wwwdata {
protocol C;
meta-disk internal;
device /dev/drbd1;
syncer {
verify-alg sha1;
}
net {
allow-two-primaries;
}
on maquina1 {
disk /dev/vdb;
address 192.168.121.29:7789;
}
on maquina2 {
disk /dev/vdb;
address 192.168.121.17:7789;
}
}
- Una vez creado este fichero en las dos máquinas, creamos el recurso.
vagrant@maquina1:~$ sudo drbdadm create-md wwwdata
initializing activity log
initializing bitmap (32 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
vagrant@maquina2:~$ sudo drbdadm create-md wwwdata
initializing activity log
initializing bitmap (32 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
- No podemos olvidarnos de levantarlo.
vagrant@maquina1:~$ sudo drbdadm up wwwdata
- Debemos elegir a una de las dos maquinas como primaria, vamos a elegir la maquina1.
vagrant@maquina1:~$ sudo drbdadm primary --force wwwdata
- Se nos indica que le demos formato xfs a este dispositivo, así que vamos a ello, primero debemos instalar el siguiente paquete.
vagrant@maquina1:~$ sudo apt install xfsprogs
- Le damos formato al disco y lo montamos.
vagrant@maquina1:~$ sudo mkfs.xfs /dev/drbd1
meta-data=/dev/drbd1 isize=512 agcount=4, agsize=65532 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0
data = bsize=4096 blocks=262127, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1566, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
vagrant@maquina1:~$ sudo mount /dev/drbd1 /mnt/drbd/
- Hemos creado un fichero dentro.
vagrant@maquina1:~$ cat /mnt/drbd/prueba.txt
prueba de funcionamiento
- Al intentar montar o darle formato en la maquina2 vemos que nos aparece un mensaje de error, esto es debido a que es la maquina1 la principal, por tanto la maquina2 no tiene permisos para realizar estas operaciones.
vagrant@maquina2:~$ sudo mkfs.xfs /dev/drbd1
mkfs.xfs: cannot open /dev/drbd1: Read-only file system
vagrant@maquina2:~$ sudo mount /dev/drbd1 /mnt
mount: /mnt: mount(2) system call failed: Wrong medium type.
- Por tanto en la maquina1 debemos desmontar el dispositivo y poner este servidor como secundario.
vagrant@maquina1:~$ sudo umount /mnt/drbd
vagrant@maquina1:~$ sudo drbdadm secondary wwwdata
- Y hacer a la maquina2 servidor primario tal como hicimos con la 1 anteriormente.
vagrant@maquina2:~$ sudo drbdadm primary --force wwwdata
- Y podemos comprobar que si montamos el dispositivo en la maquina2 se sincronizará y aparecerá el fichero que creamos anteriormente.
vagrant@maquina2:~$ sudo mount /dev/drbd1 /mnt/drbd/
vagrant@maquina2:~$ cat /mnt/drbd/prueba.txt
prueba de funcionamiento
Configura en modo Dual-primary el recurso dbdata.
- Crearemos nuevamente este recurso en la misma localización del anterior, este se llamará
dbdata.res
resource dbdata {
protocol C;
meta-disk internal;
device /dev/drbd2;
syncer {
verify-alg sha1;
}
net {
allow-two-primaries;
}
on maquina1 {
disk /dev/vdc;
address 192.168.121.29:7790;
}
on maquina2 {
disk /dev/vdc;
address 192.168.121.17:7790;
}
}
- Creamos y activamos el recurso en las dos máquinas.
vagrant@maquina2:~$ sudo drbdadm create-md dbdata
initializing activity log
initializing bitmap (32 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
vagrant@maquina2:~$ sudo drbdadm up dbdata
- Y tal como hicimos antes asignamos un servidor primario.
vagrant@maquina1:~$ sudo drbdadm primary --force dbdata
- Una vez hecho esto vamos a crear un cluster
OCFS2
y para ello necesitamos dos paquetes que instalaremos en las dos maquinas.
vagrant@maquina2:~$ sudo apt install ocfs2-tools
- Ahora debemos definir el cluster debemos darle un nombre y añadir las maquinas que formarán parte de el.
vagrant@maquina1:~$ sudo o2cb add-cluster pruebaclust
vagrant@maquina1:~$ sudo o2cb add-node pruebaclust maquina1 --ip 192.168.121.29
vagrant@maquina1:~$ sudo o2cb add-node pruebaclust maquina2 --ip 192.168.121.17
- Configuramos el fichero
/etc/default/o2cb
que debe quedar de la siguiente forma:
# O2CB_ENABLED: 'true' means to load the driver on boot.
O2CB_ENABLED=true
# O2CB_BOOTCLUSTER: If not empty, the name of a cluster to start.
O2CB_BOOTCLUSTER=pruebaclust
# O2CB_HEARTBEAT_THRESHOLD: Iterations before a node is considered dead.
O2CB_HEARTBEAT_THRESHOLD=21
# O2CB_IDLE_TIMEOUT_MS: Time in ms before a network connection is considered dead.
O2CB_IDLE_TIMEOUT_MS=30000
# O2CB_KEEPALIVE_DELAY_MS: Max. time in ms before a keepalive packet is sent.
O2CB_KEEPALIVE_DELAY_MS=2000
# O2CB_RECONNECT_DELAY_MS: Min. time in ms between connection attempts.
O2CB_RECONNECT_DELAY_MS=2000
- El siguiente paso será registrar el cluster en ambas máquinas.
vagrant@maquina2:~$ sudo o2cb register-cluster pruebaclust
- Y configurar un par de parametros del kernel en las dos máquinas añadiendo al fichero
/etc/sysctl.conf
las siguientes líneas.
kernel.panic = 30
kernel.panic_on_oops = 1
- Y guardamos estos cambios.
vagrant@maquina1:~$ sudo sysctl -p
- Ahora si podemos darle formato y montarlo en ambas máquinas.
vagrant@maquina1:~$ sudo mkfs.ocfs2 --cluster-size 8K -J size=32M -T mail --node-slots 2 --label ocfs2_fs --mount cluster --fs-feature-level=max-features --cluster-stack=o2cb --cluster-name=pruebaclust /dev/drbd2
vagrant@maquina1:~$ sudo mount /dev/drbd2 /mnt/ocfs2/