OpenStack (III) – SWIFT, arquitectura detallada

Swift es un sistema de almacenamiento con dos características principales, es altamente masivo (capaz de almacenar billones de objetos en nodos distribuidos hasta alcanzar varios petabytes) y altamente redundante, para entendernos sería el equivalente al S3 de Amazon.

Swift es la capa de almacenamiento de OpenStack, pero sus características transcienden las típicas atribuibles al almacenamiento (Redundancia, escalabilidad, Backup, etc.),  aportando funcionalidades adicionales:

  • Capacidad de streaming de medios.
  • Almacenaje de gran número de objetos y de gran tamaño-
  • Almacenaje seguro de los objetos.
  • Almacenaje de imágenes de máquinas virtuales.

¿Cuáles son sus componentes?

  • Swift Account:
  • Swift Container:
  • Swift Object:
  • Swift Proxy:
  • RING:

Los componentes uno a uno.

Proxy Server: los clientes interactuan con la API de Swift a través de los Proxy, aportando estos tolerancia a fallos.

Object Server: su función es manejar el almacenamiento y se encargar de copiar, borrar, etc. los objetos, que son básicamente ficheros binarios almacenados en un sistema de ficheros.

El sistema de ficheros puede ser cualquier soportado por Linux, siempre y cuando tenga soporte para xattr, no obstante hoy po hoy XFS es la mejor opción.

Container Server: se encarga de las estadísticas de uso y de mantener la lista de objetos almacenados, estas listas se almacenan en ficheros SQLite.

Account Server: realiza la misma función que el Container Server, solo que en vez de con los objetos, con los Containers.

RING: bajo este nombre tan curioso se esconde una de las funcionalidades más importantes, mapear los nombres de las entidades (objetos) a su ubicación física real.

Referencias:

OpenStack Swift eventual consistency analysis & bottlenecks

Swift Tech Overview

Deja un comentario

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