Systèmes de stockage d'objets compatibles S3 [fermé]

14

Quelqu'un a-t-il rencontré un système de stockage d'objets compatible avec l'API RESTful à 100% Amazon S3?

Ce que je recherche, c'est une couche qui se trouve au-dessus de tout système de fichiers (de préférence POSIX) qui fournit l'API RESTful de style Amazon S3 pour stocker ( PUT), récupérer ( GET), stat ( HEAD) et supprimer ( DELETE), avec une authentification décente.

Les projets / idées commerciales sont également les bienvenus.

REMARQUE:

J'ai jusqu'à présent essayé l' Eucalyptus et le Cumulus ; dont l'eucalyptus semble s'appeler aveuglément compatible S3. Les documents XML de réponse ne sont pas du tout compatibles et sont inégaux à certains endroits sans aucun document XML. Cumulus a réussi à garder les documents de réponse assez similaires, mais semble avoir oublié l'intégrité des données!

Permettez-moi d'expliquer la dernière partie: Eucalyptus et Cumulus ne prennent pas en charge la vérification d'intégrité qu'Amazon S3 propose. Ce que vous pouvez faire avec S3, c'est que vous pouvez fournir une Base64 (MD5 (FILE)) avec la demande PUT, qui est ensuite vérifiée par S3 avant de répondre avec succès. Eucalyptus et Cumulus ne supporte pas cela. Avec Eucalyptus, nous pouvons au moins contourner ce problème en vérifiant le MD5 donné dans le document de réponse (comportement non compatible S3). Dans Cumulus, ce n'est pas possible car il ne répond avec rien (comme S3). Il est encore aggravé par Cumulus, en ne donnant pas un ETag dans la HEADdemande.

CodeMedic
la source

Réponses:

3

Swift est le moteur de stockage d'objets d'OpenStack, et depuis la sortie de Bexar en février 2011 , il revendique un middleware expérimental compatible S3. Comme OpenStack reçoit beaucoup d'attention (Canonical déplace Ubuntu vers Eucalyptus en octobre, par exemple), cela pourrait valoir le coup d'œil.

crb
la source
3

Au final, j'ai dû avancer avec Eucalyptus Walrus. Même si j'ai fini par trouver des problèmes fondamentaux avec cela, ils avaient tous des solutions possibles.

Merci à tous pour votre précieuse contribution!

CodeMedic
la source
2

[AVERTISSEMENT: je travaille pour Scality]

Amazon reste très actif sur leurs produits AWS et apporte très fréquemment des ajouts et des modifications / améliorations à leur API. Il est alors difficile de trouver un produit compatible à presque 100% (en particulier dans les produits commerciaux, les produits OSS seraient probablement plus réactifs à tout changement). De nombreux fournisseurs de stockage d'objet / cloud ont joué avec leurs propres protocoles depuis un certain temps (Atmos, DDN, même le rapide d'OpenStack ..), mais ils ont presque tous abandonné l'idée que leur propre protocole soit aussi largement utilisé que S3. Ils annoncent tous (presque?) Une interface compatible S3 maintenant ou dans les mois à venir. C'est après tout la norme de facto de l'industrie, le seul concurrent restant pourrait être le CDMI simplement en raison de sa nature standardisée et du fait qu'il provient de la SNIA, une organisation à but non lucratif et sans fournisseur. Mais c'est

Il y a quelques options en ce qui concerne l'interface compatible S3, comme Mezeo, celles que vous avez mentionnées (Eucalyptus et Cumulus), OpenStack (bien qu'il ne soit pas encore sorti je crois). Scality en est un autre.

L'implémentation S3 de Scality (appelée RS2 - REST Storage Service) est très proche de S3 dans la mesure où nos demandes / réponses sont cohérentes avec ce que vous obtiendriez de S3. Certaines fonctionnalités liées à l'infrastructure de S3 ne sont pas présentes pour des raisons évidentes (sélection de la région par exemple). Mais les commandes nécessaires sont là: GET / PUT / DELETE un objet, création et listage du bucket; et réagir comme le ferait S3.

Je voudrais simplement ajouter, pour répondre à votre deuxième problème, que le produit de Scality, RING, est une plate-forme de stockage d'objets logiciels qui résout les problèmes d'intégrité des données dont vous parlez en faisant la somme de contrôle et en effectuant des vérifications d'intégrité en arrière-plan de tous les objets stockés sur le RING. Le stockage d'un objet est fondamentalement une requête transactionnelle, et une fois qu'un objet a été revendiqué comme "correctement stocké", il le sera pour toujours, avec des contrôles d'intégrité constants (à chaque lecture par exemple).

Je n'entrerai pas dans les détails. vous pouvez visiter notre site Web pour comprendre comment nous atténuons les administrateurs de stockage des cauchemars courants de gestion des données et les laissons dormir la nuit en sachant que leurs données sont disponibles. Toujours. :)

Cordialement, Marc Villemade @mastachand

Marc Villemade
la source
2

Ceph de Newdream possède une passerelle Fastcgi compatible S3 qui utilise le même système de stockage d'objets que le système de fichiers Ceph lui-même. ( http://ceph.newdream.net/wiki/RADOS_Gateway ) Toujours pas prêt pour la production, mais faisant des mises à jour régulières.

J'ai trouvé le magasin d'objets d'Openstack plus fiable dans mes tests, mais pas compatible S3 avec les bibliothèques s3 que j'ai utilisées ou vraiment avec le propre client java de rackspace pour leur service de stockage cloudfiles (qui utilise leur propre version de swift). Bien que le projet jclouds qui a à la fois le support s3 et Swift a fonctionné pour moi.

David
la source
2

Vous pouvez également consulter Cloud Foundry vBlob: https://github.com/cloudfoundry/vblob

C'est une application node.js (avec wrapper Ruby pour l'intégration CF) qui implémente une bonne partie du protocole S3 au-dessus de tout système de fichiers que la machine virtuelle peut "voir".

Mathew L
la source
1

Les deux s3ql (GNU GPL v3) et s3backer (GNU GPL v2) faites ce que vous cherchez.

Sean Mac
la source
1
Sean; Je ne recherche pas de bibliothèque cliente ni de client pour interagir avec le stockage; plus intéressé par le serveur lui-même.
CodeMedic,
1

Ancienne question / réponse, mais https://github.com/basho/riak_cs vient d'être ouvert sur https://github.com/basho/riak_cs : "Riak CS est un système de stockage d'objets construit au-dessus de Riak. Il facilite stocke de gros objets dans Riak et présente une interface compatible S3. Il fournit également des fonctionnalités de mutualisation telles que les comptes d'utilisateurs, l'authentification, les mécanismes de contrôle d'accès et les rapports d'utilisation par compte. "

astrostl
la source
1

Je suis sûr que vous avez tellement d'options ci-dessus, vous devriez vérifier OpenStack Swift, son stockage d'objets OpenSource et prend également en charge l'API compatible S3. Il est utilisé comme solution de stockage d'objets pour Rackspace, Hpcloud Korea Telecom et bien d'autres.

Documentation http://docs.openstack.org/developer/swift/associated_projects.html Swift3 https://github.com/fujita/swift3 Swift3 Middleware pour OpenStack Swift, permettant d'accéder à OpenStack swift via l'API Amazon S3.

J'espère que cela aide.

koolhead17
la source
-3

[AVERTISSEMENT: je travaille pour Cloudian]

Le logiciel de stockage d'objets Cloudian HyperStore est 100% compatible avec l'API Amazon S3. Il implémente toutes les API S3 jusqu'aux codes d'erreur et toutes les fonctionnalités d'Amazon S3.

Pour en répertorier certains, Cloudian HyperStore prend en charge le téléchargement en plusieurs parties, la gestion des versions des objets, la liste de contrôle d'accès compatible S3, la hiérarchisation automatique vers S3 et Glacier, le partage de ressources S3 Cross-Origin (CORS), le type de codage S3, la contrainte d'emplacement et bien d'autres.

Et oui avec Cloudian, vous pouvez fournir une Base64 (MD5 (FILE)) avec la demande PUT, qui est ensuite vérifiée avant de répondre avec succès.

Pour plus d'informations, consultez cet article de blog http://www.cloudian.com/blog/?p=64 et le site Web de Cloudian à http://www.cloudian.com/products/cloudian-hyperstore.php

Simone
la source
-4

Avez-vous vérifié s3fs ? Il ne comporte pas la vérification MD5 que vous souhaitez ( http://code.google.com/p/s3fs/issues/detail?id=37&q=md5 ) mais je suppose qu'il ne serait pas extrêmement difficile de l'implémenter. Il convient de noter que cela est finalement cohérent.

gekkz
la source
2
S3FS est l'ordre inverse de ce que veut l'affiche. Il fait un système de fichiers à partir d'un compartiment S3. L'OP souhaite créer un compartiment S3 à partir d'un système de fichiers.
crb