SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
Almacenamiento de objetos
en Ceph y su API S3
Javier M. Mellid @ Igalia
● ¿Quién soy?
– Javier
– Igalia
● Cloud & Virtualization team
– Ing. Informático
● software developer, networking, distributed systems…
– Social media
● twitter: @javimunhoz
● LinkedIn: linkedin/in/javiermunhoz
● blog: javiermunhoz.com/blog
● La estructura de la charla
– Ceph en 20 minutos
– La API S3 en 6 transparencias
– Dos casos de uso basados en Ceph y RGW/S3
– Instalando y probando Ceph fácilmente
– Algunos comandos habituales en Ceph
– Ceph RGW S3 con Apache Libcloud, Ansible y Minio
– Almacenamiento hyperescalable y diferenciación
– Q&A
Ceph en 20 minutos
● ¿Qué es Ceph?
● Los bloques fundamentales
● Principales abstracciones lógicas
● Arquitectura
● Extensiones
● ¿Qué es Ceph?
– Una solución de almacenamiento Open Source
distribuído, escalable y tolerante a fallos
– La magia detrás de Ceph
● Almacenamiento basado en objetos
● CRUSH
– Sistema de ficheros, dispositivos de bloques y
objetos de alto nivel (ej. API S3) son interfaces
sobre objetos nativos
● ¿Qué es Ceph?
– Cephalopd
– Sage Weil (Universidad de California, Santa Cruz)
– Red Hat compra Inktank en 2014
– En 2015 se forma el ‘Ceph Community Advisory Board’
(Canonical, CERN, Cisco, Fujitsu, Intel, Red Hat, SanDisk
y SUSE)
– ‘Releases’
● Argonaut, Bobtail, Cuttlefish…
● Jewel (v10.2.0), Kraken (v11.2.0) and Luminous (v12.2.0)
● ¿Qué desafíos estamos tratando de resolver?
– El almacenamiento masivo de datos
– Un crecimiento en hyperescala
– Arquitecturas de almacenamiento tradicionales rígidas y poco flexibles
● ¿Quién tiene este problema?
– Actores de nube
● Centros Científicos (ej. CERN)
● Las llamadas ‘GAFA’ (Google, Apple, Facebook, Amazon)
● Universidades (ej. OpenStack)
● Proveedores Cloud independientes
● ...
● ¿En qué magnitudes nos estamos moviendo?
https://www.eetimes.com/author.asp?section_id=36&doc_id=1330462
● ¿En qué magnitudes nos estamos moviendo?
https://www.eetimes.com/author.asp?section_id=36&doc_id=1330462
● ¿En qué magnitudes nos estamos moviendo?
https://www.eetimes.com/author.asp?section_id=36&doc_id=1330462
● ¿A qué desafíos técnicos nos enfrentamos?
– Arquitecturas de almacenamiento tradicionales
● No gestionan de forma inteligente los metadatos
● Usan y mantienen tablas de búsqueda para gestionar los
metadatos
● Los metadatos son datos que permiten conocer donde
se almacenan los datos
● Para sistemas de almacenamiento modestos puede no
apreciarse problemas de rendimiento pero esto limita la
escalabilidad del sistema
● ¿Cómo trata de resolver estos desafíos Ceph?
– A través de una arquitectura de almacenamiento de
datos basada en objetos
– Arquitectura diseñada para retener cantidades
masivas de datos
– Objeto
● datos, metadatos y un identificador global único
● ¿Cómo trata de resolver estos desafíos Ceph?
– Ceph emplea la abstracción de objeto como un bloque de
construcción
– Cualquier tipo de dato (bloque, fichero, objeto, etc) se almacena en
forma de objeto en el cluster
– Solución a las necesidades actuales y futuras de almacenamiento no
estructurado
– Ceph replica estos objetos nativos para mejorar la disponibilidad y
confiabilidad de los datos
– El almacenamiento de los objetos es flexible y no está
predeterminado a nivel físico
– Este diseño permite escalar linealmente del petabyte al exabyte
● ¿Cómo trata de resolver estos desafíos Ceph?
– Ceph no trata de buscar la localización de un objeto a
través de tablas y estructuras intermedias. Ceph
computa esta localización a través de CRUSH
– CRUSH es un algoritmo y un conjunto de reglas que
se aplican a un estado conocido del cluster
– Controlled Replication Under Scalable Hashing
– CRUSH es consciente de la geometría del cluster y
gestiona las zonas de fallo a través de su mapa de
forma autónoma
● Los bloques fundamentales
– Los ‘MON’
● Monitores
● Gestionan los mapa/s del cluster (CRUSH)
● Un cluster suele tener más de un monitor. En este caso
llegan a consenso a través de Paxos
● Mantienen un diálogo con todos los componentes que
necesiten conocer la geometría del cluster y sus
actualizaciones
● Los bloques fundamentales
– Los ‘OSD’
● ‘Object Storage Device’
● Su responsabilidad principal es almacenar los bloques de
datos y los metadatos
● Para garantizar la disponibilidad por replicación se necesitan
3 replicas
● Mantienen un diálogo entre ellos para acordar su estado de
replicación, comprobar que sus datos no están corruptos, etc.
● Mantienen un diálogo con los monitores para actualizar la
geometría del cluster
(fuente: http://javiermunhoz.com/blog/2016/04/30/scalable-placement-of-replicated-data-in-ceph.html)
● Principales abstracciones lógicas
– El ‘pool’
● Particiona el almacenamiento global en ‘pools’
● Un ‘pool’ es una división lógica
● Sobre esta abstracción se aplican las políticas de
replicación, el control de acceso, etc
● Ceph crea un ‘pool’ por defecto tras la instalación
● Principales abstracciones lógicas
– El ‘placement group’ (PG)
● Grupo de colocación
● Cada objeto es asignado a un PG durante su distribución
● El sistema los genera automaticamente
● Principales abstracciones lógicas
– Un ejemplo
●
http://javiermunhoz.com/blog/2016/04/30/scalable-placement-of-replicated-data-in-ceph.html
http://javiermunhoz.com/blog/2016/04/30/scalable-placement-of-replicated-data-in-ceph.html
● Reliable Autonomic Distributed Object Store (RADOS)
– Denominado también ‘Ceph storage cluster’
– Características
● Disponibilidad
● Confiabilidad
● autogestionado
● ‘self-healing’
● ningún punto único de fallo
● Extensiones y Aplicaciones sobre RADOS
– Librados
● Paradigma cliente-cluster
– Ceph FileSystem (CephFS)
● Requiere un servidor de metadatos (MDS)
– Rados Block Device (RBD)
● Dispositivos de bloque (Block Device)
– Object Gateway (RadosGW or RGW)
● ‘Traduce’ los objetos nativos de Ceph a objetos S3/Swift
● La arquitectura
● OpenStack con Ceph como ‘backend’ de almacenamiento
La API S3 en 6 transparencias
● ¿Qué es Amazon S3?
– Simple Storage Service (S3)
– Almacenamiento para Internet
– Web service interface (REST, SOAP)
– Permite almacenar objetos (1 byte a 5 GB)
– Los objetos contienen datos y metadatos
– Los objetos son almacenados y recuperados usando
una clave (key)
– Los objetos son accesibles vía http, bittorrent, etc.
● ¿Qué es Amazon S3?
– Todos los objetos son almacenados en ‘buckets’
– Un bucket es un contenedor para objetos
● mybucket.s3.amazonaws.com
– Los buckets son útiles para particionar a nivel raíz
– Una ‘key’ (clave) es el identificador único para un
objeto dentro de un ‘bucket’
– Ejemplo:
● http://mybucket.s3.amazonaws.com/myhome.html
● ¿Qué es Amazon S3?
– Ventajas
● Escalable
● Alta disponibilidad
● Almacenamiento “ilimitado”
● Económico
● Accesible desde cualquier localización
● ...
● ¿Qué es Amazon S3?
– Principales casos de uso
● Website estáticos
● Media storage (videos, fotos, etc)
● Backups
● Almacenamiento intermedio (transcoding, etc)
● ...
● ¿Qué es Amazon S3?
– La API S3
● http://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html
● Algunas operaciones en ‘buckets’ y ‘objects’
– CRUD
– Casos de uso
● autenticación, ‘browser uploads’, analíticas, ciclos de vida,
métricas, replicación, ‘tagging’, website support, logging,
versionado, ‘multipart uploads’, ‘requestPayment’, ‘torrent
support’, ‘copy-part support’...
● ¿Qué es Amazon S3?
– Un ejemplo de llamada a la API S3 (GET Object)
● Obtiene los primeros 10 bytes de un objeto (test.txt) en el
bucket ‘examplebucket’
GET /test.txt HTTP/1.1
Host: examplebucket.s3.amazonaws.com
x-amz-date:20130524T000000Z
Authorization: SignatureToBeCalculated
Range: bytes=0-9
x-amz-content-
sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20130524T000000Z
Dos casos de uso de almacenamiento
basado en Ceph / RadosGW / S3
https://www.slideshare.net/jenshadlich/ceph-object-storage-at-spreadshirt-49422450
Clientes
Nextcloud
RGW
Ceph cluster
HTTP/S
S3
librados
https://github.com/tigerlinux/tigerlinux-extra-recipes/tree/master/recipes/misc/ceph-owncloud-lab
● Sincronizando y
compartiendo ficheros
Instalando y probando Ceph fácilmente
● La forma tradicional
– http://docs.ceph.com/docs/master/start/
– Tres pasos
● prevuelo (requisitos)
● cluster de almacenamiento
● los clientes (bloque, filesystem, etc)
● Archivos e imágenes de Docker para ejecutar
Ceph en contenedores
– https://github.com/ceph/ceph-dock
– https://hub.docker.com/r/ceph/demo/
– docker run -d –net=host -v /etc/ceph:/etc/ceph -e
MON_IP=192.168.0.20 -e
CEPH_PUBLIC_NETWORK=192.168.0.0/24
ceph/demo
● PetaSAN (www.petasan.org)
● PetaSAN (www.petasan.org)
Algunos comandos habituales en Ceph
● pool quotas
– ceph osd pool set-quota {pool-name} [max_objects
{obj-count}] [max_bytes {bytes}]
– $ ceph osd pool set-quota data max_objects 10000
● $ rados df
● Número de replicas
– $ ceph osd pool set data size 3
– $ ceph osd pool set data min_size 2
● Estado del cluster
● RADOS Block Devices (RBD)
– $ rbd create [image name] --size [size in MB]
– $ rbd --pool mypool create my-image --size 10
– $ rbd ls
– Map & Mount
● $ sudo modprobe rbd
● $ rbd map my-image –name client.admin -m node1
● $ sudo mkfs.ext4 -m0 /dev/rbd/rbd/my-image
● $ sudo mkdir /mnt/my-ceph-block-device
● $ sudo mount /dev/rbd/rbd/my-image /mnt/my-ceph-block-device
Ceph RGW S3 con Apache Libcloud,
Ansible y Minio
● Apache Libcloud
– libcloud.apache.org
– Librería de Python para interactuar con
proveedores de servicio de cloud
– API unificada
– ‘One interface to rule them all’
● Ceph RGW storage driver
– upstream en Apache Libcloud 1.0.0
http://javiermunhoz.com/blog/2016/05/17/the-ceph-rgw-storage-driver-goes-upstream-in-libcloud.html
● Minio client
– github.com/minio/mc
– cliente S3 ligero
– ls, cat, cp, diff, etc
http://javiermunhoz.com/blog/2016/12/16/ceph-rgw-aws4-presigned-urls-working-with-the-minio-cloud-client.html
● Ansible
– www.ansible.com
– motor de automatización
● aprovisionamiento
● gestión de la configuración
● despliegue de aplicaciones
● orquestación
● ...
● Ansible
– Soporte para RGW upstream
– Parte del módulo core de Amazon S3
http://javiermunhoz.com/blog/2016/06/21/ansible-aws-s3-core-module-now-supports-ceph-rgw-s3.html
Comentarios en almacenamiento
hyperescalable y diferenciación
● La capa de valor de almacenamiento
– diferenciación, funcionalidades, etc. (RGW/S3)
● Estrategia de líder frente a perseguidor
– innovación vs interoperabilidad
– cobertura de RGW/S3 vs AWS/S3
● Riesgos
– obsolescencia/sustitución de funcionalides
● ej. AWS2/AWS4
● Innovación
● ej. ‘Smart Buckets’
Ceph es comunidad!
– ceph.com
– ceph.com/community
– ceph.com/get-involved
– @ceph (twitter.com/ceph)
Gracias!
Q&A

Contenu connexe

Tendances

Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup AppliancesDeep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup AppliancesVeritas Technologies LLC
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a AnsibleOsvaldo
 
Files and directories in Linux 6
Files and directories  in Linux 6Files and directories  in Linux 6
Files and directories in Linux 6Meenakshi Paul
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewMaría Angélica Bracho
 
An Introduction to Linux
An Introduction to LinuxAn Introduction to Linux
An Introduction to Linuxanandvaidya
 
Boosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringBoosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringShapeBlue
 
Secure container: Kata container and gVisor
Secure container: Kata container and gVisorSecure container: Kata container and gVisor
Secure container: Kata container and gVisorChing-Hsuan Yen
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentationnishantsri
 
Tổng quan công nghệ Net backup - Phần 2
Tổng quan công nghệ Net backup - Phần 2Tổng quan công nghệ Net backup - Phần 2
Tổng quan công nghệ Net backup - Phần 2NguyenDat Quoc
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfssuser1490e8
 
Everything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesEverything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesThe {code} Team
 

Tendances (20)

Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup AppliancesDeep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a Ansible
 
Files and directories in Linux 6
Files and directories  in Linux 6Files and directories  in Linux 6
Files and directories in Linux 6
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
 
An Introduction to Linux
An Introduction to LinuxAn Introduction to Linux
An Introduction to Linux
 
Boosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringBoosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uring
 
Linux introduction
Linux introductionLinux introduction
Linux introduction
 
Meetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOpsMeetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOps
 
Kubernetes 1001
Kubernetes 1001Kubernetes 1001
Kubernetes 1001
 
Secure container: Kata container and gVisor
Secure container: Kata container and gVisorSecure container: Kata container and gVisor
Secure container: Kata container and gVisor
 
Automating with Ansible
Automating with AnsibleAutomating with Ansible
Automating with Ansible
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentation
 
Openstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetupOpenstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetup
 
Escalabilidad con SCRUM
Escalabilidad con SCRUMEscalabilidad con SCRUM
Escalabilidad con SCRUM
 
Tổng quan công nghệ Net backup - Phần 2
Tổng quan công nghệ Net backup - Phần 2Tổng quan công nghệ Net backup - Phần 2
Tổng quan công nghệ Net backup - Phần 2
 
Metodologias Agiles: Scrum
Metodologias Agiles: ScrumMetodologias Agiles: Scrum
Metodologias Agiles: Scrum
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Everything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesEverything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in Kubernetes
 

Similaire à Almacenamiento de objetos en Ceph y su API S3 (LibreCon 2017)

Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...Juan Carlos Olivares Rojas
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadÓscar De Arriba González
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web EscalableAlex Puig
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerNelson Calero
 
High availabitily & Clusters #mootes15
High availabitily & Clusters #mootes15High availabitily & Clusters #mootes15
High availabitily & Clusters #mootes15Sara Arjona Téllez
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
 
MongoDB Atlas: La mejor forma de utilizar MongoDB en la nube 1
MongoDB Atlas: La mejor forma de utilizar  MongoDB en la nube 1MongoDB Atlas: La mejor forma de utilizar  MongoDB en la nube 1
MongoDB Atlas: La mejor forma de utilizar MongoDB en la nube 1MongoDB
 
Modernizando el rol de un Data Lake en una arquitectura Data Fabric
Modernizando el rol de un Data Lake en una arquitectura Data FabricModernizando el rol de un Data Lake en una arquitectura Data Fabric
Modernizando el rol de un Data Lake en una arquitectura Data FabricDenodo
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadIván Campaña Naranjo
 
Bases de Datos Libres desde 40.000 pies de altura
Bases de Datos Libres desde 40.000 pies de alturaBases de Datos Libres desde 40.000 pies de altura
Bases de Datos Libres desde 40.000 pies de alturaCarlos Gustavo Ruiz
 
Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)barcelonajug
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Elasticsearch 101 (Part 1)
Elasticsearch 101 (Part 1)Elasticsearch 101 (Part 1)
Elasticsearch 101 (Part 1)Raimon Bosch
 
Construyendo una nube con OpenStack
Construyendo una nube con OpenStackConstruyendo una nube con OpenStack
Construyendo una nube con OpenStackLibreCon
 

Similaire à Almacenamiento de objetos en Ceph y su API S3 (LibreCon 2017) (20)

Foro de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondoForo de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondo
 
"Cloudificación" de servicios: retos y oportunidades
"Cloudificación" de servicios: retos y oportunidades"Cloudificación" de servicios: retos y oportunidades
"Cloudificación" de servicios: retos y oportunidades
 
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web Escalable
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con Pacemaker
 
High availabitily & Clusters #mootes15
High availabitily & Clusters #mootes15High availabitily & Clusters #mootes15
High availabitily & Clusters #mootes15
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
 
MongoDB Atlas: La mejor forma de utilizar MongoDB en la nube 1
MongoDB Atlas: La mejor forma de utilizar  MongoDB en la nube 1MongoDB Atlas: La mejor forma de utilizar  MongoDB en la nube 1
MongoDB Atlas: La mejor forma de utilizar MongoDB en la nube 1
 
Modernizando el rol de un Data Lake en una arquitectura Data Fabric
Modernizando el rol de un Data Lake en una arquitectura Data FabricModernizando el rol de un Data Lake en una arquitectura Data Fabric
Modernizando el rol de un Data Lake en una arquitectura Data Fabric
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
 
Bases de Datos Libres desde 40.000 pies de altura
Bases de Datos Libres desde 40.000 pies de alturaBases de Datos Libres desde 40.000 pies de altura
Bases de Datos Libres desde 40.000 pies de altura
 
Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
 
Apache Mesos
Apache MesosApache Mesos
Apache Mesos
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Elasticsearch 101 (Part 1)
Elasticsearch 101 (Part 1)Elasticsearch 101 (Part 1)
Elasticsearch 101 (Part 1)
 
Construyendo una nube con OpenStack
Construyendo una nube con OpenStackConstruyendo una nube con OpenStack
Construyendo una nube con OpenStack
 

Plus de Igalia

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEIgalia
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesIgalia
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceIgalia
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfIgalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JITIgalia
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!Igalia
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerIgalia
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in MesaIgalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIgalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera LinuxIgalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVMIgalia
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsIgalia
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesIgalia
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSIgalia
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webIgalia
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersIgalia
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on RaspberryIgalia
 

Plus de Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Dernier

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Dernier (15)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Almacenamiento de objetos en Ceph y su API S3 (LibreCon 2017)

  • 1. Almacenamiento de objetos en Ceph y su API S3 Javier M. Mellid @ Igalia
  • 2. ● ¿Quién soy? – Javier – Igalia ● Cloud & Virtualization team – Ing. Informático ● software developer, networking, distributed systems… – Social media ● twitter: @javimunhoz ● LinkedIn: linkedin/in/javiermunhoz ● blog: javiermunhoz.com/blog
  • 3. ● La estructura de la charla – Ceph en 20 minutos – La API S3 en 6 transparencias – Dos casos de uso basados en Ceph y RGW/S3 – Instalando y probando Ceph fácilmente – Algunos comandos habituales en Ceph – Ceph RGW S3 con Apache Libcloud, Ansible y Minio – Almacenamiento hyperescalable y diferenciación – Q&A
  • 4. Ceph en 20 minutos
  • 5. ● ¿Qué es Ceph? ● Los bloques fundamentales ● Principales abstracciones lógicas ● Arquitectura ● Extensiones
  • 6. ● ¿Qué es Ceph? – Una solución de almacenamiento Open Source distribuído, escalable y tolerante a fallos – La magia detrás de Ceph ● Almacenamiento basado en objetos ● CRUSH – Sistema de ficheros, dispositivos de bloques y objetos de alto nivel (ej. API S3) son interfaces sobre objetos nativos
  • 7. ● ¿Qué es Ceph? – Cephalopd – Sage Weil (Universidad de California, Santa Cruz) – Red Hat compra Inktank en 2014 – En 2015 se forma el ‘Ceph Community Advisory Board’ (Canonical, CERN, Cisco, Fujitsu, Intel, Red Hat, SanDisk y SUSE) – ‘Releases’ ● Argonaut, Bobtail, Cuttlefish… ● Jewel (v10.2.0), Kraken (v11.2.0) and Luminous (v12.2.0)
  • 8. ● ¿Qué desafíos estamos tratando de resolver? – El almacenamiento masivo de datos – Un crecimiento en hyperescala – Arquitecturas de almacenamiento tradicionales rígidas y poco flexibles ● ¿Quién tiene este problema? – Actores de nube ● Centros Científicos (ej. CERN) ● Las llamadas ‘GAFA’ (Google, Apple, Facebook, Amazon) ● Universidades (ej. OpenStack) ● Proveedores Cloud independientes ● ...
  • 9. ● ¿En qué magnitudes nos estamos moviendo? https://www.eetimes.com/author.asp?section_id=36&doc_id=1330462
  • 10. ● ¿En qué magnitudes nos estamos moviendo? https://www.eetimes.com/author.asp?section_id=36&doc_id=1330462
  • 11. ● ¿En qué magnitudes nos estamos moviendo? https://www.eetimes.com/author.asp?section_id=36&doc_id=1330462
  • 12. ● ¿A qué desafíos técnicos nos enfrentamos? – Arquitecturas de almacenamiento tradicionales ● No gestionan de forma inteligente los metadatos ● Usan y mantienen tablas de búsqueda para gestionar los metadatos ● Los metadatos son datos que permiten conocer donde se almacenan los datos ● Para sistemas de almacenamiento modestos puede no apreciarse problemas de rendimiento pero esto limita la escalabilidad del sistema
  • 13. ● ¿Cómo trata de resolver estos desafíos Ceph? – A través de una arquitectura de almacenamiento de datos basada en objetos – Arquitectura diseñada para retener cantidades masivas de datos – Objeto ● datos, metadatos y un identificador global único
  • 14. ● ¿Cómo trata de resolver estos desafíos Ceph? – Ceph emplea la abstracción de objeto como un bloque de construcción – Cualquier tipo de dato (bloque, fichero, objeto, etc) se almacena en forma de objeto en el cluster – Solución a las necesidades actuales y futuras de almacenamiento no estructurado – Ceph replica estos objetos nativos para mejorar la disponibilidad y confiabilidad de los datos – El almacenamiento de los objetos es flexible y no está predeterminado a nivel físico – Este diseño permite escalar linealmente del petabyte al exabyte
  • 15. ● ¿Cómo trata de resolver estos desafíos Ceph? – Ceph no trata de buscar la localización de un objeto a través de tablas y estructuras intermedias. Ceph computa esta localización a través de CRUSH – CRUSH es un algoritmo y un conjunto de reglas que se aplican a un estado conocido del cluster – Controlled Replication Under Scalable Hashing – CRUSH es consciente de la geometría del cluster y gestiona las zonas de fallo a través de su mapa de forma autónoma
  • 16. ● Los bloques fundamentales – Los ‘MON’ ● Monitores ● Gestionan los mapa/s del cluster (CRUSH) ● Un cluster suele tener más de un monitor. En este caso llegan a consenso a través de Paxos ● Mantienen un diálogo con todos los componentes que necesiten conocer la geometría del cluster y sus actualizaciones
  • 17. ● Los bloques fundamentales – Los ‘OSD’ ● ‘Object Storage Device’ ● Su responsabilidad principal es almacenar los bloques de datos y los metadatos ● Para garantizar la disponibilidad por replicación se necesitan 3 replicas ● Mantienen un diálogo entre ellos para acordar su estado de replicación, comprobar que sus datos no están corruptos, etc. ● Mantienen un diálogo con los monitores para actualizar la geometría del cluster
  • 19. ● Principales abstracciones lógicas – El ‘pool’ ● Particiona el almacenamiento global en ‘pools’ ● Un ‘pool’ es una división lógica ● Sobre esta abstracción se aplican las políticas de replicación, el control de acceso, etc ● Ceph crea un ‘pool’ por defecto tras la instalación
  • 20. ● Principales abstracciones lógicas – El ‘placement group’ (PG) ● Grupo de colocación ● Cada objeto es asignado a un PG durante su distribución ● El sistema los genera automaticamente
  • 21. ● Principales abstracciones lógicas – Un ejemplo ● http://javiermunhoz.com/blog/2016/04/30/scalable-placement-of-replicated-data-in-ceph.html
  • 23. ● Reliable Autonomic Distributed Object Store (RADOS) – Denominado también ‘Ceph storage cluster’ – Características ● Disponibilidad ● Confiabilidad ● autogestionado ● ‘self-healing’ ● ningún punto único de fallo
  • 24. ● Extensiones y Aplicaciones sobre RADOS – Librados ● Paradigma cliente-cluster – Ceph FileSystem (CephFS) ● Requiere un servidor de metadatos (MDS) – Rados Block Device (RBD) ● Dispositivos de bloque (Block Device) – Object Gateway (RadosGW or RGW) ● ‘Traduce’ los objetos nativos de Ceph a objetos S3/Swift
  • 26. ● OpenStack con Ceph como ‘backend’ de almacenamiento
  • 27.
  • 28. La API S3 en 6 transparencias
  • 29. ● ¿Qué es Amazon S3? – Simple Storage Service (S3) – Almacenamiento para Internet – Web service interface (REST, SOAP) – Permite almacenar objetos (1 byte a 5 GB) – Los objetos contienen datos y metadatos – Los objetos son almacenados y recuperados usando una clave (key) – Los objetos son accesibles vía http, bittorrent, etc.
  • 30. ● ¿Qué es Amazon S3? – Todos los objetos son almacenados en ‘buckets’ – Un bucket es un contenedor para objetos ● mybucket.s3.amazonaws.com – Los buckets son útiles para particionar a nivel raíz – Una ‘key’ (clave) es el identificador único para un objeto dentro de un ‘bucket’ – Ejemplo: ● http://mybucket.s3.amazonaws.com/myhome.html
  • 31. ● ¿Qué es Amazon S3? – Ventajas ● Escalable ● Alta disponibilidad ● Almacenamiento “ilimitado” ● Económico ● Accesible desde cualquier localización ● ...
  • 32. ● ¿Qué es Amazon S3? – Principales casos de uso ● Website estáticos ● Media storage (videos, fotos, etc) ● Backups ● Almacenamiento intermedio (transcoding, etc) ● ...
  • 33. ● ¿Qué es Amazon S3? – La API S3 ● http://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html ● Algunas operaciones en ‘buckets’ y ‘objects’ – CRUD – Casos de uso ● autenticación, ‘browser uploads’, analíticas, ciclos de vida, métricas, replicación, ‘tagging’, website support, logging, versionado, ‘multipart uploads’, ‘requestPayment’, ‘torrent support’, ‘copy-part support’...
  • 34. ● ¿Qué es Amazon S3? – Un ejemplo de llamada a la API S3 (GET Object) ● Obtiene los primeros 10 bytes de un objeto (test.txt) en el bucket ‘examplebucket’ GET /test.txt HTTP/1.1 Host: examplebucket.s3.amazonaws.com x-amz-date:20130524T000000Z Authorization: SignatureToBeCalculated Range: bytes=0-9 x-amz-content- sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 x-amz-date: 20130524T000000Z
  • 35. Dos casos de uso de almacenamiento basado en Ceph / RadosGW / S3
  • 38. Instalando y probando Ceph fácilmente
  • 39. ● La forma tradicional – http://docs.ceph.com/docs/master/start/ – Tres pasos ● prevuelo (requisitos) ● cluster de almacenamiento ● los clientes (bloque, filesystem, etc)
  • 40. ● Archivos e imágenes de Docker para ejecutar Ceph en contenedores – https://github.com/ceph/ceph-dock – https://hub.docker.com/r/ceph/demo/ – docker run -d –net=host -v /etc/ceph:/etc/ceph -e MON_IP=192.168.0.20 -e CEPH_PUBLIC_NETWORK=192.168.0.0/24 ceph/demo
  • 44.
  • 45. ● pool quotas – ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}] – $ ceph osd pool set-quota data max_objects 10000
  • 47. ● Número de replicas – $ ceph osd pool set data size 3 – $ ceph osd pool set data min_size 2
  • 48. ● Estado del cluster
  • 49. ● RADOS Block Devices (RBD) – $ rbd create [image name] --size [size in MB] – $ rbd --pool mypool create my-image --size 10 – $ rbd ls – Map & Mount ● $ sudo modprobe rbd ● $ rbd map my-image –name client.admin -m node1 ● $ sudo mkfs.ext4 -m0 /dev/rbd/rbd/my-image ● $ sudo mkdir /mnt/my-ceph-block-device ● $ sudo mount /dev/rbd/rbd/my-image /mnt/my-ceph-block-device
  • 50. Ceph RGW S3 con Apache Libcloud, Ansible y Minio
  • 51. ● Apache Libcloud – libcloud.apache.org – Librería de Python para interactuar con proveedores de servicio de cloud – API unificada – ‘One interface to rule them all’
  • 52. ● Ceph RGW storage driver – upstream en Apache Libcloud 1.0.0 http://javiermunhoz.com/blog/2016/05/17/the-ceph-rgw-storage-driver-goes-upstream-in-libcloud.html
  • 53. ● Minio client – github.com/minio/mc – cliente S3 ligero – ls, cat, cp, diff, etc http://javiermunhoz.com/blog/2016/12/16/ceph-rgw-aws4-presigned-urls-working-with-the-minio-cloud-client.html
  • 54. ● Ansible – www.ansible.com – motor de automatización ● aprovisionamiento ● gestión de la configuración ● despliegue de aplicaciones ● orquestación ● ...
  • 55. ● Ansible – Soporte para RGW upstream – Parte del módulo core de Amazon S3 http://javiermunhoz.com/blog/2016/06/21/ansible-aws-s3-core-module-now-supports-ceph-rgw-s3.html
  • 57. ● La capa de valor de almacenamiento – diferenciación, funcionalidades, etc. (RGW/S3) ● Estrategia de líder frente a perseguidor – innovación vs interoperabilidad – cobertura de RGW/S3 vs AWS/S3 ● Riesgos – obsolescencia/sustitución de funcionalides ● ej. AWS2/AWS4 ● Innovación ● ej. ‘Smart Buckets’
  • 58. Ceph es comunidad! – ceph.com – ceph.com/community – ceph.com/get-involved – @ceph (twitter.com/ceph)