Ceph: Parte 1

Serie de notas, que explican nuestro deploy de ceph, desde el concepto a producción

En mi actual trabajo, nos propusimos cambiar nuestro almacenamiento, de usar el antiguo y poco práctico (detallaré este punto luego) File Storage, a uno que nos permitiese tener una mayor abstracción de dónde y cómo guardar y obtener los documentos, archivos y proximamente objetos.

¿Por qué poco práctico?

Ya que no conozco los números, explicaré de forma que se pueda entender la magna cantidad de lo que tratamos. Es un servicio de validación de huella, el cual cada una de las transacciones son guardadas, tanto su imagen como su auditoría de esa validación. Por lo cual, si todos los chilenos validaran su huella durante un día, tendriamos 17 millones de huellas que almacenar, y en cuanto a todos los archivos que se generan por una transacción son alrededor de 4 MB, osea por un día ya tenemos 17.000.000 * 0.4 = 6.8 GiB , además por legislación chilena, debemos guardar estos documentos por 5 años. Tendriamos ~ 12 TB en sólo validación de huellas, sin contar los metadatos y documentos extras generados que no están estimados en el cálculo.

Los documentos son guardados en File System, y para rastrear efectivamente dónde se encuentra, la ruta se almacena en BD, de esta forma sabemos donde está su huella y documentos. Esto nos genera ciertas situaciones que tomar en cuenta:

  1. Meticuloso mantenimiento sin comprometer disponibilidad de archivos.
  2. Poca flexibilidad a la hora de expandir capacidad de almacenamiento.
  3. Los respaldos son realizados de forma manual, y si se corrompe un disco; los datos se pierde.

Primera investigación.

Habiamos escuchado de OpenStack Swift, el componente de Object Storage de OpenStack, la verdad fue la primera opción y poca evaluación hicimos, simplemente decidí realizar prueba de conceptos y levantar un lab en vagrant. Luego de investigar un poco, me dí cuenta que necesitaba OpenStack Keystone (administrador de credenciales) para levantar de forma decente Swift, leí un par de blogs que explicaba el uso de este storage sin Keystone, pero si no estaba documentada de forma oficial preferí no continuar, simplemente por su falta de “oficialidad”.

Luego de reflexionar el tema con el equipo, propuse Ceph, simplemente lo conocía por nombre y poco leí de él en previos tiempos. Investigué primero, quienes lo usaban, y me llevé la grata sorpresa que existe un stack de implementación de OpenStack + Ceph, el cual indicaría que estaba en buen camino, además encontré que Intel lo utiliza como Storage, el Cern lo implementó el 2013, Suse Enterprise lo tiene como servicio de almacenamiento, DreamHost como solución de Cloud Storage, los grandes estaban en el correcto y al parecer nosotros ibamos en la misma dirección.

¿Qué necesitabamos de Ceph o Swift?

Como una capa de abstracción y de almacenamiento de Objetos, usamos Amazon S3, por lo cual ya tenemos experiencia en este servicio y en su API, queriamos algo similar.

Necesitamos abstraer toda la complejidad de File System a una API, tanto a Dev y Ops se les simplifique la vida de estar tratando con el sistema de archivo, ambos cumplen la misma función.

Decantamos por Ceph, simplemente por su sencillez de implementación y conceptos y que claro, queremos ser los primeros en Chile de utilizar una herramienta como esta para nuestras operaciones.

Bastante breve esta primera parte, pero me es importante dar a conocer porque nos embarcamos en implementar nuestra solución de Object Storage, que a primera vista parece ser redundante, ya que existen soluciones que cumple con la creación de un arreglo de discos, como el caso de Raid, por mencionar. Queremos ir más allá y justamente creemos que es la solución no sólo para una empresa con la magna cantidad de archivos que genera, si no que también, una forma de simplicar la administración y complejidad de escalamiento del almacenamiento de una empresa. Claro, hacer esto es facil cuando tienes los recursos, sobre todo tiempo, pero no es en vano.

Es la primera parte de una serie de notas que haré respecto a la implementación que llevo a cabo sobre CEPH, desde las pruebas de conceptos hasta producción.

Por lo demás, te recomiendo que leas los siguientes enlaces, si decides por Ceph:

Ceph Intro:

Sébastien Han:

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.