LinuxParty

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Este tutorial se muestra cómo combinar cuatro servidores de almacenamiento únicos (funcionando en CentOS) como servidor de almacenamiento (almacenamiento distribuido) con GlusterFS. El sistema cliente (CentOS 6.3) serán capaz de acceder al almacenamiento como si fuese un sistema de archivos local. GlusterFS es un sistema de archivos en Cluster capaz de escalar a varios peta bytes. Agrega varios bricks de almacenamiento sobre Infiniband RDMA o TCP/IP de interconexión en un sistema de archivos en paralelo. Los bricks de almacenamiento se pueden hacer con cualquier hardware como los servidores de x86_64 con SATA-II RAID y HBA Infiniband.

Tenga en cuenta que este tipo de almacenamiento (almacenamiento distribuido) no proporciona las características de alta disponibilidad, como sería el caso con almacenamiento replicado.

1 Nota preliminar

En este tutorial usaremos 5 sistemas, cuatro servidores y un cliente:

  • server1.example.com: dirección IP 192.168.0.100 (servidor)
  • server2.example.com: dirección IP 192.168.0.101 (servidor)
  • server3.example.com: dirección IP 192.168.0.102 (servidor)
  • server4.example.com: dirección de IP 192.168.0.103 (servidor)
  • client1.example.com: dirección de IP 192.168.0.104 (cliente)

Los cinco sistemas deben ser capaces de resolver los nombres de los hosts de los otros sistemas. Si esto no puede hacerse a través de DNS, debería editar el archivo: /etc/hosts para que se vean como sigue en todos los sistemas, los cinco:

vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100   server1.example.com     server1
192.168.0.101   server2.example.com     server2
192.168.0.102   server3.example.com     server3
192.168.0.103   server4.example.com     server4
192.168.0.104   client1.example.com     client1

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

(También es posible utilizar direcciones IP en lugar de nombres de host en la siguiente configuración. Si usted prefiere usar las direcciones IP, no tiene que preocuparse por si se pueden resolver los nombres de host o no.)

2 Habilitar repositorios adicionales

Primero importamos las claves GPG para paquetes de software:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Luego habilitamos el repositorio de EPEL6 en nuestros sistemas CentOS:

rpm --import https://fedoraproject.org/static/0608B895.txt
cd /tmp
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm -ivh epel-release-6-7.noarch.rpm
yum install yum-priorities

Editar /etc/yum.repos.d/epel.repo...

vi /etc/yum.repos.d/epel.repo

... y añadir la línea priority = 10 a la sección [epel] :

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[...]

 

3 Puesta en funcionamiento de los servidores de GlusterFS

 

GlusterFS está disponible como un paquete para EPEL, por lo tanto podemos instalarla como sigue:

yum install glusterfs-server

Crear los vínculos de la puesta en marcha del sistema para el daemon Gluster e iniciarlo:

chkconfig --levels 235 glusterd on
/etc/init.d/glusterd start

El comando

glusterfsd --version

debe mostrar ahora la versión de GlusterFS que has instalado (3.2.7 en este caso):

[root@server1 ~]# glusterfsd --version
glusterfs 3.2.7 built on Jun 11 2012 13:22:28
Repository revision: git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2011 Gluster Inc. <http://www.gluster.com>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
[root@server1 ~]#

Si utiliza un firewall, se debe asegurar que los puertos TCP 111, 24007, 24008, 24009 - (24009 + número de bricks en todos los volúmenes) están abiertos en server1.example.com, server2.example.com, server3.example.com y server4.example.com.

Lo próximo que debemos hacer es añadir server2.example.com, server3.example.com y server4.example.com a la piscina (pool) de almacenamiento de confianza (tenga en cuenta que estoy ejecutando los comandos de configuración de GlusterFS en server1.example.com, pero también puede ejecutarlo server2.example.com o server3.example.com o server4.example.com debido a que la configuración es replicante entre los nodos de GlusterFS - sólo Asegúrese de utilizar los nombres correctos o direcciones IP):

server1.example.com:

En server1.example.com, ejecutar

 gluster peer probe server2.example.com
gluster peer probe server3.example.com
gluster peer probe server4.example.com
La salida será como sigue:
[root@server1 ~]# gluster peer probe server2.example.com
Probe successful
[root@server1 ~]#

El estado de la piscina de almacenamiento de confianza ahora debe ser similar a esto:

gluster peer status
[root@server1 ~]# gluster peer status
Number of Peers: 3
Hostname: server2.example.com
Uuid: da79c994-eaf1-4c1c-a136-f8b273fb0c98
State: Peer in Cluster (Connected)
Hostname: server3.example.com
Uuid: 3e79bd9f-a4d5-4373-88e1-40f12861dcdd
State: Peer in Cluster (Connected)
Hostname: server4.example.com
Uuid: c6215943-00f3-492f-9b69-3aa534c1d8f3
State: Peer in Cluster (Connected)
[root@server1 ~]#

A continuación creamos la cuota distribuida denominada testvol en server1.example.com, server2.example.com, server3.example.comy server4.example.com en el directorio /data (esto se creará si no existe):

gluster volume create testvol transport tcp server1.example.com:/data server2.example.com:/data server3.example.com:/data server4.example.com:/data
[root@server1 ~] volumen de # gluster crear testvol transporte tcp server1.example.com:/data server2.example.com:/data server3.example.com:/data server4.example.com:/data
Creación de volumen testvol ha tenido éxito. Por favor inicie el volumen para acceder a datos.
[root@server1 ~] #

Iniciar el volumen:

gluster volume start testvol

Es posible que el comando anterior le diga que la acción no tuvo éxito:

[root@server1 ~]# gluster volume start testvol
Starting volume testvol has been unsuccessful
[root@server1 ~]#

En este caso debe comprobar la salida de...

Server1.example.com/server2.example.com/server3.example.com/Server4.example.com:

netstat -tap | grep glusterfsd

en ambos servidores.

Si consigues una salida como esta...

[root@server1 ~]# netstat -tap | grep glusterfsd
tcp        0      0 *:24009                     *:*                         LISTEN      1365/glusterfsd
tcp        0      0 localhost:1023              localhost:24007             ESTABLISHED 1365/glusterfsd
tcp        0      0 server1.example.com:24009   server1.example.com:1023    ESTABLISHED 1365/glusterfsd
[root@server1 ~]#

... Si todo ha ido bien, no debe mostrarse ninguna salida...

[root@server2 ~]# netstat -tap | grep glusterfsd
[root@server2 ~]#
[root@server3 ~]# netstat -tap | grep glusterfsd
[root@server3 ~]#
[root@server4 ~]# netstat -tap | grep glusterfsd
[root@server4 ~]#

... reinicie el daemon de GlusterFS en el servidor correspondiente (server2.example.com, server3.example.comy server4.example.com en este caso):

/etc/init.d/glusterfsd restart

Compruebe la salida de...

netstat -tap | grep glusterfsd

... otra vez en estos servidores - ahora debe verse así:

[root@server2 ~]# netstat -tap | grep glusterfsd
tcp        0      0 *:24009                 *:*                     LISTEN      1152/glusterfsd
tcp        0      0 localhost.localdom:1018 localhost.localdo:24007 ESTABLISHED 1152/glusterfsd
[root@server2 ~]#

[root@server3 ~]# netstat -tap | grep glusterfsd
tcp        0      0 *:24009                 *:*                     LISTEN      1311/glusterfsd
tcp        0      0 localhost.localdom:1018 localhost.localdo:24007 ESTABLISHED 1311/glusterfsd
[root@server3 ~]#

[root@server4 ~]# netstat -tap | grep glusterfsd
tcp        0      0 *:24009                 *:*                     LISTEN      1297/glusterfsd
tcp        0      0 localhost.localdom:1019 localhost.localdo:24007 ESTABLISHED 1297/glusterfsd
[root@server4 ~]#

Ahora vuelve a server1.example.com:

Server1.example.com:

Puede comprobar el estado del volumen con el comando

gluster volume info
[root@server1 ~]# gluster volume info
Volume Name: testvol
Type: Distribute
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Brick2: server2.example.com:/data
Brick3: server3.example.com:/data
Brick4: server4.example.com:/data
[root@server1 ~]#

De forma predeterminada, todos los clientes pueden conectarse al volumen. Si desea conceder acceso a client1.example.com (= 192.168.0.104), ejecute:

gluster volume set testvol auth.allow 192.168.0.104

Tenga en cuenta que es posible utilizar comodines para las direcciones IP (como 192.168.*) y así especificar varias direcciones IP separadas por comas (por ejemplo 192.168.0.104,192.168.0.105).

La información de volumen debe mostrar ahora el estado actualizado:

gluster volume info
[root@server1 ~]# gluster volume info
Volume Name: testvol
Type: Distribute
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Brick2: server2.example.com:/data
Brick3: server3.example.com:/data
Brick4: server4.example.com:/data
Options Reconfigured:
auth.allow: 192.168.0.104
[root@server1 ~]#

[ Siguiente: Almacenamiento distribuido a través de 4 nodos con Gluster FS en Linux CentOS 2]


 

Pin It


Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política