LinuxParty
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]
-
CloudComputing
- OwnCloud 5 Beta, el clon libre de Dropbox.
- Los 5 mejores software y aplicaciones para Linux con cifrado de datos
- El creador de aplicaciones sin código Honeycode de Amazon, ya no existe
- Microsoft sugiere que las empresas compren menos PC
- Cómo instalar CloudPanel en Debian 10 Buster
- Las 7 mejores aplicaciones para instalar en Nextcloud
- Cómo instalar ONLYOFFICE en cualquier distro Linux: una suite ofimática completa basada en la web para aumentar la eficiencia de su equipo
- Coautor de documentos en Linux con ONLYOFFICE Docs
- Cómo instalar ONLYOFFICE Docs en Debian y Ubuntu
- Qué se puede hacer con la Nube de ExtreHost
- Usando ownCloud para integrar Dropbox, Google Drive y más en Linux
- ¿Por qué debería utilizar microservicios y contenedores?
- ¿Qué es y qué significa CI / CD?
- Cómo instalar el servidor de respaldo remoto rsnapshot en Red Hat / CentOS Linux
- La UE quiere pisar nuestros derechos y cobrar por usar Dropbox y WeTransfer