Sistema distribuido GFS

Uno, descripción general de GlusterFS

1. Introducción a GFS

GlusterFS es un sistema de archivos distribuido de código abierto

Compuesto por servidor de almacenamiento, cliente y puerta de enlace de almacenamiento NFS / Samba (opcional, elija usar según sus necesidades)

Sin servidor de metadatos

2. Funciones de GFS

Escalabilidad y alto rendimiento

Alta disponibilidad

Espacio de nombres unificado global

Gestión de volumen flexible

Basado en protocolo estándar

3. Terminología de GFS

Brick (bloque): servidor de almacenamiento, el servidor que realmente almacena los datos del usuario

Volumen: partición del sistema de archivos local

FUSE: Sistema de archivos de espacio de usuario (EXT4 analógico). Este es un módulo interactivo para el sistema de archivos y el lado del usuario. Es compatible con usuarios sin privilegios para crear su propio sistema de archivos sin modificar el código del kernel. Ejecutando el código del sistema de archivos en el espacio de usuario Puente con el kernel a través del código FUSE

VFS: sistema de archivos virtual

Glusterd: demonio de administración de Gluster, para ejecutarse en todos los servidores del grupo de almacenamiento confiable

4. La estructura de GFS

Arquitectura modular apilada

Arquitectura modular apilada

Realice funciones complejas mediante la combinación de módulos

5. Algoritmo HASH elástico

Obtenga un número entero de 32 bits a través del algoritmo HASH

Dividido en N subespacios continuos, cada espacio corresponde a un Ladrillo

Ventajas del algoritmo HASH flexible

Asegúrese de que los datos se distribuyan uniformemente en cada bloque

Resolver la dependencia del servidor de metadatos, resolviendo así el punto único de falla y cuello de botella de acceso

6. El principio de funcionamiento de GFS

①Los clientes o aplicaciones acceden a los datos a través del punto de montaje de GFS

② El kernel del sistema Linux recibe la solicitud y la procesa a través de la API de VFS

③VFS envía los datos al sistema de archivos del kernel de FUSE y el sistema de archivos de fuse envía los datos al cliente GFS a través del archivo de dispositivo / dev / fuse

④ Después de que el cliente CFS recibe los datos, el cliente procesa los datos de acuerdo con la configuración del archivo de configuración.

⑤Pase al secretario de red Jiang al servidor GFS remoto y escriba los datos en el dispositivo de almacenamiento del servidor

7. Tipo de volumen GFS

①Volumen distribuido

El archivo no está dividido en bloques

Guarde el valor HASH a través de atributos de archivo extendidos

Los sistemas de archivos subyacentes admitidos son ext3, ext4, ZFS, XFS, etc.

Características:

Los archivos se distribuyen en diferentes servidores sin redundancia

Amplíe el tamaño de un volumen de forma más fácil y económica

Un solo punto de falla puede causar la pérdida de datos

Confíe en la protección de datos subyacente

Formato de comando:

gluster volume crear dis-volume server1: / dir1 server2: / dir2

② Rollo de tiras

Divida el archivo en N bloques (N nodos de tira) de acuerdo con el desplazamiento y almacene los sondeados en cada nodo de Brick Server

El rendimiento es particularmente sobresaliente cuando se almacenan archivos grandes

Sin redundancia, similar a Raid0

Características:

Los datos se dividen en partes más pequeñas y se distribuyen en diferentes franjas en la granja de servidores de bloques.

La distribución reduce la carga y los archivos más pequeños aceleran la velocidad de acceso

Sin redundancia de datos

Formato de comando:

gluster volume crear stripe-volume stripe 2 transporte tcp server1: / dir1 server2: / dir2

③Volumen de copia

Conserve una o más copias del mismo archivo

El modo de copia necesita guardar la copia, por lo que la utilización del disco es baja

El espacio de almacenamiento en varios nodos es inconsistente, entonces la capacidad del nodo más bajo se tomará como la capacidad total del volumen de acuerdo con el efecto barril.

Características:

Todos los servidores del volumen mantienen una copia completa

El cliente puede determinar el número de copias del volumen cuando se crea

Al menos dos servidores de bloque o más servidores

Con redundancia

Formato de comando:

volumen de gluster crear réplica de volumen de representante 2 transporte tcp server1: / dir1 server2: / dir2

④Volumen de tira distribuido

Tenga en cuenta las funciones de los volúmenes distribuidos y los volúmenes seccionados

Se utiliza principalmente para el procesamiento de acceso a archivos grandes

Se requieren al menos 4 servidores

Formato de comando:

volumen de gluster crear réplica de volumen de representante 2 transporte tcp server1: / dir1 server2: / dir2

⑤Volumen de replicación distribuido

Tenga en cuenta las funciones de los volúmenes distribuidos y replicados

Se usa cuando se requiere redundancia

Formato de comando:

volumen de gluster crear réplica de volumen de representante 2 transporte tcp server1: / dir1 server2: / dir2

2. Implementación del sistema de subdespliegue de GFS

1. Entorno de implementación

Nodo Nodo1: IP192.168.200.11 agregue 4 discos

Nodo Nodo2: IP192.168.200.12 agregue 4 discos

Nodo Nodo3: IP192.168.200.13 agregue 4 discos

Nodo Node4: IP192.168.200.14 agregue 4 discos

Cliente: IP 192.168.200.15

2. Apague el firewall

#Cada estación debe estar apagada

systemctl detener firewalld

setenforce 0

3. Modifique el nombre de host

# Tome node1 como ejemplo, los otros tres están configurados en node2, node3, node4

hostnamectl set-hostname node1

su #puede ser equivalente a actualizar el nombre de host

4. Mapeo

# Es necesario configurar cada servidor de nodo

echo "192.168.200.11 nodo1" >> / etc / hosts
echo "192.168.200.12 nodo2" >> / etc / hosts
echo "192.168.200.13 nodo3" >> / etc / hosts
echo "192.168.200.14 nodo4" >> / etc /Hospedadores
Inserte la descripción de la imagen aquí

5. Partición de disco

#La partición de script se puede usar aquí, los cuatro nodos de nodo deben ser

#! / bin / bash
NEWDEV = `ls / dev / sd * | grep -o 'sd [bz]' | uniq`
para VAR en $ NEWDEV
do
echo -e “n \ np \ n \ n \ n \ nw \ n” | fdisk / dev / $ VAR &> / dev / null
mkfs.xfs / dev / $ {VAR} "1" &> / dev / null
mkdir -p / data / $ {VAR} "1" &> / dev / null
echo "/ dev / $ {VAR}" 1 "/ data / $ {VAR}" 1 "xfs por defecto 0 0" >> / etc / fstab
listo
montaje -a &> / dev / null

---------- Después de que se completa el guión ----------

chmod + x /opt/fdisk.sh #Dar permiso de ejecución

sh fdisk.sh # Ejecutar script

df -h #Comprueba si el montaje es exitoso
Inserte la descripción de la imagen aquí

6. Configuración de implementación del clúster de GFS

# Se pueden configurar cuatro nodos de la misma manera

①Descomprima el paquete de software

# Cargue el software gfsrepo en el directorio / opt y descomprímalo localmente

descomprimir gfsrepo.zip

②Configurar la fuente de yum local de GFS

mkdir repo.bak #Crear un directorio de respaldo

mv * .repo repo.bak # Mover todos los archivos al directorio de respaldo

vim glfs.repo #Editar archivo yumrepo local

[glfs]

nombre = glfs

baseurl = archivo: /// opt / gfsrepo

gpgcheck = 0

habilitado = 1
Inserte la descripción de la imagen aquí

③Compile e instale GFS

yum limpiar todo && yum makecache

yum -y instalar glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

④Iniciar el servicio

systemctl start glusterd.service
systemctl enable glusterd.service
systemctl status glusterd.service
Inserte la descripción de la imagen aquí

7. Agregue nodos al grupo de confianza de almacenamiento

# Solo hazlo en un nodo

gluster peer probe
node1
gluster peer probe node2
gluster peer probe node3 gluster peer probe node4


#Ver el estado del clúster en cada nodo del nodo gluster peer status
Inserte la descripción de la imagen aquí

8. Crea un volumen

Nombre del volumen Tipo de volumen Ladrillo
dis-volumen Volumen distribuido nodo1 (/ datos / sdb1) 、 nodo2 (/ datos / sdb1)
volumen de la raya Rollo de rayas nodo1 (/ datos / sdc1) 、 nodo2 (/ datos / sdc1)
rep-volumen Copiar volumen nodo3 (/ datos / sdb1) 、 nodo4 (/ datos / sdb1)
dis-stripe Volumen distribuido a rayas nodo1 (/ datos / sdd1) 、 nodo2 (/ datos / sdd1) 、 nodo3 (/ datos / sdd1) 、 nodo4 (/ datos / sdd1)
dis-rep Volumen de replicación distribuido nodo1 (/ datos / sde1) 、 nodo2 (/ datos / sde1) 、 nodo3 (/ datos / sde1) 、 nodo4 (/ datos / sde1)
①Crear un volumen distribuido


#Crear un volumen distribuido, sin especificar el tipo, el valor predeterminado es crear un volumen distribuido gluster volume create dis-volume node1: / data / sdb1 node2: / data / sdb1 force

# Ver lista de volúmenes lista de volumen de
gluster


#Iniciar un nuevo volumen distribuido gluster volume start dis-volume


#Ver la información de volumen distribuida creada gluster volume info dis-volume
Inserte la descripción de la imagen aquí

②Crea un volumen rayado


# El tipo especificado es stripe, el valor es 2 y se siguen 2 Brick Servers, por lo que se crea el volumen seccionado . Gluster volume create stripe-volume stripe 2 node1: / data / sdc1 node2: / data / sdc1 force
gluster volume start volumen de raya
gluster información de volumen volumen de raya
Inserte la descripción de la imagen aquí

③Crear un volumen de copia


# El tipo especificado es réplica, el valor es 2 y se siguen 2 Brick Servers, por lo que se crea el volumen de replicación gluster volume create rep-volume replica 2 node3: / data / sdb1 node4: / data / sdb1 force
gluster volume start rep -volumen
gluster volumen info rep-volumen
Inserte la descripción de la imagen aquí

④Crea un volumen rayado distribuido

# El tipo especificado es stripe, el valor es 2 y se siguen 4 Brick Servers, que es el doble que 2, por lo que el volumen de stripe distribuido
gluster volume crea dis-stripe stripe 2 node1: / data / sdd1 node2: / data / sdd1 node3: / data / sdd1 node4: / data / sdd1 forzar el
inicio del volumen del gluster dis-stripe
gluster volume info dis-stripe
Inserte la descripción de la imagen aquí

⑤ Cree un volumen de replicación distribuido

El tipo designado es réplica, el valor es 2 y se siguen 4 Brick Servers, que es el doble del número de 2, por lo que el volumen distribuido replicado
gluster volume create dis-rep replica 2 node1: / data / sde1 node2: / data is creado / sde1 node3: / data / sde1 node4: / data / sde1 forzar el
inicio del volumen del gluster dis-rep
gluster información del volumen dis-rep
gluster lista de volúmenes
Inserte la descripción de la imagen aquí

9. Implementar el cliente

①Instalar el software del cliente

# Cargue el software gfsrepo en el directorio / opt
cd /etc/yum.repos.d/
mkdir repo.bak
mv * .repo repo.bak

vim glfs.repo
[glfs]
name = glfs
baseurl = file: /// opt / gfsrepo
gpgcheck = 0
enabled = 1

cd / opt

descomprimir gfsrepo.zip

yum limpiar todo && yum makecache

yum -y instalar glusterfs glusterfs-fuse

②Crear un directorio de montaje

mkdir -p / test / {dis, stripe, rep, dis_stripe, dis_rep}
Inserte la descripción de la imagen aquí

③Configure el archivo / etc / hosts

echo "192.168.200.11 nodo1" >> / etc / hosts
echo "192.168.200.12 nodo2" >> / etc / hosts
echo "192.168.200.13 nodo3" >> / etc / hosts
echo "192.168.200.14 nodo4" >> / etc /Hospedadores

④ Monte el sistema de archivos Gluster

# 临时 挂载 mount.glusterfs
node1: dis-volume / test / dis
mount.glusterfs node1: stripe-volume / test / stripe
mount.glusterfs node1: rep-volume / test / rep
mount.glusterfs node1: dis-stripe / test / dis_stripe mount.glusterfs
node1: dis-rep / test / dis_rep
Inserte la descripción de la imagen aquí

# 永久 挂载
vim / etc / fstab
node1: dis-volume / test / dis glusterfs por defecto, _netdev 0 0
node1: stripe-volume / test / stripe glusterfs por defecto, _netdev 0 0
nodo1: rep-volume / test / rep glusterfs por defecto , _netdev 0 0
node1: dis-stripe / test / dis_stripe glusterfs por defecto, _netdev 0 0
node1: dis-rep / test / dis_rep glusterfs por defecto, _netdev 0 0

⑤Escribir archivos en el volumen, operación del cliente

cd / opt
dd if = / dev / zero of = / opt / demo1.log bs = 1M count = 40
dd if = / dev / zero of = / opt / demo2.log bs = 1M count = 40
dd if = / dev / zero of = / opt / demo3.log bs = 1M count = 40
dd if = / dev / zero of = / opt / demo4.log bs = 1M count = 40
dd if = / dev / zero of = / opt / demo5 .log bs = recuento de 1 M = 40

cp demo * / test / dis
cp demo * / test / stripe /
cp demo * / test / rep /
cp demo * / test / dis_stripe /
cp demo * / test / dis_rep /

⑥Ver prueba

Inserte la descripción de la imagen aquí

Tres, resumen del comando GFS

1. Ver la
lista de volúmenes de gluster de volumen de GlusterFS

2. Ver toda la información de
volumen gluster volume info

3. Ver el estado de todos los volúmenes
gluster volume status

4. A roll stop
gluster volumen stop dis-stripe

5. Eliminar un volumen. Nota: Al eliminar un volumen, primero debe detener el volumen y ningún host del grupo de confianza puede estar inactivo; de lo contrario, la eliminación no se realizará
correctamente . Gluster volume delete dis-stripe

6. Establecer control de acceso de volumen
#Rechazar solo el
volumen de gluster establecer dis-rep auth.allow 192.168.200.11


# Permitir solo la autenticación de dis-rep del conjunto de volúmenes de gluster. Permitir 192.168.200. * #Configurar todas las direcciones IP en el segmento de red 192.168.200.0 para poder acceder al volumen de dis-rep (volumen de replicación distribuido)

Supongo que te gusta

Origin blog.csdn.net/weixin_51615030/article/details/114356943
Recomendado
Clasificación