Configuración de GlusterFS

  • 0

Configuración de GlusterFS

A continuación vamos a trabajar con GlusterFS, para ello lo primero que vamos a hacer es crear 3 maquinas o usar alguna que tengamos con el sistema operativo Debian, es este caso lo que vamos a hacer es usa OpenStack para las maquinas virtuales:

* 1 Servidor debian al que llamaremos gluster_server.
* 2 Clientes debian al que llamaremos stark y targaryen.

1-En primer lugar lo que debemos de hacer es configurar el “GlusterFS” y crearemos un “brick” sobre un disco adicional que deberá tener la máquina servidor.

Creamos una partición antes que nada:

root@gluster-server:/home/debian# fdisk /dev/vdb

Una vez creada instalamos el paquete “xfsprogs” para poder formatear el disco con el sistema de fichero “xfs”:

root@gluster-server:/home/debian# apt-get install xfsprogs

root@gluster-server:/home/debian# mkfs.xfs /dev/vdb1 
meta-data=/dev/vdb1              isize=256    agcount=4, agsize=655296 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=2621184, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
root@gluster-server:/home/debian# 

Luego lo que vamos a hacer es instalar la maquina instalar el paquete “glusterfs-server” en la misma maquina servidor:

root@gluster-server:/home/debian# apt-get install glusterfs-server

Después debemos de añadir al fichero “/etc/hosts” las direcciones de red y nombre de las maquinas con las que estamos trabajando:

127.0.0.1       localhost
10.0.0.48       gluster-server
10.0.0.32       targaryen
10.0.0.30       stark

2- El siguiente paso que debemos de hacer es montar la partición, para ello creamos una carpeta por ejemplo en el direcotorio “/mnt” y montamos el disco que hemos formateado anteriormente:

root@gluster-server:/home/debian# mkdir /mnt/glusterfs
root@gluster-server:/home/debian# mount /dev/vdb1 /mnt/glusterfs/
root@gluster-server:/home/debian# 

Una vez montado creamos el gluster y comprobamos que se ha creado correctamente:

root@gluster-server:/home/debian# gluster volume create glusterfs gluster-server:/mnt/glusterfs/
Creation of volume glusterfs has been successful. Please start the volume to access data.
root@gluster-server:/home/debian# gluster volume info

Volume Name: glusterfs
Type: Distribute
Status: Created
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: gluster-server:/mnt/glusterfs
root@gluster-server:/home/debian# 

Una vez hecho esto toca iniciar el volumen:

root@gluster-server:/home/debian# gluster volume start glusterfs
Starting volume glusterfs has been successful
root@gluster-server:/home/debian#

3- Ahora debemos de irnos a las maquinas clientes y configurarlas, en primer lugar lo que vamos a hacer es instalar el paquete “glusterfs-client”:

root@targaryen:/home/debian# apt-get install glusterfs-client
-----------------------------------------------------------------
root@stark:/home/debian# apt-get install glusterfs-client

Una vez instalado, debemos de añadir en los fichero “/etc/hosts” al servidor:

10.0.0.48       gluster-server

Luego lo montamos por ejemplo en la carpeta “/mnt”:

root@targaryen:/home/debian# mount.glusterfs gluster-server:/glusterfs /mnt/
root@targaryen:/home/debian#

-------------------------------------------------------------------------------

root@stark:/home/debian# mount.glusterfs gluster-server:/glusterfs /mnt/
root@stark:/home/debian# 

Para asegurarnos de que se ha montado correctamente hacemos un “df -h”:

root@targaryen:/home/debian# df -h
Filesystem                 Size  Used Avail Use% Mounted on
rootfs                    1007M  808M  148M  85% /
udev                        10M     0   10M   0% /dev
tmpfs                       50M  164K   50M   1% /run
/dev/vda1                 1007M  808M  148M  85% /
tmpfs                      5.0M     0  5.0M   0% /run/lock
tmpfs                      100M     0  100M   0% /run/shm
gluster-server:/glusterfs   10G   33M   10G   1% /mnt
root@targaryen:/home/debian# 

-------------------------------------------------------------

root@stark:/home/debian# df -h
Filesystem                 Size  Used Avail Use% Mounted on
rootfs                    1007M  780M  177M  82% /
udev                        10M     0   10M   0% /dev
tmpfs                       50M  156K   50M   1% /run
/dev/vda1                 1007M  780M  177M  82% /
tmpfs                      5.0M     0  5.0M   0% /run/lock
tmpfs                      100M     0  100M   0% /run/shm
10.0.0.32:/home/nfsserver 1007M  808M  148M  85% /home/manuel
gluster-server:/glusterfs   10G   33M   10G   1% /mnt
root@stark:/home/debian#

4- Posteriormente vamos a crear un archivo y vamos a escribir en él y vemos como se actualiza en el otro cliente inmediatamente:

Captura de pantalla de 2015-01-21 20:24:42

Luego vamos a comprobar que pasa si escribimos en los dos clientes a la vez y habiendo guardado en uno, guardamos en el otro:

Captura de pantalla de 2015-01-21 20:29:09

5-Ahora lo que queremos hacer es instalar un Stack de WordPress en la máquina cliente que llamamos Stark, debemos de tener 1G de Ram en esta maquina al menos para que pueda funcionar. En primer lugar nos descargamos el stack con “wget”:

root@stark:/mnt# wget https://bitnami.com/redirect/to/47565/bitnami-wordpress-4.1-0-linux-x64-installer.run

Y le damos permisos de ejecución:

root@stark:/mnt# chmod +x bitnami-wordpress-4.1-0-linux-x64-installer.run 
root@stark:/mnt# 

Una vez dado los permisos pertinente el siguiente paso es ejecutar el instalado y seguir los paso que nos van saliendo a medida que avanza la instalación:

root@stark:/mnt# ./bitnami-wordpress-4.1-0-linux-x64-installer.run

Una vez haya terminado la instalación nos preguntara si queremos lanzar “Bitnami WordPress Stack”, le decimos que si:


----------------------------------------------------------------------------
Por favor espere mientras se instala Bitnami WordPress Stack en su ordenador.

 Instalando
 0% ______________ 50% ______________ 100%
 #########################################

----------------------------------------------------------------------------
El programa terminó la instalación de Bitnami WordPress Stack en su ordenador.

Lanzar Bitnami WordPress Stack [Y/n]: y

6- Por ultimo vamos a instalar en el servidor la base de datos MySQL, pero antes guardaremos la base de datos del wordpress de Bitname que acabamos de crear. Para eso nos vamos a la carpt “/mnt/wordpress/mysql/bin” y ejecutamos el siguiente comando:

./mysql -u root -p

Nos pedirá una contraseña que es la que pusimos durante la instalación.

Una vez dentro hacemos un listado para ver las bases de datos:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bitnami_wordpress  |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.03 sec)

mysql> 

La base de datos que debemos de exportar es “bitnami_wordpress” que lo hacemos de manera sencilla, nos salimos de mysql y ejecutamos el siguiente comando y vemos que esta en dicha carpeta guardada:

root@stark:/mnt/wordpress/mysql/bin# ./mysqldump -u root -p bitnami_wordpress > bitnami_wordpress.sql
Enter password: 
root@stark:/mnt/wordpress/mysql/bin# ls |grep *.sql
bitnami_wordpress.sql
root@stark:/mnt/wordpress/mysql/bin# 

Ahora nos vamos al servidor e isntalamos el servidro MySQL y editamos el fichero “/etc/mysql/my.cnf” para que escuche a las demás maquinas también:

root@gluster-server:/home/debian# apt-get install mysql-server
---------------------------------------------------------------
root@gluster-server:/home/debian# nano /etc/mysql/my.cnf
---------------------------------------------------------------
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0
#

Luego reiniciamos MySQL:

root@gluster-server:/home/debian# service mysql restart
[ ok ] Stopping MySQL database server: mysqld.
[ ok ] Starting MySQL database server: mysqld ..
[info] Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
root@gluster-server:/home/debian# 

Luego creamos el usuario y base de datos “wordpress” y le damos todos los permisos sobre esa base de datos al usuario:

root@gluster-server:/home/debian# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 37
Server version: 5.5.40-0+wheezy1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)

mysql> create user wordpress;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'%' IDENTIFIED BY 'wordpress';
Query OK, 0 rows affected (0.00 sec)

mysql>

Luego navegamos hasta donde tenemos las base de datos exportada que ere en la carpta “wordpress” y la importamos:

root@gluster-server:/home/debian# cd /mnt/glusterfs/wordpress/mysql/bin/
root@gluster-server:/mnt/glusterfs/wordpress/mysql/bin# ls |grep *.sql
bitnami_wordpress.sql
root@gluster-server:/mnt/glusterfs/wordpress/mysql/bin# mysql -u wordpress -p wordpress < bitnami_wordpress.sql
Enter password: 
root@gluster-server:/mnt/glusterfs/wordpress/mysql/bin# 

El siguiente paso que debemos de dar es cambiar al configuración del fichero “wp-config-php” que esta en “/mnt/glusterfs/wordpress/apps/wordpress/htdocs/”:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpress');

/** MySQL database password */
define('DB_PASSWORD', 'wordpress');

/** MySQL hostname */
define('DB_HOST', '10.0.0.48:3306');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

Para finalizar inicializamos apache:

root@gluster-server:/mnt/glusterfs/wordpress# ./ctlscript.sh start apache
root@gluster-server:/mnt/glusterfs/wordpress# 

Y comprobamos que todo se ejecuta escribiendo en el navegador alguna de las IP’s de las maquinas clientes y la carpeta en la que está alojada:

Captura de pantalla de 2015-01-21 22:52:10