GNU/Linux >> Tutoriales Linux >  >> Cent OS

Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS en CentOS 5.4

Este tutorial muestra cómo configurar un servidor de almacenamiento independiente en CentOS 5.4. En lugar de NFS, usaré GlusterFS aquí. El sistema cliente podrá acceder al almacenamiento como si fuera un sistema de archivos local. GlusterFS es un sistema de archivos en clúster capaz de escalar a varios peta-bytes. Agrega varios bloques de almacenamiento sobre la interconexión Infiniband RDMA o TCP/IP en un gran sistema de archivos de red paralelo. Los bloques de almacenamiento se pueden fabricar con cualquier hardware básico, como servidores x86_64 con SATA-II RAID e Infiniband HBA.

¡No emito ninguna garantía de que esto funcione para usted!

1 nota preliminar

En este tutorial utilizo dos sistemas, un servidor y un cliente:

  • servidor1.ejemplo.com:dirección IP 192.168.0.100 (servidor)
  • cliente1.ejemplo.com:dirección IP 192.168.0.101 (cliente)

Ambos sistemas deberían poder resolver el nombre de host del otro sistema. Si esto no se puede hacer a través de DNS, debe editar el archivo /etc/hosts para que contenga las siguientes dos líneas en ambos sistemas:

vi /etc/hosts

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

2 Configuración del servidor GlusterFS

servidor1.ejemplo.com:

GlusterFS no está disponible como paquete para CentOS 5.4, por lo tanto, tenemos que construirlo nosotros mismos. Primero instalamos los requisitos previos:

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel

Luego, descargamos la última versión de GlusterFS de http://www.gluster.org/download.php y la construimos de la siguiente manera:

cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz
tar xvfz glusterfs-2.0.9.tar .gz
cd glusterfs-2.0.9
./configurar

Al final del comando ./configure, debería ver algo como esto:

[...]
Resumen de configuración de GlusterFS
==========================
FUSE cliente        :yes
Infiniband verbs   : yes
epoll IO multiplex : yes
Berkeley-DB        : yes
libglusterfsclient : yes
argp-standalone    : no

[[correo electrónico protegido] glusterfs-2.0.9]#

hacer &&hacer instalar
ldconfig

Compruebe la versión de GlusterFS después (debe ser 2.0.9):

glusterfs --version

[[email protected] glusterfs-2.0.9]# glusterfs --version
glusterfs 2.0.9 construido el 1 de marzo de 2010 15:34:50
Revisión del repositorio:v2.0.9
Copyright ( c) 2006-2009 Gluster Inc.
GlusterFS viene SIN GARANTÍA EN ABSOLUTO.
Usted puede redistribuir copias de GlusterFS bajo los términos de la Licencia Pública General GNU.
[[correo electrónico protegido] glusterfs-2.0.9]#

A continuación, creamos algunos directorios:

mkdir /data/
mkdir /data/export
mkdir /data/export-ns
mkdir /etc/glusterfs

Ahora creamos el archivo de configuración del servidor GlusterFS /etc/glusterfs/glusterfsd.vol que define qué directorio se exportará (/data/export) y qué cliente puede conectarse (192.168.0.101 =client1.example.com):

vi /etc/glusterfs/glusterfsd.vol
[...]
192.168.0.100           server1.example.com server1
192.168.0.101           client1.example.com client1
[...]

Tenga en cuenta que es posible utilizar comodines para las direcciones IP (como 192.168.*) y que puede especificar varias direcciones IP separadas por comas (por ejemplo, 192.168.0.101,192.168.0.102).

Luego creamos el siguiente enlace simbólico...

ln -s /usr/local/sbin/glusterfsd /sbin/glusterfsd

... y luego los enlaces de inicio del sistema para el servidor GlusterFS e iniciarlo:

chkconfig --levels 35 glusterfsd en
/etc/init.d/glusterfsd start

3 Configuración del cliente GlusterFS

cliente1.ejemplo.com:

GlusterFS no está disponible como paquete para CentOS 5.4, por lo tanto, tenemos que construirlo nosotros mismos. Primero instalamos los requisitos previos:

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel

Luego cargamos el módulo del núcleo del fusible...

modprobe fuse

... y cree el archivo /etc/rc.modules con el siguiente contenido para que el módulo del kernel de fusibles se cargue automáticamente cada vez que se inicie el sistema:

vi /etc/rc.modules
volume posix
  type storage/posix
  option directory /data/export
end-volume

volume locks
  type features/locks
  option mandatory-locks on
  subvolumes posix
end-volume

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

volume server
  type protocol/server
  option transport-type tcp
  option auth.addr.brick.allow 192.168.0.101 # Edit and add list of allowed clients comma separated IP addrs(names) here
  subvolumes brick
end-volume

Hacer el archivo ejecutable:

chmod +x /etc/rc.modules 

Luego descargamos las fuentes de GlusterFS 2.0.9 (¡tenga en cuenta que esta es la misma versión que está instalada en el servidor!) y compilamos GlusterFS de la siguiente manera:

cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz
tar xvfz glusterfs-2.0.9.tar .gz
cd glusterfs-2.0.9
./configurar

Al final del comando ./configure, debería ver algo como esto:

[...]
Resumen de configuración de GlusterFS
==========================
FUSE cliente        :yes
Infiniband verbs   : yes
epoll IO multiplex : yes
Berkeley-DB        : yes
libglusterfsclient : yes
argp-standalone    : no

hacer &&hacer instalar
ldconfig

Compruebe la versión de GlusterFS después (debe ser 2.0.9):

glusterfs --version

[[email protected] glusterfs-2.0.9]# glusterfs --version
glusterfs 2.0.9 construido el 1 de marzo de 2010 15:58:06
Revisión del repositorio:v2.0.9
Copyright ( c) 2006-2009 Gluster Inc.
GlusterFS viene SIN GARANTÍA EN ABSOLUTO.
Usted puede redistribuir copias de GlusterFS bajo los términos de la Licencia Pública General GNU.
[[correo electrónico protegido] glusterfs-2.0.9]#

Luego creamos los siguientes dos directorios:

mkdir /mnt/glusterfs
mkdir /etc/glusterfs

A continuación creamos el archivo /etc/glusterfs/glusterfs.vol:

vi /etc/glusterfs/glusterfs.vol
modprobe fuse

¡Asegúrese de utilizar el nombre de host del servidor o la dirección IP correctos en la opción de línea de host remoto!

¡Eso es todo! Ahora podemos montar el sistema de archivos GlusterFS en /mnt/glusterfs con uno de los siguientes dos comandos:

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

o

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Ahora debería ver el nuevo recurso compartido en los resultados de...

mount

[[email protected] ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts en /dev/pts escriba devpts (rw,gid=5,mode=620)
/dev/sda1 en /boot escriba ext3 (rw)
tmpfs en / dev/shm escriba tmpfs (rw)
ninguno en /proc/sys/fs/binfmt_misc escriba binfmt_misc (rw)
sunrpc en /var/lib/nfs/rpc_pipefs escriba rpc_pipefs (rw)
glusterfs#/etc/glusterfs/glusterfs.vol en /mnt/glusterfs type fuse (rw,allow_other,default_permissions,max_read=131072)
[[email protected] ~]#

... y...

df -h

[[email protected] ~]# df -h
Sistema de archivos            Tamaño  Usado Avail Use% Montado en
/dev/mapper/VolGroup00-LogVol00
                               29G  2.2G   25 %/
/dev/sda1 99m 13m 82m 14%/boot
tmpfs 187m 0 187m 0%/dev/shm
glusterfs#/etc/glusterfs/glusterfs.vol
28g 2.3g 25g 9%/ mnt/glusterfs
[[correo electrónico protegido] ~]#

En lugar de montar el recurso compartido GlusterFS manualmente en el cliente, puede modificar /etc/fstab para que el recurso compartido se monte automáticamente cuando se inicie el cliente.

Abra /etc/fstab y agregue la siguiente línea:

vi /etc/fstab  
volume remote
  type protocol/client
  option transport-type tcp
  option remote-host server1.example.com # can be IP or hostname
  option remote-subvolume brick
end-volume

volume writebehind
  type performance/write-behind
  option window-size 4MB
  subvolumes remote
end-volume

volume cache
  type performance/io-cache
  option cache-size 512MB
  subvolumes writebehind
end-volume

Para probar si su /etc/fstab modificado está funcionando, reinicie el cliente:

reboot 

Después del reinicio, debería encontrar el recurso compartido en las salidas de...

df -h

... y...

mount

4 Enlaces

  • GlusterFS:http://www.gluster.org/
  • CentOS:http://www.centos.org/

Cent OS
  1. Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS en Debian Lenny

  2. Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS 3.0.x en Debian Squeeze

  3. Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS 3.2.x en Debian Wheezy

  4. Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS en CentOS 5.4

  5. Almacenamiento replicado distribuido en cuatro nodos de almacenamiento con GlusterFS en CentOS 5.4

Cómo configurar un servidor FTP con VSFTPD en CentOS 7

Cómo configurar un servidor FTP con VSFTPD en CentOS 8

Almacenamiento de alta disponibilidad con GlusterFS en Ubuntu 18.04 LTS

Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS 3.2.x en Ubuntu 12.10

Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS en Fedora 12

Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS en Fedora 13

    [...]
    /etc/glusterfs/glusterfs.vol  /mnt/glusterfs  glusterfs  defaults  0  0