cefalograma es gratis y de código abierto almacenamiento distribuido solución a través de la cual podemos proporcionar y administrar fácilmente el almacenamiento de bloques, el almacenamiento de objetos y el almacenamiento de archivos. La solución de almacenamiento de Ceph se puede utilizar en la infraestructura de TI tradicional para proporcionar el almacenamiento centralizado, además de esto, también se utiliza en la nube privada (pila abierta & pila de nubes). En Red Hat, OpenStack Ceph se usa como backend de cinder.
En este artículo, demostraremos cómo instalar y configurar Ceph Cluster (Mimic) en servidores CentOS 7.
En Ceph Cluster, los siguientes son los componentes principales:
- Monitores (ceph-mon) : como su nombre indica, los nodos de un monitor ceph vigilan el estado del clúster, el mapa OSD y el mapa Crush
- OSD (Ceph-osd): Estos son los nodos que forman parte del clúster y proporcionan funcionalidades de almacenamiento de datos, replicación de datos y recuperación. OSD también proporciona información para monitorear los nodos.
- SMD (Ceph-mds) : Es un servidor de metadatos ceph y almacena los metadatos de los sistemas de archivos ceph como almacenamiento en bloque.
- Nodo de implementación de Ceph : se utiliza para implementar el clúster de Ceph, también se denomina nodo Ceph-admin o Ceph-utility.
Detalles de configuración de mi laboratorio:
- Nodo de implementación de Ceph: (CentOS 7 mínimo, RAM: 4 GB, vCPU: 2, IP: 192.168.1.30, nombre de host: ceph-controller)
- OSD o Ceph Cómputo 1: (CentOS 7 mínimo, RAM: 10 GB, vCPU: 4, IP: 192.168.1.31, nombre de host: ceph-compute01)
- Cómputo OSD o Ceph 2: (CentOS 7 mínimo, RAM: 10 GB, vCPU: 4, IP: 192.168.1.32, nombre de host: ceph-compute02)
- monitor cefalométrico: (CentOS 7 mínimo, RAM: 10 GB, vCPU: 4, IP: 192.168.1.33, nombre de host: ceph-monitor)
Nota: En todos los nodos tenemos adheridos dos nics (eth0 & eth1), en eth0 se asigna la IP de la VLAN 192.168.1.0/24. En eth1, se asigna la IP de VLAN 192.168.122.0/24 y proporcionará el acceso a Internet.
Pasemos a los pasos de instalación y configuración:
Paso: 1) Actualice el archivo /etc/hosts, NTP, cree un usuario y deshabilite SELinux en todos los nodos
Agregue las siguientes líneas en el archivo /etc/hosts de todos los nodos para que también se pueda acceder a estos nodos a través de su nombre de host.
192.168.1.30 ceph-controller 192.168.1.31 ceph-compute01 192.168.1.32 ceph-compute02 192.168.1.33 ceph-monitor
Configure todos los nodos de Ceph con el servidor NTP para que todos los nodos tengan la misma hora y no haya desviaciones en el tiempo.
~]# yum install ntp ntpdate ntp-doc -y ~]# ntpdate europe.pool.ntp.org ~]# systemctl start ntpd ~]# systemctl enable ntpd
Crear un usuario con nombre “cefadón” en todos los nodos y usaremos este usuario para la implementación y configuración de ceph
~]# useradd cephadm && echo "[email protected]#" | passwd --stdin cephadm
Ahora asigne derechos de administrador al usuario cephadm a través de sudo, ejecute los siguientes comandos,
~]# echo "cephadm ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephadm ~]# chmod 0440 /etc/sudoers.d/cephadm
Deshabilite SELinux en todos los nodos usando el comando sed, incluso el sitio oficial de ceph recomienda deshabilitar SELinux,
~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Reinicie todos los nodos ahora usando el comando debajo,
~]# reboot
Paso: 2 Configure la autenticación sin contraseña desde el administrador de Ceph a todos los nodos de OSD y monitor
Desde el nodo Ceph-admin utilizaremos la utilidad conocida como “ceph-deploy“, iniciará sesión en cada nodo ceph e instalará el paquete ceph y realizará todas las configuraciones necesarias. Al acceder al nodo Ceph, no se nos pedirá que ingresemos las credenciales de los nodos ceph, por eso necesitamos configurar la autenticación sin contraseña o basada en claves desde el nodo ceph-admin a todos los nodos ceph.
Ejecute los siguientes comandos como usuario cephadm desde el nodo Ceph-admin (ceph-controller). Deje la frase de contraseña vacía.
[[email protected] ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/cephadm/.ssh/id_rsa): Created directory '/home/cephadm/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/cephadm/.ssh/id_rsa. Your public key has been saved in /home/cephadm/.ssh/id_rsa.pub. The key fingerprint is: 93:01:16:8a:67:34:2d:04:17:20:94:ad:0a:58:4f:8a [email protected] The key's randomart image is: +--[ RSA 2048]----+ |o.=+*o+. | | o.=o+.. | |.oo++. . | |E..o. o | |o S | |. . | | | | | | | +-----------------+ [[email protected] ~]$
Ahora copie las claves a todos los nodos ceph usando el comando ssh-copy-id
[[email protected] ~]$ ssh-copy-id [email protected] [[email protected] ~]$ ssh-copy-id [email protected] [[email protected] ~]$ ssh-copy-id [email protected]
Se recomienda agregar lo siguiente en el archivo “~/.ssh/config”
[[email protected] ~]$ vi ~/.ssh/config Host ceph-compute01 Hostname ceph-compute01 User cephadm Host ceph-compute02 Hostname ceph-compute02 User cephadm Host ceph-monitor Hostname ceph-monitor User cephadm
Guardar y salir del archivo.
[email protected] ~]$ chmod 644 ~/.ssh/config [[email protected] ~]$
Nota: En el comando anterior, reemplace el nombre de usuario y el nombre de host que se adapte a su configuración.
Paso: 3) Configurar reglas de firewall para OSD y monitorear nodos
En caso de que el firewall del sistema operativo esté habilitado y se esté ejecutando en todos los nodos ceph, debemos configurar las siguientes reglas de firewall; de lo contrario, puede omitir este paso.
En el nodo Ceph-admin, configure las siguientes reglas de firewall usando los comandos debajo,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Inicie sesión en OSD o Ceph Compute Nodes y configure las reglas del firewall con el comando firewall-cmd,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$ [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Inicie sesión en el nodo Ceph Monitor y ejecute el comando firewalld para configurar las reglas del firewall,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Paso: 4) Instalar y configurar el clúster de Ceph desde el nodo de administración de Ceph
Inicie sesión en su nodo Ceph-admin como usuario «cephadm» y habilite la última versión del repositorio Ceph yum. Al momento de escribir este artículo, Mimic es la última versión de Ceph,
[[email protected] ~]$ sudo rpm -Uvh https://download.ceph.com/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm
Habilite el repositorio EPEL también,
[[email protected] ~]$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Instale la utilidad Ceph-deploy usando el siguiente comando yum,
[[email protected] ~]$ sudo yum update -y && sudo yum install ceph-deploy python2-pip -y
Crea un directorio con el nombre “ceph_cluster“, este directorio tendrá todas las configuraciones de clúster
[[email protected] ~]$ mkdir ceph_cluster [[email protected] ~]$ cd ceph_cluster/ [[email protected] ceph_cluster]$
Ahora genere la configuración del clúster ejecutando la utilidad ceph-deploy en el nodo ceph-admin, estamos registrando el nodo ceph-monitor como nodo monitor en el clúster ceph. La utilidad Ceph-deploy también generará «ceph.conf” en el directorio de trabajo actual.
[[email protected] ceph_cluster]$ ceph-deploy new ceph-monitor
La salida del comando anterior sería algo como lo siguiente:
Actualice la dirección de red (red pública) según la directiva global en ceph.conf archivo, aquí la red pública es la red en la que los nodos de Ceph se comunicarán entre sí y el cliente externo también usará esta red para acceder al almacenamiento de ceph,
[[email protected] ceph_cluster]$ vi ceph.conf [global] fsid = b1e269f0-03ea-4545-8ffd-4e0f79350900 mon_initial_members = ceph-monitor mon_host = 192.168.1.33 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx public network = 192.168.1.0/24
Guardar y salir del archivo.
Ahora instale ceph en todos los nodos desde el nodo ceph-admin, ejecute el «instalación ceph-deploycomando
[[email protected] ~]$ ceph-deploy install ceph-controller ceph-compute01 ceph-compute02 ceph-monitor
El comando anterior instalará ceph junto con otras dependencias automáticamente en todos los nodos, puede llevar algún tiempo dependiendo de la velocidad de Internet en los nodos de ceph.
Salida de arriba “instalación ceph-deployLa salida del comando sería algo como lo siguiente:
Ejecutar “ceph-deploy mon crear-inicial” desde el nodo ceph-admin, implementará los monitores iniciales y recopilará las claves.
[[email protected] ~]$ cd ceph_cluster/ [[email protected] ceph_cluster]$ ceph-deploy mon create-initial
Ejecutar “administrador de implementación de ceph” para copiar el archivo de configuración del nodo ceph-admin a todos los nodos ceph para que se pueda usar el comando ceph cli sin especificar la dirección del monitor.
[[email protected] ceph_cluster]$ ceph-deploy admin ceph-controller ceph-compute01 ceph-compute02 ceph-monitor
Instala el demonio administrador desde el nodo Ceph-admin en Ceph Compute Nodes (OSD) mediante el siguiente comando
[[email protected] ceph_cluster]$ ceph-deploy mgr create ceph-compute01 ceph-compute02
Paso: 5) Agregar discos OSD al clúster
En mi configuración he adjuntado dos discos /dev/vdb & /dev/vdc en ambos nodos de cómputo, usaré estos cuatro discos de nodos de cómputo como disco OSD.
Verifiquemos si la utilidad ceph-deploy puede ver estos discos o no. Ejecute el “lista de discos ceph-deploy” comando desde el nodo ceph-admin,
[[email protected] ceph_cluster]$ ceph-deploy disk list ceph-compute01 ceph-compute02
Salida del comando anterior:
Nota: Asegúrese de que estos discos no se utilicen en ninguna parte y no contengan ningún dato.
Para limpiar y eliminar datos de los discos, use los siguientes comandos,
[[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute01 /dev/vdb [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute01 /dev/vdc [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute02 /dev/vdb [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute02 /dev/vdc
Ahora marque estos discos como OSD usando los siguientes comandos
[[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdb ceph-compute01 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdc ceph-compute01 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdb ceph-compute02 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdc ceph-compute02
Paso: 6) Verificar el estado del clúster de Ceph
Verifique el estado de su clúster de Ceph usando «salud cefalométrica” & “cefalograma -s“, ejecute estos comandos desde el nodo del monitor
[[email protected] ~]# ceph health HEALTH_OK [[email protected] ~]# [[email protected] ~]# ceph -s cluster: id: 4f41600b-1c5a-4628-a0fc-2d8e7c091aa7 health: HEALTH_OK services: mon: 1 daemons, quorum ceph-monitor mgr: ceph-compute01(active), standbys: ceph-compute02 osd: 4 osds: 4 up, 4 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 4.0 GiB used, 76 GiB / 80 GiB avail pgs: [[email protected] ~]#
Como podemos ver en el resultado anterior, el estado del clúster de ceph está bien y tenemos 4 OSD, todos estos OSD están activos y activos, aparte de esto, podemos ver que tenemos 80 GB de espacio en disco disponible en nuestro clúster.
Esto confirma que hemos instalado y configurado correctamente Ceph Cluster en el sistema CentOS 7. Si estos pasos lo ayudan a instalar ceph en su entorno, comparta sus comentarios y opiniones.
En el próximo artículo, analizaremos cómo asignar almacenamiento en bloque desde el clúster de Ceph a los clientes y veremos cómo el cliente puede acceder al almacenamiento en bloque.