Sistema distribuido GFS
-
-
- Uno, descripción general de GlusterFS
- 2. Implementación del sistema de subdespliegue de GFS
- Tres, resumen del comando 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
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
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
③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
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
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
②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
③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
④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
⑤ 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
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}
③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
# 永久 挂载
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
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)