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

Cómo construir un clúster de almacenamiento distribuido de Ceph en CentOS 7

Ceph es una plataforma de almacenamiento de código abierto ampliamente utilizada. Proporciona alto rendimiento, confiabilidad y escalabilidad. El sistema de almacenamiento distribuido gratuito de Ceph proporciona una interfaz para el almacenamiento a nivel de objetos, bloques y archivos. Ceph está diseñado para proporcionar un sistema de almacenamiento distribuido sin un solo punto de falla.

En este tutorial, lo guiaré para instalar y crear un clúster de Ceph en CentOS 7. Un clúster de Ceph requiere estos componentes de Ceph:

  • Ceph OSD (ceph-osd) - Maneja el almacén de datos, la replicación y recuperación de datos. Un clúster de Ceph necesita al menos dos servidores Ceph OSD. Usaré tres servidores CentOS 7 OSD aquí.
  • Monitor cefalométrico (ceph-mon) - Supervisa el estado del clúster, el mapa OSD y el mapa CRUSH. Usaré un servidor.
  • Servidor de metadatos de Ceph (ceph-mds) - Esto es necesario para usar Ceph como sistema de archivos.

Requisitos previos

  • 6 nodos de servidor, todos con CentOS 7 instalado.
  • Privilegios de raíz en todos los nodos.

Los servidores de este tutorial utilizarán los siguientes nombres de host y direcciones IP.

nombre de host dirección IP

Ceph-Admin 10.0.15.10
Mon1 10.0.15.11
OSD1 10.0.15.21
OSD2 10.0.15.22
OSD3 10.0.15.23
cliente                 10.0.15.15

Todos los nodos OSD necesitan dos particiones, una partición raíz (/) y una partición vacía que se usa como almacenamiento de datos de Ceph más adelante.

Paso 1:configurar todos los nodos

En este paso, configuraremos los 6 nodos para prepararlos para la instalación de Ceph Cluster. Debe seguir y ejecutar todos los comandos a continuación en todos los nodos. Y asegúrese de que el servidor ssh esté instalado en todos los nodos.

Crear un usuario de Ceph

Cree un nuevo usuario llamado 'cephuser ' en todos los nodos.

useradd -d /home/cephuser -m cephuser
passwd cephuser

Después de crear el nuevo usuario, debemos configurar sudo para 'cephuser'. Debe poder ejecutar comandos como root y obtener privilegios de root sin contraseña.

Ejecute el siguiente comando para crear un archivo sudoers para el usuario y edite el archivo /etc/sudoers con sed.

echo "cephuser TODO =(raíz) NOPASSWD:TODO" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

Instalar y configurar NTP

Instale NTP para sincronizar la fecha y la hora en todos los nodos. Ejecute el comando ntpdate para establecer una fecha y hora a través del protocolo NTP, usaremos el servidor NTP de la piscina de EE. UU. Luego inicie y habilite el servidor NTP para que se ejecute en el momento del arranque.

yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd .servicio

Instalar Open-vm-tools

Si está ejecutando todos los nodos dentro de VMware, debe instalar esta utilidad de virtualización. De lo contrario, omita este paso.

yum install -y open-vm-herramientas

Deshabilitar SELinux

Deshabilite SELinux en todos los nodos editando el archivo de configuración de SELinux con el editor de secuencias sed.

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Configurar archivo de hosts

Edite el archivo /etc/hosts en todos los nodos con el editor vim y agregue líneas con la dirección IP y los nombres de host de todos los nodos del clúster.

vim /etc/hosts

Pegue la configuración a continuación:

10.0.15.10        ceph-admin
10.0.15.11        mon1
10.0.15.21        osd1
10.0.15.22        osd2
10.0.15.23        osd <1.3 .1 5 1.3 0 .1 cliente /pre>

Guarde el archivo y salga de vim.

Ahora puede intentar hacer ping entre los servidores con su nombre de host para probar la conectividad de la red. Ejemplo:

ping -c 5 mon1

Paso 2:configurar el servidor SSH

En este paso, configuraré el nodo ceph-admin . El nodo de administración se utiliza para configurar el nodo de supervisión y los nodos de OSD. Inicie sesión en el nodo ceph-admin y conviértase en el 'cephuser '.

ssh [correo electrónico protegido]
su - cephuser

El nodo de administración se utiliza para instalar y configurar todos los nodos del clúster, por lo que el usuario del nodo ceph-admin debe tener privilegios para conectarse a todos los nodos sin contraseña. Tenemos que configurar el acceso SSH sin contraseña para 'cephuser' en el nodo 'ceph-admin'.

Genere las claves ssh para 'cephuser '.

ssh-keygen

deje la frase de contraseña en blanco/vacía.

A continuación, cree el archivo de configuración para la configuración de ssh.

vim ~/.ssh/config

Pegue la configuración a continuación:

Host ceph-admin
        Nombre de host ceph-admin
        Usuario cephuser

Host mon1
        Nombre de host mon1
        Usuario cephuser

Host osd1
        Nombre de host osd1
        Usuario cephuser

Host osd2
        Nombre de host osd2
        Usuario cephuser

Host osd3
        Nombre de host osd3
        Usuario cephuser

Cliente de host
        Nombre de host cliente
        Usuario cephuser

Guarde el archivo.

Cambie el permiso del archivo de configuración.

chmod 644 ~/.ssh/config

Ahora agregue la clave SSH a todos los nodos con el comando ssh-copy-id.

ssh-keyscan osd1 osd2 osd3 cliente mon1>> ~/.ssh/known_hosts
ssh-copy-id osd1
ssh-copy-id osd2
ssh-copy-id osd3
ssh-copy-id mon1
ssh-copy-id cliente

Escriba su contraseña de 'cephuser' cuando se le solicite.

Cuando haya terminado, intente acceder al servidor osd1 desde el nodo ceph-admin.

ssh osd1

Paso 3:configurar el cortafuegos

Usaremos Firewalld para proteger el sistema. En este paso, habilitaremos Firewald en todos los nodos y luego abriremos los puertos necesarios para ceph-admon, ceph-mon y ceph-osd.

Inicie sesión en el nodo ceph-admin e inicie firewalld.

ssh [email protected]
systemctl iniciar firewalld
systemctl habilitar firewalld

Abra el puerto 80, 2003 y 4505-4506 y luego vuelva a cargar el firewall.

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
sudo firewall-cmd --reload

Desde el nodo ceph-admin, inicie sesión en el nodo del monitor 'mon1' e inicie firewalld.

ssh mon1
sudo systemctl iniciar firewalld
sudo systemctl habilitar firewalld

Abra un nuevo puerto en el nodo del monitor de Ceph y vuelva a cargar el firewall.

sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
sudo firewall-cmd --reload

Finalmente, abra el puerto 6800-7300 en cada uno de los nodos osd:osd1, osd2 y os3.

Inicie sesión en cada nodo osd desde el nodo ceph-admin.

ssh osd1
sudo systemctl iniciar firewalld
sudo systemctl habilitar firewalld

Abra los puertos y vuelva a cargar el cortafuegos.

sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
sudo firewall-cmd --reload

La configuración del cortafuegos está lista.

Paso 4:configurar los nodos Ceph OSD

En este tutorial, tenemos 3 nodos OSD y cada nodo tiene dos particiones.

  1. /dev/sda para la partición raíz.
  2. /dev/sdb es una partición vacía - 30GB en mi caso.

Usaremos /dev/sdb para el disco Ceph. Desde el nodo ceph-admin, inicie sesión en todos los nodos OSD y formatee la partición /dev/sdb con XFS .

ssh osd1
ssh osd2
ssh osd3

Verifique la partición con el comando fdisk.

sudo fdisk -l /dev/sdb

Formatee la partición /dev/sdb con el sistema de archivos XFS y con una tabla de particiones GPT usando el comando parted.

sudo parted -s /dev/sdb mklabel gpt mkpart primario xfs 0% 100%
sudo mkfs.xfs /dev/sdb -f

Ahora verifique la partición y obtendrá la partición xfs /dev/sdb.

sudo blkid -o valor -s TIPO /dev/sdb

Paso 5:compilar el clúster de Ceph

En este paso, instalaremos Ceph en todos los nodos desde el nodo ceph-admin.

Inicie sesión en el nodo ceph-admin.

ssh [correo electrónico protegido]
su - cephuser

Instalar ceph-deploy en el nodo ceph-admin

Agregue el repositorio de Ceph e instale la herramienta de implementación de Ceph 'ceph-deploy ' con el comando yum.

sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo yum update -y &&sudo yum instalar ceph-deploy -y

Asegúrese de que todos los nodos estén actualizados.

Después de instalar la herramienta ceph-deploy, cree un nuevo directorio para la configuración del clúster de ceph.

Crear nueva configuración de clúster

Cree el nuevo directorio del clúster.

mkdir clúster
cd clúster/

A continuación, cree una nueva configuración de clúster con 'ceph-deploy ', defina el nodo del monitor como 'mon1 '.

ceph-implementar nuevo mon1

El comando generará el archivo de configuración del clúster de Ceph 'ceph.conf' en el directorio del clúster.

Edite el archivo ceph.conf con vim.

vim ceph.conf

En el bloque [global], pegue la configuración a continuación.

# Su dirección de red
red pública =10.0.15.0/24
tamaño predeterminado del grupo osd =2

Guarde el archivo y salga de vim.

Instalar Ceph en todos los nodos

Ahora instale Ceph en todos los demás nodos desde el nodo ceph-admin. Esto se puede hacer con un solo comando.

ceph-deploy instalar ceph-admin mon1 osd1 osd2 osd3

El comando instalará automáticamente Ceph en todos los nodos:mon1, osd1-3 y ceph-admin. La instalación llevará algún tiempo.

Ahora implemente ceph-mon en el nodo mon1.

ceph-deploy mon create-initial

El comando creará la clave del monitor, verificará y obtendrá las claves con el comando 'ceph'.

ceph-deploy joinkeys mon1

Agregar OSDS al clúster

Cuando Ceph se ha instalado en todos los nodos, podemos agregar los demonios OSD al clúster. Los demonios OSD crearán su partición de datos y diario en el disco /dev/sdb.

Compruebe que la partición /dev/sdb está disponible en todos los nodos OSD.

lista de discos ceph-deploy osd1 osd2 osd3

Verá el disco /dev/sdb con formato XFS.

A continuación, elimine las tablas de partición /dev/sdb en todos los nodos con la opción zap.

ceph-deploy disk zap osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb

El comando eliminará todos los datos en /dev/sdb en los nodos Ceph OSD.

Ahora prepare todos los nodos OSDS. Asegúrese de que no haya errores en los resultados.

ceph-deploy osd preparar osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb

Si ve que el osd1-3 está listo para el resultado de uso de OSD, entonces la implementación fue exitosa.

Active los OSD con el siguiente comando:

ceph-deploy osd activar osd1:/dev/sdb1 osd2:/dev/sdb1 osd3:/dev/sdb1

Compruebe si hay errores en la salida antes de continuar. Ahora puede verificar el disco sdb en los nodos OSD con el comando list.

lista de discos ceph-deploy osd1 osd2 osd3

El resultado es que /dev/sdb ahora tiene dos particiones:

  1. /dev/sdb1 - Datos cefalométricos
  2. /dev/sdb2 - Diario cefalométrico

O puede comprobarlo directamente en el nodo OSD con fdisk.

ssh osd1
sudo fdisk -l /dev/sdb

A continuación, implemente la clave de gestión en todos los nodos asociados.

ceph-deploy administrador ceph-admin mon1 osd1 osd2 osd3

Cambie el permiso del archivo clave ejecutando el siguiente comando en todos los nodos.

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Se ha creado Ceph Cluster en CentOS 7.

Paso 6:probar la configuración de Ceph

En el paso 4, instalamos y creamos nuestro nuevo clúster de Ceph, luego agregamos nodos OSDS al clúster. Ahora podemos probar el clúster y asegurarnos de que no haya errores en la configuración del clúster.

Desde el nodo ceph-admin, inicie sesión en el servidor de ceph monitor 'mon1 '.

sshmon1

Ejecute el siguiente comando para comprobar el estado del clúster.

sudo ceph salud

Ahora compruebe el estado del clúster.

sudo ceph -s

Y deberías ver los resultados a continuación:

Asegúrese de que el estado de Ceph esté bien. y hay un nodo de monitor 'mon1 ' con dirección IP '10.0.15.11 '. Debería haber 3 OSD servidores y todo debería estar activo y funcionando, y debería haber un disco disponible de aproximadamente 75 GB - 3 particiones de datos Ceph de 25 GB.

Enhorabuena, ha creado correctamente un nuevo clúster de Ceph.

En la siguiente parte del tutorial de Ceph, le mostraré cómo usar Ceph como un dispositivo de bloque o montarlo como un sistema de archivos.


Cent OS
  1. Almacenamiento replicado distribuido en cuatro nodos de almacenamiento con GlusterFS en CentOS 5.4

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

  3. Almacenamiento distribuido en cuatro nodos de almacenamiento con GlusterFS 3.2.x en CentOS 6.3

  4. Almacenamiento replicado distribuido en cuatro nodos de almacenamiento con GlusterFS 3.2.x en CentOS 6.3

  5. Cómo crear un clúster de almacenamiento de Ceph en Ubuntu 16.04

Cómo instalar un clúster fragmentado de MongoDB en CentOS 7

Cómo instalar un clúster Docker de Kubernetes en CentOS 7

Cómo construir un servidor de Minecraft en su CentOS 7

Cómo configurar un clúster de alta disponibilidad en CentOS 7/RHEL 7

Cómo configurar un clúster de Redis en CentOS 8 - Parte 3

Cómo instalar el clúster de Kubernetes en CentOS 8