Ceph File System
# Ceph File System

Ceph File System es un sistema de archivos distribuido libre, está diseñado para el uso con gran cantidad de datos, está muy enfocado para el uso con Big Data. Ceph tiene como objetivo ser POSIX-compatible y completamente distribuido sin ningún punto único de fallo. Los datos tienen replicación libre de errores, haciéndolo tolerante de fallos.

Ceph incluye un orquestador (ceph-deploy) para la instalación y la configuración de los monitores y OSD. Los clientes tienen la capacidad de montar el sistema de archivos utilizando el módulo cliente del Linux kernel. El 19 de marzo de 2010, Linus Benedict Torvalds incluyó el cliente Ceph para el Linux kernel 2.6.34. También está disponible un viejo cliente basado en FUSE. Los servidores lo corren como un Unix daemon regular. Ceph soporta las API de Swift (OpenStack) y Amazon (S3).

## Historia

Ceph fue inicialmente creado por Sage Weil (desarrollador del concepto Webring y cofundador de DreamHost) para su doctorado, supervisado por el profesor Scott A. Brandt en la Facultad de Ingeniería Jack Baskin (JBSE) de la Universidad de California en Santa Cruz (UCSC). Luego de la graduación en Otoño de 2007, Sage Weil continuó trabajando sobre Ceph a tiempo completo, al equipo central de desarrollo se incorporaron Yehuda Sadeh Weinraub y Gregory Farnum. En 2012, Weil funda Inktank, para brindar servicios de soporte profesionalizado a los usuarios de Ceph. El equipo central de desarrollo obtuvo un crecimiento importante tras el anuncio de la creación de Inktank.

### Versión Argonaut

El 3 de julio de 2012, el equipo de desarrollo de Ceph liberó la versión Argonaut, la primera versión de Ceph con soporte de larga duración. Esta versión contará solamente con correcciones de estabilidad y actualizaciones de rendimiento, y las nuevas características se implementaran nativamente en las futuras versiones.

## Diseño

Ceph emplea tres tipos diferentes de daemons:

* Monitores de clúster (ceph-mon), mantienen un control de actividad y fallos en los nodos del cluster. Los monitores de Ceph son responsables de la gestión del sistema de almacenamiento mediante copia del mapa del cluster, realizando actualizaciones periódicas en respuesta a cambios en la configuración o cambios en el estado del OSD (falla, recuperación o agregar). Cuando algún OSD es adicionado o falla, los monitores detectan y mantienen el mapa del cluster actualizado. Se le informa al RADOS que hubo un cambio de manera que este mantenga los datos replicados, consistentes y disponibles en el sistema. Ceph usa Paxos, un algoritmo para el consenso distribuido.
* Servidores de metadatos (ceph-mds), almacenan los metadatos de inodos y directorios.
* Dispositivos de Almacenamiento de Objetos (ceph-osds), actualmente es el que almacena el contenido de los archivos. Idealmente, el ceph-osds debería almacenar los datos en un sistema de archivos BTRFS local, pero también pueden utilizarse otros sistemas de archivo local.

Todos los demonios funcionan totalmente distribuidos, y pueden ejecutarse en el mismo ambiente de servidores, mientras los clientes interactuarán directamente entre ellos.

Ceph distribuye los segmentos de los archivos individuales a través de los múltiples nodos para así conseguir un incremento de rendimiento, de manera similar como lo hace el agrupamiento de discos en RAID0 segmenta los datos en las diferentes porciones de múltiples disco duros. Su balanceo de carga es autoadaptable por lo cual soporta la frecuencia de acceso a objetos replicandolos sobre más nodos.

## Etimología

El nombre de "Ceph" deriva de Cephalopoda (una clase biológica de moluscos que incluye al pulpo y a las babosas) y éste del griego antiguo κεφαλή (kephalē), que significa "cabeza". El nombre (enfatizado por el logo) sugiere un comportamiento muy semejante al pulpo y fue elegido por el parentesco del animal con la mascota de la UCSC, una babosa banana llamada "Sammy".

## Incidencias

A lo largo de su historia el Ceph File System, ha presentado una serie de incidencias, de las cuales las más importantes han sido las siguientes:

* El 12 de noviembre fue anunciada la creación de la Ceph Foundation auspiciada y hospedado por la Fundación Linux. Las empresas que inicialmente forman parte de esta nueva fundación son:
   * Amihan Global.
   * Canonical.
   * China Mobile.
   * Digital Ocean.
   * Intel.
   * Organización Europea para la Investigación Nuclear (CERN).
   * OVH Hosting.
   * ProphetStor Data Service.
   * Red Hat.
   * SoftIron
   * SUSE
   * Western Digital
   * XSKY Data Technology
   * ZTE
   * Muchos de estos miembros fundadores ya formaban parte de la Junta Consultiva de la Comunidad Ceph, algo menos formal.
