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 - cephuserEl 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-keygendeje 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/configPegue 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 cephuserGuarde el archivo.
Cambie el permiso del archivo de configuración.
chmod 644 ~/.ssh/configAhora 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 clienteEscriba 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 firewalldAbra 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 --reloadDesde 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 firewalldAbra 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 --reloadFinalmente, 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 firewalldAbra los puertos y vuelva a cargar el cortafuegos.
sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
sudo firewall-cmd --reloadLa 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.
- /dev/sda para la partición raíz.
- /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 osd3Verifique la partición con el comando fdisk.
sudo fdisk -l /dev/sdbFormatee 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 -fAhora 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 -yAsegú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 mon1El 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.confEn 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 =2Guarde 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 osd3El 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-initialEl 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/sdbEl 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/sdbSi 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/sdb1Compruebe 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:
- /dev/sdb1 - Datos cefalométricos
- /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 osd3Cambie el permiso del archivo clave ejecutando el siguiente comando en todos los nodos.
sudo chmod 644 /etc/ceph/ceph.client.admin.keyringSe 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 '.
sshmon1Ejecute el siguiente comando para comprobar el estado del clúster.
sudo ceph saludAhora compruebe el estado del clúster.
sudo ceph -sY 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.