Sistemas de almacenamiento de objetos compatibles con S3 [cerrado]

14

¿Alguien ha encontrado un sistema de almacenamiento de objetos compatible con la API RESTful 100% de Amazon S3?

Lo que busco es una capa que se asienta sobre cualquier sistema de archivos (preferiblemente POSIX) que proporcione API RESTful de estilo Amazon S3 para almacenar ( PUT), recuperar ( GET), estadísticas ( HEAD) y eliminar ( DELETE), con autenticación decente.

Proyectos / ideas comerciales son bienvenidos también.

NOTA:

Hasta ahora he probado eucalipto y cúmulo ; de los cuales Eucalyptus parece llamarse ciegamente compatible con S3. Los documentos XML de respuesta no son del todo compatibles y son irregulares en ciertos lugares sin ningún documento XML. ¡Cumulus ha logrado mantener los documentos de respuesta bastante similares, pero parece haberse olvidado de la integridad de los datos!

Permítanme explicar la última parte: tanto Eucalyptus como Cumulus no tienen soporte para la verificación de integridad que ofrece Amazon S3. Lo que puede hacer con S3 es que puede proporcionar una Base64 (MD5 (FILE)) junto con la solicitud PUT, que luego S3 verifica antes de que respondan con éxito. Eucalipto y Cúmulo no son compatibles con esto. Con Eucalyptus podemos al menos evitar esto comprobando el MD5 proporcionado en el documento de respuesta (comportamiento no compatible con S3). En Cumulus, esto no es posible ya que no responde con nada (como S3). Cumulus lo empeora aún más al no entregar un ETag en la HEADsolicitud.

CodeMedic
fuente

Respuestas:

3

Swift es el motor de almacenamiento de objetos de OpenStack y, a partir del lanzamiento de Bexar en febrero de 2011 , reclama un middleware experimental compatible con S3. Como OpenStack está recibiendo mucha atención (Canonical está cambiando Ubuntu a Eucalyptus este octubre, por ejemplo), podría valer la pena echarle un vistazo.

crb
fuente
3

Al final, tuve que seguir adelante con Eucalyptus Walrus. A pesar de que terminé encontrando algunos problemas fundamentales, todos tenían posibles soluciones.

¡Gracias a todos por su valioso aporte!

CodeMedic
fuente
2

[RENUNCIA: Trabajo para Scality]

Amazon se mantiene muy activo en sus productos AWS y realiza adiciones y cambios / mejoras a su API con mucha frecuencia. Entonces es difícil encontrar un producto casi 100% compatible (especialmente en productos comerciales, probablemente los productos OSS serían más reactivos a cualquier cambio). Muchos proveedores de almacenamiento de objetos / en la nube han estado jugando con sus propios protocolos durante algún tiempo (Atmos, DDN incluso Swift de OpenStack ...), pero en su mayoría han abandonado la idea de que su propio protocolo sea tan ampliamente utilizado como S3. Todos anuncian (¿casi?) Una interfaz compatible con S3 ahora o en los próximos meses. Después de todo, es el estándar de facto de la industria. El único competidor que queda podría ser CDMI solo por su naturaleza estandarizada y el hecho de que proviene de SNIA, una organización sin fines de lucro y sin proveedores. Pero'

Hay algunas opciones en cuanto a la interfaz compatible con S3, como Mezeo, las que has mencionado (Eucalyptus y Cumulus), OpenStack (aunque todavía no está disponible, creo). La escaldad es otra de esas.

La implementación de Scality S3 (llamada RS2 - REST Storage Service) está muy cerca de S3 en que nuestras solicitudes / respuestas son consistentes con lo que obtendría de S3. Algunas de las funcionalidades vinculadas a la infraestructura de S3 no están presentes por razones obvias (selección de región, por ejemplo). Pero los comandos necesarios están ahí: OBTENER / PONER / BORRAR un objeto, creación de cubo y listado; y reaccionar como lo haría S3.

Simplemente agregaría, para responder a su segundo problema, que el producto de Scality, RING, es una plataforma de almacenamiento de objetos de software que resuelve los problemas de integridad de datos a los que se refiere haciendo una suma de verificación y haciendo verificaciones de integridad de fondo de todos los objetos almacenados en el RING. Almacenar un objeto es básicamente una consulta transaccional, y una vez que un objeto ha sido reclamado como "almacenado con éxito", lo será para siempre, con constantes comprobaciones de integridad (en cada lectura, por ejemplo).

No entraré en detalles. puede ir a nuestro sitio web para comprender cómo aliviamos a los administradores de almacenamiento de las pesadillas comunes de administración de datos y dejarlos dormir por la noche sabiendo que sus datos están disponibles. Siempre. :)

Lo mejor, Marc Villemade @mastachand

Marc Villemade
fuente
2

Ceph de Newdream tiene una puerta de enlace fastcgi compatible con S3 que utiliza el mismo sistema de almacenamiento de objetos que el sistema de archivos Ceph. ( http://ceph.newdream.net/wiki/RADOS_Gateway ) Todavía no está listo para la producción, pero realiza actualizaciones periódicas.

Encontré el almacén de objetos de Openstack más confiable en mis pruebas, aunque no es compatible con S3 con las bibliotecas s3 que utilicé o realmente con el propio cliente Java de Rackspace para su servicio de almacenamiento de archivos en la nube (que usa su propia versión de Swift). Aunque el proyecto jclouds que tiene soporte para s3 y Swift funcionó para mí.

David
fuente
2

También puede mirar Cloud Foundry vBlob: https://github.com/cloudfoundry/vblob

Es una aplicación node.js (con Ruby wrapper para la integración de CF) que implementa una buena parte del protocolo S3 en la parte superior de cualquier sistema de archivos que la VM puede "ver".

Mateo L
fuente
1

Tanto s3ql (GNU GPL v3) como s3backer (GNU GPL v2) hacen lo que estás buscando.

Sean Mac
fuente
1
Sean No estoy buscando una biblioteca cliente o un cliente también para interactuar con el almacenamiento; más interesado en el servidor en sí.
CodeMedic
1

Pregunta antigua / respondida, pero https://github.com/basho/riak_cs fue de código abierto en https://github.com/basho/riak_cs : "Riak CS es un sistema de almacenamiento de objetos construido sobre Riak. Facilita almacena objetos grandes en Riak y presenta una interfaz compatible con S3. También proporciona funciones de multicliente como cuentas de usuario, autenticación, mecanismos de control de acceso e informes de uso por cuenta ".

astrostl
fuente
1

Estoy seguro de que tiene tantas opciones anteriores, pero debería verificar OpenStack Swift, es un OpenSource Object Storage y también es compatible con API compatible con S3. Se utiliza como solución de almacenamiento de objetos para Rackspace, Hpcloud Korea Telecom y muchos otros.

Documentación http://docs.openstack.org/developer/swift/associated_projects.html Swift3 https://github.com/fujita/swift3 Swift3 Middleware para OpenStack Swift, que permite el acceso a OpenStack swift a través de la API de Amazon S3.

Espero eso ayude.

koolhead17
fuente
-3

[RENUNCIA: Trabajo para Cloudian]

El software de almacenamiento de objetos Cloudian HyperStore es 100% compatible con Amazon S3 API. Implementa todas las API de S3 hasta los códigos de error y todas las características que tiene Amazon S3.

Para enumerar algunos, Cloudian HyperStore admite carga de varias partes, versiones de objetos, ACL compatible con S3, niveles automáticos a S3 y Glacier, S3 Cross-Origin Resource Sharing (CORS), tipo de codificación S3, restricción de ubicación y muchos más.

Y sí, con Cloudian puede proporcionar una Base64 (MD5 (FILE)) junto con la solicitud PUT, que luego se verifica antes de responder con éxito.

Para obtener más información, consulte esta publicación de blog http://www.cloudian.com/blog/?p=64 y el sitio web de Cloudian en http://www.cloudian.com/products/cloudian-hyperstore.php

Simone
fuente
-4

¿Has comprobado s3fs ? No cuenta con la verificación MD5 que desea ( http://code.google.com/p/s3fs/issues/detail?id=37&q=md5 ) pero supongo que no sería extremadamente difícil implementar esto. Es de destacar que es eventualmente consistente.

gekkz
fuente
2
S3FS es el orden inverso al que desea el cartel. Convierte un sistema de archivos en un cubo S3. El OP quiere hacer un cubo S3 de un sistema de archivos.
crb