PDF de programación - Cluster de Alta Disponibilidad con Balanceo de Carga en Alfresco

Imágen de pdf Cluster de Alta Disponibilidad con Balanceo de Carga en Alfresco

Cluster de Alta Disponibilidad con Balanceo de Carga en Alfrescográfica de visualizaciones

Publicado el 18 de Marzo del 2019
532 visualizaciones desde el 18 de Marzo del 2019
1,6 MB
64 paginas
Creado hace 3a (17/06/2016)
Samuel Guerra González



2º ASIR



Cluster de Alta Disponiblidad con

Balanceo de Carga en Alfresco



Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 1

Samuel Guerra González

2º ASIR



Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 2

2º ASIR

Samuel Guerra González

1. Escenario:



2. Configuración Percona.



2.1 Características de Percona:



Percona es un conocido software de desarrollo libre para MySQL, también se puede
implementar en gestores de base de datos como MongoDB, permite aumentar rendimiento y
fiabilidad, además de añadir funcionalidades adicionales como:



- Ejecuta consultas más rápido.

- Es un software consolidado en servidores potentes.

- Ahorro económico en hardware.

- Ahorro de tiempo en la puesta a punto y la administración.

- Mejora el tiempo que permanece un servidor sin caerse.



Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 3

Samuel Guerra González



2º ASIR

Comenzamos añadiendo en la siguiente ubicación, las máquinas con las que vamos a trabajar:



root@mysql2:/home/usuario# nano /etc/hosts



127.0.0.1 localhost

127.0.1.1 mysql2

10.0.0.6 mysql2

10.0.0.5 mysql1



# The following lines are desirable for IPv6 capable hosts

::1 localhost ip6-localhost ip6-loopback

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters



Descargamos el paquete percona en ambas máquinas:



root@mysql1:/home/usuario# wget

https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release

-sc)_all.deb

root@mysql1:/home/usuario# ls

percona-release_0.1-3.wheezy_all.deb



root@mysql2:/home/usuario# wget

https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release

-sc)_all.deb

root@mysql2:/home/usuario# ls

percona-release_0.1-3.wheezy_all.deb



Instalamos los siguientes paquetes en ambas máquinas:



Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 4

Samuel Guerra González



2º ASIR

root@mysql1:/home/usuario# dpkg -i percona-release_0.1-

3.wheezy_all.deb

root@mysql1:/home/usuario# aptitude update

root@mysql1:/home/usuario# apt-get install percona-xtradb-

cluster-server-5.6 percona-xtradb-cluster-client-5.6 percona-

xtradb-cluster-galera-3.x -y



root@mysql2:/home/usuario# dpkg -i percona-release_0.1-

3.wheezy_all.deb

root@mysql2:/home/usuario# aptitude update

root@mysql2:/home/usuario# apt-get install percona-xtradb-

cluster-server-5.6 percona-xtradb-cluster-client-5.6 percona-

xtradb-cluster-galera-3.x -y



Creamos el usuario el cual nos servirá para conectarnos con el otro servidor:



root@mysql1:/home/usuario# mysql -u root -proot



mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY

's3cretPass';

Query OK, 0 rows affected (0.20 sec)



mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO

'sstuser'@'localhost';

Query OK, 0 rows affected (0.03 sec)



mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.02 sec)



Una vez creada, nos vamos al siguiente fichero y realizamos las siguientes configuraciones:



root@mysql1:/home/usuario# nano /etc/mysql/my.cnf

Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 5

Samuel Guerra González



2º ASIR



Añadimos las siguientes debajo de "[mysqld]":



[mysqld]



datadir=/var/lib/mysql

user=mysql

# Path to Galera library

wsrep_provider=/usr/lib/libgalera_smm.so

# Empty gcomm address is being used when cluster is getting

bootstrapped

wsrep_cluster_address=gcomm://

# Cluster connection URL contains the IPs of node#1, node#2 and

node#3

wsrep_cluster_address=gcomm://10.0.0.5,10.0.0.6

# In order for Galera to work correctly binlog format should be

ROW

binlog_format=ROW

# MyISAM storage engine has only experimental support

default_storage_engine=InnoDB

# This is a recommended tuning variable for performance

innodb_locks_unsafe_for_binlog=1

# This changes how InnoDB autoincrement locks are managed and is

a requirement for$

innodb_autoinc_lock_mode=2

# Node #1 address

wsrep_node_address=10.0.0.5

# SST method

wsrep_sst_method=xtrabackup-v2

# Cluster name

Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 6

Samuel Guerra González



2º ASIR

wsrep_cluster_name=cluster

#Name of node

wsrep_node_name=mysql1

# Authentication for SST method

wsrep_sst_auth="sstuser:s3cretPass"



Y en la siguiente línea añadimos el valor:



bind-address = 0.0.0.0



En el nodo2 realizamos la siguiente configuración:



root@mysql2:/home/usuario# nano /etc/mysql/my.cnf



Debajo del "[mysqld]" añadimos el siguiente contenido:



[mysqld]



datadir=/var/lib/mysql

user=mysql

wsrep_provider=/usr/lib/libgalera_smm.so

### IP addresses of your two nodes.

wsrep_cluster_address=gcomm://10.0.0.5,10.0.0.6

### This will not work unless binlog is formatted to ROW.

binlog_format=ROW

### This changes how InnoDB autoincrement locks are managed and

is a

### requirement for Galera

innodb_autoinc_lock_mode=2

Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 7

Samuel Guerra González



2º ASIR

### Node #2 address (The node you are ssh`d into now.)

wsrep_node_address=10.0.0.6

### SST Method

wsrep_sst_method=xtrabackup-v2

### Cluster name

wsrep_cluster_name=cluster

### Node Name, in this case we will just call it xtradb1

wsrep_node_name=mysql2

### Authentication, REMEMBER THIS.

wsrep_sst_auth="sstuser:s3cretPass"



Por último lanzamos mysql1 con el siguiente comando:



root@mysql1:/home/usuario# /etc/init.d/mysql bootstrap-pxc

[ ok ] Bootstrapping Percona XtraDB Cluster database server:

mysqld already running.



Y mysql2 con el siguiente comando:



root@mysql2:/home/usuario# /etc/init.d/mysql start

[ ok ] Starting MySQL (Percona XtraDB Cluster) database server:

mysqld . . . ..



Realizamos la prueba, en la máquina mysql1 vamos a apagar el servidor mysql:



root@mysql1:/home/usuario# /etc/init.d/mysql stop

[ ok ] Stopping MySQL (Percona XtraDB Cluster): mysqld.



Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 8

Samuel Guerra González



2º ASIR



En el nodo dos vamos a crear una base de datos llamada "samuel":



root@mysql2:/home/usuario# mysql -uroot -proot

Warning: Using a password on the command line interface can be

insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 6



mysql> create database samuel;

Query OK, 1 row affected (0.09 sec)



A continuación volvemos a levantar el servicio mysql en mysql1 y debería replicar la base de
datos "samuel":



root@mysql1:/home/usuario# /etc/init.d/mysql start

[....] Starting MySQL (Percona XtraDB Cluster) database server:

mysqld . . . .[...[ ok ate transfer in progress, setting sleep

higher: mysqld ..



*Realizamos la consulta de que efectivamente la base de datos "samuel" ha sido copiada del
nodo mysql2:*



root@mysql1:/home/usuario# mysql -u root -proot

Warning: Using a password on the command line interface can be

insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 4



Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 9

Samuel Guerra González



2º ASIR



mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| samuel |

| test |

+--------------------+

5 rows in set (0.07 sec)



mysql>



3. Configuración DRBD (RAID1 en red entre varios
nodos):



DRBD es un software que permite hacer réplica de los datos de una partición entre varias
máquinas. Es decir, que si tengo una partición del mismo tamaño en dos máquinas, con DRBD
puedo hacer una réplica del contenido de esta partición de forma automática, para que en el
caso de que una máquina falle, tenga todo el contenido de esa partición accesible desde la
otra máquina. Es como un RAID1, pero entre distintas máquinas.Habitualmente, esta partición
de la que se hace mirror, solamente está montada en una de las máquinas porque se utiliza un
sistema de ficheros tradicional: ext3, raiserfs, xfs, … De esta forma, solo una de las máquinas
puede acceder a los datos, la que tiene la partición montada. Sirve para montar un sistema de
cluster en modo "activo/pasivo", y que una de las máquinas tenga todos los datos hasta que
falle, y en ese momento se puede acceder desde la otra máquina.

Pero también se puede configurar para que ambas máquinas tengan acceso a la partición en
espejo, y en este caso habría que montar un sistema de ficheros para acceso en clúster, como
GFS o OCFS.

Cluster Alta Disponiblidad con Balanceo de Carga en Alfresco


Página 10

Samuel Guerra González



2º ASIR

De esta forma podemos montar un clúster "activo/activo" donde ambas máquinas tienen
acceso simultáneo al recurso de datos.*



Comenzamos primeramente, montando un disco duro de 8 Gigas en cada uno de los nodos, y a
continuación instalamos los siguientes paquetes:*



root@alfresco1:/home/usuario# apt-get install drbd8-utils



root@alfresco2:/home/usuario# apt-get install drbd8-utils



A continuación activamos drbd en ambos nodos con el siguiente comando:



root@alfresco1:/home/usuario# modprobe drbd



root@alfresco2:/home/usuario# modprobe drbd



Ahora definimos el fichero de configuración de drbd en ambos nodos, pero antes realizamos
una copia del original, por si hay que volver a la configuración anterior:*



root@alfresco1:/home/usuario# cp /etc/drbd.conf

/etc/drbd.conf_orig

root@alfresco1:/home/usuario# cat /dev/null > /etc/drbd.conf

root@alfresco1:/home/usuario# nan
  • Links de descarga
http://lwp-l.com/pdf15546

Comentarios de: Cluster de Alta Disponibilidad con Balanceo de Carga en Alfresco (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad