You are on page 1of 12

PROYECTO

INTEGRADO

ALMACENAMIENTO MASIVO DE ALTA
DISPONIBILIDAD (CLUSTER)

Jose Antonio García Rodríguez
Índice
1.Introducción.......................................................................................................................................3
2.Objetivos............................................................................................................................................5
3.GlusterFS...........................................................................................................................................6
3.1.Introducción...............................................................................................................................6
3.2.Instalación..................................................................................................................................6
3.3.Configuración............................................................................................................................7
4.Conclusión.......................................................................................................................................11
5.Bibliografía......................................................................................................................................12

Almacenamiento masivo de alta disponibilidad Página 2 de 12
1. Introducción

El proyecto consiste en montar un almacenamiento masivo de alta disponibilidad, con el cual
podremos compartir archivos automáticamente. Contiene un servidor y un cliente.
Con este software puede ser mas útil para los protocolos ftp, nfs o para samba.
GlusterFS por si solo puede resurtarnos útil pero si usamos para ftp nos puede servir de mucha
ayuda, o también con nfs.

La estructura es la siguiente:
Tendremos una serie de carpetas compartidas entre los equipos (las eligiremos durante la
instalación) al subir archivos a estas carpetas automáticamente se copian a los otros equipos, así que
si perdemos la información de un equipo la podremos recuperar fácilmente, este es un pequeño
gráfico de explicación:

Tipos de almacenamiento:
● Raid:

○ Hace referencia a un sistema de almacenamiento que usa múltiples discos duros entre los
que distribuye o replica los datos. Dependiendo de su configuración los beneficios de un
RAID respecto a un único disco son uno o varios de los siguientes: mayor integridad,
mayor tolerancia a fallos, mayor rendimiento y mayor capacidad. En sus
implementaciones originales, su ventaja clave era la habilidad de combinar varios
dispositivos de bajo coste y tecnología más antigua en un conjunto que ofrecía mayor
capacidad, fiabilidad, velocidad o una combinación de éstas que un solo dispositivo de
última generación y coste más alto.
○ Tipos de raid:
Standalone.

Almacenamiento masivo de alta disponibilidad Página 3 de 12
Cluster
Hot swap
Raid 1
Raid 5
Raid 0+1
Raid 0
● Nas:
Es el nombre dado a una tecnología de almacenamiento dedicada a compartir la capacidad de
almacenamiento de un computador (Servidor) con ordenadores personales o servidores clientes a
través de una red (normalmente TCP/IP), haciendo uso de un Sistema Operativo optimizado para
dar acceso con los protocolos CIFS, NFS, FTP o TFTP.
Generalmente, los sistemas NAS son dispositivos de almacenamiento específicos a los que se
accede desde los equipos a través de protocolos de red (normalmente TCP/IP). También se podría
considerar que un servidor que comparte sus unidades por red es un sistema NAS, pero la definición
suele aplicarse a sistemas específicos.

● San:
Es una red concebida para conectar servidores, matrices de discos y librerías de soporte.
Principalmente, está basada en tecnología fibre chanel y más recientemente en iSCSI. Su función
es la de conectar de manera rápida, segura y fiable los distintos elementos que la conforman.

Yo voy a utilizar el sistema operativo Ubuntu es una distribución GNU/Linux. Es una de las más
importantes distribuciones de GNU/Linux a nivel mundial. Se basa en Debian GNU/Linux y
concentra su objetivo en la facilidad y libertad de uso, la fluida instalación y los lanzamientos
regulares.

He elegido Ubuntu porque es libre y gratuito a diferencia de windows, y la herramienta GlusterFS
también es libre y gratuita.

• Ventajas
◦ No hay riesgo de virus
◦ Al no haber virus no necesitamos antivirus que restan recursos al sistemas
◦ Es libre
• Desventajas
◦ Mas incomodidad para trabajar al utilizar el terminal

Almacenamiento masivo de alta disponibilidad Página 4 de 12
2. Objetivos
El objetivo del proyecto es tener varios equipos conectados a otro que actuá como servidor, estos
equipos tienen unas carpetas las cuales están compartidas y si subimos archivos a estas carpetas
automáticamente se copian a los otros equipos, así si la información de un equipo se pierde la
podremos recuperar fácilmente.

Almacenamiento masivo de alta disponibilidad Página 5 de 12
3. GlusterFS

3.1. Introducción
Open source es el término con el que se conoce al software distribuido y desarrollado libremente.
Fue utilizado por primera vez en 1998 por algunos usuarios de la comunidad del software libre,
tratando de usarlo como reemplazo al ambiguo nombre original en inglés del software libre (free
software). No obstante, el término continúa siendo ambivalente, puesto que se usa en la actualidad
por parte de programadores que no ofrecen software libre pero, en cambio, sí ofrecen las fuentes o
código de los programas para su revisión o modificación previamente autorizada por parte de sus
pares académicos.
● Ventajas: la libre distribución combate la piratería y el código fuente abierto permite que en
muy poco tiempo infinidad de programadores encuentran y corrijan errores mejorando el
software.
● Desventajas: Tiene poco soporte y solidez
Nosotros para este proyecto utilizaremos GlusterFs es una poderosa red o grupo de archivos.
GlusterFS viene con dos componentes, un servidor y un cliente. El almacenamiento puede ser
escalado más allá de petabytes, si la demanda aumenta.

3.2. Instalación
Ahora vamos a describir cada uno de los pasos que necesitamos para la instalación de GlusterFS.
Los pasos que hay que seguir para la instalación son los mismos en el cliente como en el servidor,
lo que se diferencia una de otros es en la configuración de los archivos los cuales explicare más
adelande.
Este comando lo utilizamos para que no haya problemas de permisos.
s udo s u

Con esta línea instalaríamos el software.

a p t-ge t i n s t a l l s s h f s b u i l d-e s s e n t i a l f lex bi s o n b y a c c w g e t

Ahora vamos a instalar unos paquetes para el correcto funcionamiento del software, lo vamos a
instalar desde el directorio /root, para ello introducimos:

cd /roo t/

E introducimos la linea para que empiece la descarga que es la siguiente:

w g e t h t t p://eu r o pe.gl u s t e r.o r g/gl u s t e r f s/f u s e/f u s e-2 . 7 . 4 g l f s 1 1 . t a r.gz

Una vez descargados tendremos que descomprimirlos usando:

t a r -zx v f f u s e-2 . 7 . 4 g l f s 1 1 . t a r. gz

Almacenamiento masivo de alta disponibilidad Página 6 de 12
Nuestro siguiente paso sería compilarlo para ello necesitamos situarnos en el directorio donde ha
sido instalado:

cd /roo t/f u s e-2 . 7 . 4 g l f s 1 1

Una vez dentro vamos a compilarlo e instalarlo usando:

./co n f ig u r e
m a k e & & m a k e i n s t a ll

Ya instalados todos los paquetes y los softwares necesarios, instalaremos GlusterFS, usando el
método anterior, nos situamos en el directorio /root/ introducimos la línea de descarga,
descomprimimos los ficheros y nos situamos en el directorio del fichero descomprimido:

cd /roo t/
w g e t h t t p://ft p. gl u s t e r.co m/p u b/gl u s t e r/gl u s t e r f s/ 2. 0/L AT E S T/gl u s t e r f s-2 . 0 . 0 r c 2 . t a r. gz
tar -zx v f gl u s t e r f s-2 . 0 . 0 r c 2 . t a r. gz
cd /roo t/gl u s t e r f s-2 . 0 . 0 r c 2/

De nuevo tendremos que compilarlo e instalarlo como hicimos anteriormente.

./co n f ig u r e
m a k e & & m a k e i n s t a ll

Por algun motivo algunas librerías entran en el directorio incorrecto, necesitaremos copiarlas en
otro directorio, para ello usamos lo siguiente:

c p /us r/loc a l/lib/ * -R /us r/lib/

Ya que tenemos todos lo que necesitamos descargado e instalado, y con las librerias en su sitio
vamos con la configuración del servidor, pero antes vamos a crear algunas directorios que nos seran
de utilidad:
m kdir /m n t/gl u s t e r f s
m kdir /da t a/
m kdir /da t a/expo r t
m kdir /da t a/expo r t-n s
m k d i r /etc/gl u s t e r f s/

3.3. Configuración
Los archivos de configuración que modifiquemos o creemos deberán ser modificados de igual
manera tanto en el servidor como en el cliente.

El primer paso de la configuración sería crear el fichero /etc/glusterfs/glusterfs-server.vol este
fichero es el que utilizara el servidor mas adelante configuraremos el cliente, para ello usamos:

Almacenamiento masivo de alta disponibilidad Página 7 de 12
ge di t /etc/gl u s t e r f s/gl u s t e r f s-s e r ve r. vol

Y en su interior escribiremos lo siguiente. Primero le vamos a indicar que utilice como directorio
temporal /data/export y a esto lo llamo volume posix, también configuraremos el servidor para que
puedan acceder a este volumen cualquier IP, esto lo hacemos con el volume server, el volume locks
elimina los bloqueos al estar los dos equipos utilizando o modificando el mismo archivo.

# file: /etc/glusterfs/glusterfs-server.vol
volume posix
type storage/posix
option directory /data/export
end-volume

volume locks
type features/locks
subvolumes posix
end-volume

volume brick
type performance/io-threads
option thread-count 8
subvolumes locks
end-volume

volume posix-ns
type storage/posix
option directory /data/export-ns
end-volume

volume locks-ns
type features/locks
subvolumes posix-ns
end-volume

volume brick-ns
type performance/io-threads
option thread-count 8
subvolumes locks-ns
end-volume

volume server
type protocol/server
option transport-type tcp
option auth.addr.brick.allow *
option auth.addr.brick-ns.allow *
subvolumes brick brick-ns
end-volume

Con esto lo que hacemos es señalar los directorio que van a ser compartidos entre los servidores,
cerramos y guardamos. Ahora arrancaremos el servidor usando:

gl u s t e r f s d -f /etc/gl u s t e r f s/gl u s t e r f s-s e r ve r. vo l

Lo siguiente sería asignar una IP a cada uno de los equipos, yo estoy trabajando con 2 equipos
cuyas IP son las siguientes:
● Servidor1: 172.16.2.31
● Servidor2: 172.16.2.27
Ahora tendremos que crear un fichero nuevo llamado /etc/glusterfs/glusterfs-client.vol para la

Almacenamiento masivo de alta disponibilidad Página 8 de 12
configuración del cliente en el introduciremos lo siguiente. Para que se conecte al propio volumen
local (172.16.2.31) y al volumen remoto (172.16.2.27) utilizaremos los volúmenes brick1 y brick2
que formara un nuevo volumen llamado afr1:

### Add client feature and attach to remote subvolume of server1
volume brick1
type protocol/client
option transport-type tcp/client
option remote-host 172.16.2.31 # IP address of the remote brick
option remote-subvolume brick # name of the remote volume
end-volume

### Add client feature and attach to remote subvolume of server2
volume brick2
type protocol/client
option transport-type tcp/client
option remote-host 172.16.2.27 # IP address of the remote brick
option remote-subvolume brick # name of the remote volume
end-volume

### The file index on server1
volume brick1-ns
type protocol/client
option transport-type tcp/client
option remote-host 1 172.16.2.31 # IP address of the remote brick
option remote-subvolume brick-ns # name of the remote volume
end-volume

### The file index on server2
volume brick2-ns
type protocol/client
option transport-type tcp/client
option remote-host 172.16.2.27 # IP address of the remote brick
option remote-subvolume brick-ns # name of the remote volume
end-volume

#The replicated volume with data
volume afr1
type cluster/afr
subvolumes brick1 brick2
end-volume

#The replicated volume with indexes
volume afr-ns
type cluster/afr
subvolumes brick1-ns brick2-ns
end-volume

#The unification of all afr volumes (used for > 2 servers)
volume unify
type cluster/unify
option scheduler rr # round robin
option namespace afr-ns
subvolumes afr1
end-volume

Con este fichero vemos los archivos que están compartidos y hace una replica entre todos los

Almacenamiento masivo de alta disponibilidad Página 9 de 12
servidores inscritos aquí.
Este fichero sería para el servidor1, para el servidor2 tendríamos que cambiar el orden de las IP y
poner con anterioridad la IP del servidor que estamos usando en ese momento. Ahora montaremos
GlusterFS usando:

gl u s t e r f s -f /etc/gl u s t e r f s/gl u s t e r f s-clie n t. vol /m n t/gl u s t e r f s

Una vez terminada la configuración vamos a subir algún archivo al servidor para realmente
comprobar como se guarda a la vez también en el cliente. Nosotros vamos a subir una imagen que
tenía guardada en el escritorio y la guardamos en el directorio /mnt/glusterfs:
s u d o c p /ho m e/t a r d e/ E s c r i t o r io/2. p n g /m n t/gl u s t e r f s/

Automáticamente ha sido copiado esta imagen al equipo (cliente), los datos permanecerán en los
dos equipos hasta que no sean borrados manualmente por nosotros.

Almacenamiento masivo de alta disponibilidad Página 10 de 12
4. Conclusión
Una vez realizado el proyecto y visto su funcionamiento creo que es de gran utilidad, utilizar este
sistema de almacenamiento, ya que nos puede ayudar mucho si trabajamos con muchos equipos y
con información importante. Para mi opinión si que merece la pena implementarlo, porque no es
muy complicado su instalación y puede librarnos de algunos apuros.
Y también recordamos que nos puede servir de mucha ayuda utilizarlo para ftp, nfs y samba.

Almacenamiento masivo de alta disponibilidad Página 11 de 12
5. Bibliografía
● http://www.howtoforge.com/high-availability-storage-cluster-with-glusterfs-on-ubuntu
● http://www.howtoforge.com/high-availability-storage-cluster-with-glusterfs-on-ubuntu-p2
● http://www.utpl.edu.ec/blog/sistemasoperativos/2008/07/24/implementacion-de-glusterfs-2/
● http://redes-privadas-virtuales.blogspot.com/2009/01/sistema-de-archivos-en-red-con.html
● http://www.gluster.org/docs/index.php/GlusterFS_Translators_v1.3

Almacenamiento masivo de alta disponibilidad Página 12 de 12