funcionamiento con my sql

13
Funcionamiento con MySQL En su implementación más sencilla, un clúster MySQL integra un servidor MySQL estándar y un motor de almacenamiento en memoria llamado NDB clúster, funcionando en un conjunto de una o más computadoras. Cada una de estas computadoras ejecutando uno o más procesos, que pueden consistir en procesos de MySQL server, nodos de almacenamiento de datos, servidor administrador del clúster, o programas especializados para acceder a los datos.

Upload: dante123456

Post on 12-Jun-2015

76 views

Category:

Documents


0 download

DESCRIPTION

CLUSTER

TRANSCRIPT

Page 1: Funcionamiento con my sql

Funcionamiento con MySQL

En su implementación más sencilla, un clúster MySQL integra un servidor MySQL estándar y un motor de almacenamiento en memoria llamado NDB clúster, funcionando en un conjunto de una o más computadoras. Cada una de estas computadoras ejecutando uno o más procesos, que pueden consistir en procesos de MySQL server, nodos de almacenamiento de datos, servidor administrador del clúster, o programas especializados para acceder a los datos.

Page 2: Funcionamiento con my sql

Las tablas de la base de datos se almacenan utilizando el motor NDB en los nodos de almacenamiento. La manera de acceder a los datos almacenados en el clúster es a través de cualquiera de los nodos MySQL. Los nodos de datos funcionan utilizando un esquema de espejado, permitiendo soportar sin impacto la caída de nodos individuales de datos dentro de cluster. La única consecuencia que tendría un suceso como la caída de un nodo de datos, es que un pequeño conjunto de transacciones relacionados al nodo caído serán abortadas. Estas transacciones deben cumplir con el esquema transaccional, tal y como si estuvieran trabajando directamente con un servidor no clusterizado de MySQL

Page 3: Funcionamiento con my sql

BALANCEO DE CARGA Las soluciones de balance de carga pueden ser tanto hardware como software. En este caso, nosotros vamos a optar por una solución software llamada HAProxy que instalaremos en otra máquina virtual independiente y que funcionará de proxy con el resto de nodos SQL de la arquitectura, a fin de repartir las peticiones.

INSTALACION

Lo primero que tenemos que hacer es instalar una nueva máquina virtual. Esta máquina solo va a actuar de proxy balanceador por lo que lo único que tenemos que instalar es el paquete HAProxy.view plainprint?1. sudo apt-get install haproxy  

Page 4: Funcionamiento con my sql

Una vez instalado vamos a configurarlo para que balance la carga de MySQL. Para ello abrimos con un editor el fichero /etc/haproxy/haproxy.cfg que se ha creado con contenido por defecto en la instalación del paquete.Esta es una posible configuración para nuestro caso:view plainprint?global      maxconn 4096      user haproxy      group haproxy      daemon    defaults      mode    http      option  tcplog      option  dontlognull      retries 3      option redispatch      contimeout  5000      clitimeout  50000  

Page 5: Funcionamiento con my sql

    srvtimeout  50000    listen  mysql-cluster 0.0.0.0:3307      mode tcp      balance roundrobin        server nodo1 192.168.1.15:3306 check      server nodo2 192.168.1.16:3306 check  

server nodo3 192.168.1.14:3306 check 

Page 6: Funcionamiento con my sql

La parte importante de la configuración se encuentra en la sección [listen] donde estamos indicando que el proxy escuche por el puerto 3307, y que las peticiones que le lleguen por ese puerto las reparta en base a un algoritmo round robin entre los servidores que se especifican. En caso de tener unos servidores más potentes que otros, podríamos definir un peso para cada uno de forma que los más potentes tengan más posibilidades de recibir más peticiones. Para hacer esto añadimos a la definición de los servers el peso que le damos de esta forma:view plainprint?listen  mysql-cluster 0.0.0.0:3307  mode tcp  balance roundrobin    server nodo1 192.168.1.15:3306 check weight 10  server nodo2 192.168.1.16:3306 check weight 50  server nodo3 192.168.1.14:3306 check weight 40  

Page 7: Funcionamiento con my sql

Reiniciamos el proxy indicándole donde está el fichero de configuración:view plainprint?sudo haproxy -f /etc/haproxy/haproxy.cfg  Y ya tenemos el proxy listo para empezar a recibir peticiones.

4. Probamos el resultadoLo primero que tenemos que hacer para probar el resultado es crear y dar permisos de conexión remota al mismo usuario en los distintos nodos SQL que están referenciados en la configuración del proxy.Estos pasos los repetimos por cada uno de los nodos SQL. Primero nos logamos como root:view plainprint?mysql -u root -ppassword  Creamos el usuario y le damos los permisos para conectar remotamente:

view plainprint?GRANT ALL PRIVILEGES ON *.* TO 'prueba'@'%' IDENTIFIED BY 'prueba' WITH GRANT OPTION;  FLUSH PRIVILEGES;  

Abrimos el archivo de configuración /etc/mysql/my.cnf y ponemos a 0.0.0.0 el valor de la variable bind-address y el valor de la variable max-connections a 1000

Page 8: Funcionamiento con my sql

Reiniciamos todos los nodos y comprobamos que el cluster sigue funcionando.

Para probar el balanceo de la carga basta con situarnos en un nodo SQL y tratar de ejecutar una conexión remota a la dirección y puerto del proxy con la siguiente sentencia:view plainprint?mysql -u prueba -pprueba -h ip_del_proxy --port=3307 Tenemos que ver que el servidor conecta y permite la ejecución de consultas. Recordad que en la máquina del proxy no está instalado MySQL, así que nuestro proxy está funcionando. Otra forma de asegurarnos es comprobando en cada nodo SQL con el comando "SHOW PROCESSLIST" si el usuario "prueba" está conectado a él.

Page 9: Funcionamiento con my sql

FUNCIONAMIENTO CON VLS

Linux Virtual Server (LVS) es una solución para gestionar balance de carga en sistemas Linux. Es un proyecto de código abierto iniciado por Wensong Zhang en mayo de 1998. El objetivo es desarrollar un servidor Linux de alto rendimiento que proporcione buena escalabilidad, confiabilidad y robustez usando tecnología clustering.Actualmente, la labor principal del proyecto LVS es desarrollar un sistema IP avanzado de balanceo de carga por software (IPVS), balanceo de carga por software a nivel de aplicación y componentes para la gestión de clústers.IPVS: sistema IP avanzado de balanceo de carga por software implementado en el propio núcleo Linux y ya incluido en las versiones 2.4 y 2.6.KTCPVS: implementa balanceo de carga a nivel de aplicación en el propio núcleo Linux. Actualmente está en desarrollo.Los usuarios pueden usar las soluciones LVS para construir un sistema altamente escalable, donde se garantiza una alta disponibilidad de los servicios de red, como son servicios web, correo electrónico o VoIP.

Page 10: Funcionamiento con my sql

FUNCIONAMIENTO CON RED HAD PIRHANA

Piranha es un paquete de software, que esta incluida en la distribución Linux RedHat. Esta compuesto por un servidor LVS (Linux Virtual Server) y un gestor del mismo, que permite administrar los servicios de la Web con un navegador a través de una interfaz gráfica.

Page 11: Funcionamiento con my sql

LVS permite crear un clúster de balanceo de carga, en el cual hay un nodo que se encarga de gestionar y repartir las conexiones (nodo master LVS) entre todos los nodos esclavos del clúster. El servicio de datos debe residir en todos los nodos esclavos. LVS puede soportar sin problemas hasta 200 nodos esclavos.

Page 12: Funcionamiento con my sql

Pulse._ Es el controlador del proceso este inicia todos los demonio y permite editar los parámetros de configuración. Lvs._ Demonio que corre en LVS routers lee la configuración y llama a ipvsadm. Ipvsadm ._Construye y mantienen las tablas IPVS routing. Nanny._ Monitorea el demonio que corre en LVS router.

Todos estos programas utilizan el mismo fichero de configuración, que esta ubicado en /etc/lvs.cf.INSTALACIÓN DEL PAQUETE PIRAHNA Instalación del paquete de dependencia ipvsadm.rpm [root@localhost root]# rpm -ivh ipvsadm-1.21-4.i386.rpm Preparing... ### [100%] 1:ipvsadm #################### [100%] Instalación del paquete piranha.rpm [root@localhost root]# rpm -ivh piranha-0.7.6-1.i386.rpm Preparing... ########################################### [100%] 1:piranha ########################################### [100%]

Page 13: Funcionamiento con my sql

Para buscar donde esta el servicio de piranha: rpm -ql piranha [root@ localhost root]# rpm -ql piranha /etc/rc.d/init.d/piranha-gui   Levantar el servicio de piranha [root@ localhost root ]# service piranha-gui start Starting piranha-gui: [ OK ]   Para buscar puertos. El piranha por defecto se levanta en el puerto 3636. [root@ localhost root ]# netstat -nat Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3636 0.0.0.0:* LISTEN

Levantar el servicio FTP [root@ localhost root]# service vsftpd start Iniciando vsftpd para vsftpd: [ OK ] Guardar archivos en el servidor FTP [root@localhost root]# cd /var/ftp/pub [root@localhost pub]# ls 01 Suelta mi mano.mp3 drivs.zip piranha-0.7.6-1.i386.rpm avseq01.dat GAVirusParteII.mpg prueba Configuración Piranha mpegav Documentación nfs-utils-1.0.6-31EL.i386.rpm