GNU/Linux >> Tutoriales Linux >  >> Debian

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

Este tutorial muestra cómo configurar un servidor de almacenamiento independiente en Debian Lenny. 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 tenga el siguiente aspecto 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 por 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 Debian para Debian Lenny, por lo tanto, tenemos que construirlo nosotros mismos. Primero instalamos los requisitos previos:

aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-dev

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.1.tar.gz
tar xvfz glusterfs-2.0.1.tar .gz
cd glusterfs-2.0.1
./configure --prefix=/usr> /dev/null

server1:/tmp/glusterfs-2.0.1# ./configure --prefix=/usr > /dev/null

GlusterFS configure summary
===========================
FUSE cliente        : no
Infiniband verbos   : no
epoll IO multiplex : sí
Berkeley-DB        :yes
libglusterfsclient : yes
mod_glusterfs      : no ()
argp-standalone    : no

server1:/tmp/glusterfs-2.0.1#

hacer &&hacer instalar
ldconfig

El comando

glusterfs --version

ahora debería mostrar la versión de GlusterFS que acaba de compilar (2.0.1 en este caso):

server1:/tmp/glusterfs-2.0.1# glusterfs --version
glusterfs 2.0.1 creado el 29 de mayo de 2009 17:23:10
Revisión del repositorio:5c1d9108c1529a1155963cb1911f8870a674ab5b
Copyright (c) 2006 -2009 Z RESEARCH 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.
servidor1:/tmp/glusterfs-2.0.1#

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
127.0.0.1       localhost.localdomain   localhost
192.168.0.100   server1.example.com     server1
192.168.0.101   client1.example.com     client1

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

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 los enlaces de inicio del sistema para el script de inicio glusterfsd...

update-rc.d glusterfsd defaults

... e inicie glusterfsd:

/etc/init.d/glusterfsd start   

3 Configuración del cliente GlusterFS

cliente1.ejemplo.com:

En el cliente, necesitamos instalar fuse y GlusterFS. En lugar de instalar el paquete libfuse2 desde el repositorio de Debian, instalamos una versión parcheada con mejor soporte para GlusterFS.

Primero volvemos a instalar los prerrequisitos:

aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-dev  

Luego construimos fuse de la siguiente manera (puede encontrar la última versión de fuse parcheada en ftp://ftp.zresearch.com/pub/gluster/glusterfs/fuse/):

cd /tmp
wget ftp://ftp.zresearch.com/pub/gluster/glusterfs/fuse/fuse-2.7.4glfs11.tar.gz
tar -zxvf fuse-2.7.4glfs11.tar. gz
cd fuse-2.7.4glfs11
./configure
hacer &&hacer instalar

Luego construimos GlusterFS (igual que en el servidor)...

cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.1.tar.gz
tar xvfz glusterfs-2.0.1.tar .gz
cd glusterfs-2.0.1
./configure --prefix=/usr> /dev/null

hacer &&hacer instalar
ldconfig
glusterfs --version

... y crea 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
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

¡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

cliente1:~# montar
/dev/mapper/vg0-root en / escribir ext3 (rw,errors=remount-ro)
tmpfs en /lib/init/rw escribir tmpfs (rw,nosuid,modo =0755)
proc en /proc tipo proc (rw,noexec,nosuid,nodev)
sysfs en /sys tipo sysfs (rw,noexec,nosuid,nodev)
udev en /dev tipo tmpfs (rw,mode=0755)
tmpfs en /dev/shm escriba tmpfs (rw,nosuid,nodev)
devpts en /dev/pts escriba devpts (rw,noexec,nosuid,gid=5, mode=620)
/dev/sda1 en /boot type ext3 (rw)
fusectl en /sys/fs/fuse/connections type fusectl (rw)
/etc/glusterfs/glusterfs. vol en /mnt/glusterfs escriba fuse.glusterfs (rw,max_read=131072,allow_other,default_permissions)
cliente1:~#

... y...

df -h

cliente1:~# df -h
Sistema de archivos            Tamaño  Utilizado Avail Use% Montado en
/dev/mapper/vg0-root   19G  812M   17G   5 % /
tmpfs                 253M      253M       253M      init/rw
udev 10m 80k 10m 1%/dev
tmpfs 253m 0 253m 0%/dev/shm
/dev/sda1 471m 20m 427m 5%/arranque
/etc /glusterfs/glusterfs.vol
                        29G  811M   27G   3 % /mnt/glusterfs
cliente1:~#

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/
  • Debian:http://www.debian.org/

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

  2. Almacenamiento de alta disponibilidad con GlusterFS en Debian Lenny:replicación automática de archivos en dos servidores de almacenamiento

  3. Almacenamiento distribuido en cuatro nodos de almacenamiento con GlusterFS en Debian Lenny

  4. Almacenamiento replicado distribuido en cuatro nodos de almacenamiento con GlusterFS en Debian Lenny

  5. Distribución de cuatro nodos de almacenamiento con GlusterFS en Debian Lenny

Almacenamiento de alta disponibilidad con GlusterFS en Debian 8:espejo en dos servidores de almacenamiento

Almacenamiento de alta disponibilidad con GlusterFS en Ubuntu 18.04 LTS

Instale WordPress 5 con Apache en Debian 9

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

Configuración inicial del servidor con Debian 11

Cómo configurar LAMP con Debian 11

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