Publicado el 18 de Marzo del 2019
1.687 visualizaciones desde el 18 de Marzo del 2019
1,6 MB
64 paginas
Creado hace 7a (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
Comentarios de: Cluster de Alta Disponibilidad con Balanceo de Carga en Alfresco (0)
No hay comentarios