@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

crear-cluster-proxmox-con-ceph-4

Crear cluster Proxmox con Ceph

Crear cluster Proxmox con Ceph

Seguimos investigando nuevas tecnologías. En este caso he limpiado todo mi laboratorio, no sé si temporalmente, de VMware (¡¡SACRILEGIO!!) para llevarlo a Proxmox con Ceph. Proxmox en su versión 6, que da soporte diferentes funcionalidades muy interesantes y que van mejorando día a día, pudiendo ser una alternativa real y muy poderosa a empresas más contrastadas.

De Proxmox ya hemos hablado alguna vez, hypervisor opensource basado en el sistema operativo Debian + KVM virtualization + Container-based Virtualization. El cual podéis instalar gratuitamente, y que tiene como opción pagar un soporte con acceso a repositorios dedicados y otras ventajas de una suscripción de pago anual.

De lo que no habíamos hablado es de CEPH. Hemos “tocado” en varias entradas GlusterFS, S2D, Datacore,…hoy vamos a por otro tipo de Hyperconvergencia a la que da soporte Proxmox.

¿Qué es Ceph Storage?

URL PROYECTO: https://ceph.com/

Como muchos de los proyectos open, Ceph nació en una universidad, en concreto en la Universidad de California, Santa Cruz. El nombre Ceph proviene de Cephalopod, una clase de moluscos que incluye sepia, pulpo y calamar.

Después de seguir la investigación durante años, montar startups, conseguir inversiones,…les llegó el éxito cuando RedHat les adquirió por 175 millones.

Toda la magia de CEPH se basa en un algoritmo llamado CRUSH (Controlled Replication Under Scalable Hashing) proporcionando almacenamiento basado en objetos, basado en bloques y basado en archivos.

¿Qué diferencia hay entre CEPH y GLUSTERFS?

Ceph es un sistema basado en objetos. Y está especialmente indicado para un acceso rápido de datos no estructurados, que será algo a lo que puede enfrentarse la mayoría de empresas o entornos.

Gluster está pensado para grandes cantidades de datos (ejemplo, entornos de Big Data). Es mucho mejor para el acceso secuencial de datos, donde la velocidad de acceso al dato no es muy importante o fundamental (ejemplo: streaming de vídeo, backups,…)

Aunque ambas soluciones son interesantes, ya que son altamente escalables y tienen grandes posibilidades, dependerá de vuestro uso para elegir entre una u otra.

crear-cluster-proxmox-con-ceph-0

Instalar Proxmox con cluster de dos nodos y storage Ceph RBD

Partimos con la premisa que CEPHFS necesita 3 nodos para trabajar mínimo. Así que lo vamos a configurar pero no es lo ideal para un entorno productivo.

Vamos a partir de dos nodos físicos con las siguientes características:

  • Caja Shuttle
  • Procesador Intel i3
  • Ram 64GB
  • 4 Interfaces de red
  • 16 GB Intel Optanel para instalación Proxmox
  • 240GB SSD
  • 3TB WD RED NAS

Tengo un tercer nodo HP Microserver Gen8, pero no lo voy a añadir al clúster de momento, porque quiero que sean de las mismas características y aún no tengo los discos. Cuando los tenga aprovecharé para hacer una entrada con CEPHFS con 3 nodos.

Ahora os explico como generar un cluster de 2 nodos en Proxmox:

Configuración Clúster Proxmox 2 nodos

Nos conectamos a uno de los host vía HTTPS://IP-HYPERVISOR:8006 –> Iremos al Centro de datos –> Cluster. Pulsamos “Crear Cluster”:

crear-cluster-proxmox-con-ceph-1

Le damos nombre y pulsamos Crear:

crear-cluster-proxmox-con-ceph-2

Se abre un Task viewer que nos da el OK:

crear-cluster-proxmox-con-ceph-3

Ahora pulsamos “Información de la unión”. Son los datos necesarios para unir equipos al clúster de Proxmox:

crear-cluster-proxmox-con-ceph-4

Pulsamos “Copiar información”:

crear-cluster-proxmox-con-ceph-5

Nos vamos a la gestión del nodo 2, o el que queremos unir. Y pulsamos “Unir cluster”:

crear-cluster-proxmox-con-ceph-6

Automáticamente se rellenan los datos que hemos copiado y pulsamos “Unión”:

crear-cluster-proxmox-con-ceph-7

Y volveremos a ver el estado de la tarea:

crear-cluster-proxmox-con-ceph-8

Ahora si accedemos a cualquiera de los hosts, en la sección “Centro de datos” veremos los nodos que componen el clúster:

crear-cluster-proxmox-con-ceph-9

Con esto ya tenemos nuestro cluster Proxmox con 2 nodos creado.

Configurar CEPH en Proxmox

Ahora vamos con el Storage. Vamos a la vista Centro de datos –> Ceph. Hay que instalar los paquetes ceph-nautilus que no vienen preinstalados:

crear-cluster-proxmox-con-ceph-10

Personalmente, es importante lanzar una actualización de sistema antes de empezar a meter paquetes nuevos. Lo hacemos desde la Shell:

apt-get update && apt-get -y dist-upgrade && apt-get remove --purge && apt-get -y autoremove --purge && apt-get clean && apt-get autoclean

crear-cluster-proxmox-con-ceph-12

Adicionalmente, si no tenéis una suscripción habría que editar el fichero “/etc/apt/sources.list” y agregar:

crear-cluster-proxmox-con-ceph-13

Una vez purgado el sistema y colocado el repo necesario. Pulsamos “Start installation”:

crear-cluster-proxmox-con-ceph-11

Pulsamos “Y” y dejamos que se instale:

crear-cluster-proxmox-con-ceph-15

Pulsamos Siguiente:

crear-cluster-proxmox-con-ceph-16

Pulsamos Finalizar. Como veréis nos da los pasos siguientes:

crear-cluster-proxmox-con-ceph-17

Crear Ceph Monitores adicionales en Proxmox

Vamos a uno de los nodos Ceph –> Monitor y pulsamos Crear y agregamos el segundo nodo:

crear-cluster-proxmox-con-ceph-18

Crear Ceph OSD adicionales en Proxmox

Ahora vamos a CEPH –> OSD –> Crear OSD:

crear-cluster-proxmox-con-ceph-19

Y vamos añadiendo los discos que vamos a usar:

crear-cluster-proxmox-con-ceph-20

Veremos en el Task viewer que se generan Volúmenes de storage para CEPH:

crear-cluster-proxmox-con-ceph-21

Tendremos que repetir los pasos por Host y discos:

crear-cluster-proxmox-con-ceph-22

Hasta que veamos algo parecido a esto:

crear-cluster-proxmox-con-ceph-23

Crear Pool en Proxmox Ceph

Ahora generaremos un pool para CEPH. Vamos a CEPH –> Pools –> Crear:

crear-cluster-proxmox-con-ceph-24

Le damos un nombre:

crear-cluster-proxmox-con-ceph-25

Veremos el pool generado:

crear-cluster-proxmox-con-ceph-26

Ahora vamos a Centro de datos –> Almacenamiento –> Agregar:

crear-cluster-proxmox-con-ceph-27

Elegiremos RBD:

crear-cluster-proxmox-con-ceph-28

En Contenido deberemos elegir el tipo de contenido que va a almacenar. En mi caso, tanto Imagen del disco como Contenedores. Le damos un nombre y elegimos el Pool. Marcamos KRBD para soportar múltiples discos y snapshots en LXC:

crear-cluster-proxmox-con-ceph-29

Veremos un nuevo almacenamiento en los hosts:

crear-cluster-proxmox-con-ceph-30

Ya podremos generar nuevos discos sobre el storage CEPH y tendremos métricas de uso:

crear-cluster-proxmox-con-ceph-31

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

implementar-soc-instalacion-suricata-bajo-proxmox-3

Implementar SOC: Instalación Suricata bajo Proxmox

Implementar SOC: Instalación Suricata bajo Proxmox En otras entradas hablamos de lo que es un …

10 comentarios

  1. Hola Raúl.

    Está muy bien tu guía sobre Ceph en Proxmox, pero sólo hablas de la instalación inicial, no sobre cómo actuar ante desastres. Tengo dudas importantes:

    1. Sé que no se deben usar controladoras RAID, pero no entiendo por qué añades en cada nodo discos de diferente tamaño (ignoro cómo gestiona los discos Ceph y tiendo a pensar en RAID).
    2. ¿No es mucho más lenta la lectura y la escritura sobre este sistema que, por ejemplo, sobre un RAID 10 (tenemos instalado Proxmox en local y sólo usamos sistemas de almacenamiento lvm-Thin para MVs y contenedores)?.
    3. Defines como gestor el nodo 1, qué pasaría si este nodo se apaga. ¿Se pueden añadir más gestores en reserva?.
    4. Está muy bien que la información se replique entre los nodos y que, gracias a la HA, las máquinas y contenedores pasen, en caso de fallo, de un nodo a otro. Lo que no sé es:
    a) Cómo sustituir un disco roto (por lo que he leído, no se debe usar controladoras RAID -una pena, por que estas sincronizan por sí mismas los discos-).
    b) Si uno de los nodos se destruye por completo (incendio, robo, …), ¿cómo procederíamos a su sustitución?.

    Usamos Proxmox desde hace varios años, pero siempre en local. Tenemos un buen servidor con varios discos (a 15.000 rpm) en RAID 10).

    He estudiado (y virtualizado en el propio Proxmox) el sistema de almacenamiento iSCSI y, o no lo entiendo, o está orientado a grandes infraestructuras, concretamente:

    – Entiendo que con este sistema aumenta considerablemente la capacidad de procesamiento, ya que se dispone de más procesadores y más RAM al aunar nodos y distribuir sobre ellos las distintas máquinas y contenedores (en mi ejemplo he conseguido que soporte contenedores).
    – Si necesitamos una máquina SAN, esa misma máquina es un problema, ya que si cae, cae todo el sistema. Entiendo que, de alguna manera, deberíamos hacer un cluster de máquinas SAN con replicación (ignoro cómo se hace).
    – Lo correcto sería definir una nueva red, exclusivamente para el tráfico entre los nodos Proxmox y la máquina SAN (o cluster de máquinas SAN). Lo ideal sería usar fibra (algo así como fiber channel) para poder conseguir altas tasas de transferencia (entorno a los 10 Gbps) y si es posible con agregación de enlaces, pero esto haría necesario el uso de, al menos, un switch de fibra y volvemos a lo mismo, lo ideal sería tener al menos dos switches con Spanning Tree habilitado.

    Resumiendo, o bien no me he enterado muy bien (cosa que no descarto), o bien iSCSI está pensado para grandes infraestructuras. Por favor dime si estoy confundido y en qué.

    El sistema ZFS lo descarto por que lo veo similar a Ceph, excepto en la sincronización, donde este último gana por goleada.

    He visto que circulan por la red varios tutoriales y videotutoriales sobre cómo definir sistemas de almacenamiento sobre clusters Proxmox, pero, aparte de la propia documentación de Proxmox, no he visto casi nada sobre cómo sacar un nodo de un cluster y menos aún sobre cómo actuar para sustituir un disco o un nodo completo en caso de desastre. ¿Podrías contar algo sobre esto?

    Gracias por haber hecho este tutorial y espero tu respuesta.

    Saludos.

  2. Hola. Muchas gracias por tu tiempo y compartir todo esto.

    Tengo una pregunta, soy bastante nuevo en este y quizá parezca una chorrada, si es así te pido disculpas de antemano.

    Tengo un microserver Proliant Gen8 con 3 discos de 4TB y un disco de 2TB como almacenamiento. Además, el SO, Proxmox, corre en un unidad SSD de 250Gb.

    Hasta ahora siempre he usado en un único nodo varias VM (3 tengo en concreto) para correr diferentes servicios.

    El tema es que quiero poder acceder a las opciones de cluster y HA, replicas, etc, y todo lo que veo es que en una máquina virtualizan proxmox para generar otros nodos. Al final me parece que es absurdo y quiero pensar que es como muestra y no es para producción. Por tanto, mi pregunta, ¿estoy en lo correcto? PAra crear varios nodos y poder tener un verdadero cluster en producción con CEPHS, HA, Replicas, etc, ¿hay que tener varias máquinas físicas? O, por el contrario, en una misma máquina, con los 4 discos puedo crear varios nodos y poder hacer uso de esos servicios.

    El proliant tiene un conector esclusivo para iLo y dos conectores NIC.

    Muchas gracias de antemano

    • Hola Joseba,

      Puedes generar máquinas virtuales en modo Nested de Proxmox (un proxmox sobre otro proxmox). Pero no es aconsejable para un entorno de Producción, porque te puede dar problemas y de rendimiento no creo que te funcione parecido.

      Pero para hacer una prueba puedes hacerlo sin problema. Muchos labs de los que genero en el blog los hago de esta forma tanto con VMware como con otras tecnologías.

      Un saludo

  3. Hola buenos dias.

    Tengo una consulta estoy montando la infraestructura de proxmox. y al tratar de crear el OSD el mismo nunca termina y me da un mensaje de error
    HEALTH_WARN OSD count 0 <osd_pool_default_size 3. estoy tratando de agregar un disco de 10 TB desde una SAN y el proceso lleva ya 3 dias y no avanza

  4. Pablo Martinez

    Alguien me pude explicar como se calcula el espacio total de disco disponible (no total) con ceph

    os pongo un ejemplo,
    tengo 3 servidores con 5 discos de 2T
    Al crear los OSD , sale que tengo un total de 28T, hasta aqui todo correcto, 15 discos X 2T =30T
    Aqui viene la dudad e como arma el cluster ceph,
    Al crear el Pool, de 3×2 (Size=3 , Min Size=2) , da un pool de 8,6T
    Si creo un Pool, de 2×2 (Size=2, Min Size=2), da un pool de 12,94T

    Me he leido toda la documentacion oficial de ceph y no he visto en ningun sitio como calcular el tamaño del pool en relacion a la cantidad y capacidad de discos.
    Particularmente lo que se pierde de espacio me parece una barbaridad, entiendo que se pierda en una configuracion 3×2 un tercio del espacio total de los 28T, ya que el cluster como minimo necesita 2 nodos para funcionar pero la realidad de esto es que se com 3 tercios del total y no entiendo porque.
    Alguien podria sacarme esta duda??

    Gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

veinte − catorce =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu