Sistemi di archiviazione oggetti compatibili con S3 [chiuso]


14

Qualcuno ha mai incontrato un sistema di archiviazione oggetti compatibile con API RESTful Amazon S3 quasi al 100%?

Quello che sto cercando è uno strato che si collochi al di sopra di qualsiasi file system (preferibilmente un POSIX) che fornisca API RESTful in stile Amazon S3 per archiviare ( PUT), recuperare ( GET), stat ( HEAD) ed eliminare ( DELETE), con un'autenticazione decente.

Anche i progetti / idee commerciali sono i benvenuti.

NOTA:

Finora ho provato Eucalyptus e Cumulus ; di cui Eucalyptus sembra chiamarsi ciecamente compatibile con S3. I documenti XML di risposta non sono affatto compatibili ed è irregolare in alcuni punti senza documenti XML. Cumulus è riuscito a mantenere i documenti di risposta abbastanza simili, ma sembra essersi dimenticato dell'integrità dei dati!

Lasciatemi spiegare l'ultima parte: sia Eucalyptus che Cumulus non supportano la verifica dell'integrità offerta da Amazon S3. Quello che puoi fare con S3 è che puoi fornire un Base64 (MD5 (FILE)) insieme alla richiesta PUT, che viene quindi verificata da S3 prima che rispondano con successo. Eucalyptus e Cumulus non supportano questo. Con Eucalyptus possiamo almeno aggirare il problema controllando l'MD5 riportato nel documento di risposta (comportamento non compatibile con S3). In Cumulus, questo non è possibile in quanto non risponde a nulla (come S3). È reso ancora peggio da Cumulus, non dando un ETag nella HEADrichiesta.

Risposte:


3

Swift è il motore di archiviazione oggetti di OpenStack e, a partire dalla versione Bexar del febbraio 2011 , rivendica un middleware sperimentale compatibile con S3. Poiché OpenStack sta ricevendo molta attenzione (Canonical sta spostando Ubuntu su di esso su Eucalyptus questo ottobre, per esempio), potrebbe valere la pena dare un'occhiata.


3

Alla fine, ho dovuto andare avanti con Eucalyptus Walrus. Anche se alla fine ho trovato alcuni problemi fondamentali, avevano tutti possibili soluzioni.

Grazie a tutti per il vostro prezioso contributo!


2

[DISCLAIMER: lavoro per Scality]

Amazon rimane molto attivo sui suoi prodotti AWS e apporta frequentemente aggiunte e modifiche / miglioramenti alla loro API. È quindi difficile trovare un prodotto compatibile quasi al 100% (specialmente nei prodotti commerciali, probabilmente i prodotti OSS sarebbero più reattivi a qualsiasi modifica). Molti venditori di oggetti / cloud storage hanno giocato con i propri protocolli per un po 'di tempo (Atmos, DDN e anche il veloce di OpenStack ..), ma hanno quasi tutti abbandonato l'idea del proprio protocollo diventando ampiamente usato come S3. Stanno tutti (quasi?) Annunciando un'interfaccia compatibile con S3 ora o nei mesi a venire. Dopotutto è lo standard del settore. L'unico concorrente rimasto potrebbe essere il CDMI solo per la sua natura standardizzata e per il fatto che proviene da SNIA, un'organizzazione senza scopo di lucro, non venditrice. Ma ciò'

Ci sono alcune opzioni per quanto riguarda l'interfaccia compatibile con S3, come Mezeo, quelle che hai menzionato (Eucalyptus e Cumulus), OpenStack (anche se non è ancora uscito credo). Scality è un altro di quelli.

L'implementazione S3 di Scality (chiamata RS2 - REST Storage Service) è molto simile a S3 in quanto le nostre richieste / risposte sono coerenti con ciò che otterresti da S3. Alcune delle funzionalità legate all'infrastruttura di S3 non sono presenti per ovvi motivi (ad esempio la selezione della regione). Ma ci sono i comandi necessari: GET / PUT / DELETE un oggetto, creazione ed elenco di bucket; e reagire proprio come farebbe S3.

Vorrei solo aggiungere, per rispondere al tuo secondo problema, che il prodotto di Scality, RING, è una piattaforma di archiviazione di oggetti software che risolve i problemi di integrità dei dati a cui ti riferisci facendo il checksum e facendo controlli di integrità in background di tutti gli oggetti memorizzati sull'ANELLO. La memorizzazione di un oggetto è fondamentalmente una query transazionale e, una volta che un oggetto è stato rivendicato come "archiviato correttamente", lo sarà per sempre, con costanti controlli di integrità (ad esempio su ogni lettura).

Non entrerò nei dettagli. puoi visitare il nostro sito Web per capire come alleggiamo gli amministratori di archiviazione dai comuni incubi di gestione dei dati e li lasciamo dormire la notte sapendo che i loro dati sono disponibili. Sempre. :)

I migliori, Marc Villemade @mastachand


2

Newdream's Ceph ha un gateway fastcgi compatibile con S3 che utilizza lo stesso sistema di archiviazione degli oggetti del filesystem Ceph stesso. ( http://ceph.newdream.net/wiki/RADOS_Gateway ) Ancora non pronto per la produzione, ma con aggiornamenti regolari.

Ho trovato l'archivio oggetti di Openstack più affidabile nei miei test anche se non compatibile con S3 con le librerie s3 che ho usato o con il proprio client java di rackspace per il loro servizio di archiviazione di file cloud (che usa la propria versione di swift). Anche se il progetto jclouds che ha sia il supporto s3 che Swift ha funzionato per me.


2

Puoi anche consultare Cloud Foundry vBlob: https://github.com/cloudfoundry/vblob

È un'app node.js (con wrapper Ruby per l'integrazione CF) che implementa una buona parte del protocollo S3 in cima a qualsiasi file system che la VM può "vedere".


1

Sia s3ql (GNU GPL v3) che s3backer (GNU GPL v2) fanno quello che stai cercando.


1
Sean; Non sto cercando una libreria client o un client per interagire con l'archiviazione; più interessato al server stesso.
CodeMedic,

1

Domanda vecchia / con risposta, ma https://github.com/basho/riak_cs è stato appena aperto a https://github.com/basho/riak_cs : "Riak CS è un sistema di archiviazione degli oggetti basato su Riak. Facilita memorizzazione di oggetti di grandi dimensioni in Riak e presenta un'interfaccia compatibile con S3. Fornisce inoltre funzionalità di muti-tenancy come account utente, autenticazione, meccanismi di controllo degli accessi e report sull'utilizzo per account ".


1

Sono sicuro che hai già così tante opzioni sopra che dovresti controllare OpenStack Swift, è un archivio oggetti OpenSource e supporta anche API compatibili S3. È usato come soluzione di archiviazione degli oggetti per Rackspace, Hpcloud Korea Telecom e molti altri.

Documentazione http://docs.openstack.org/developer/swift/associated_projects.html Swift3 https://github.com/fujita/swift3 Middleware Swift3 per OpenStack Swift, che consente l'accesso a OpenStack swift tramite l'API Amazon S3.

Spero che sia d'aiuto.


-3

[DISCLAIMER: lavoro per Cloudian]

Il software di archiviazione degli oggetti Cloudian HyperStore è compatibile con API S3 Amazon al 100%. Implementa tutte le API S3 fino ai codici di errore e tutte le funzionalità di Amazon S3.

Per elencarne alcuni, Cloudian HyperStore supporta il caricamento in più parti, il versioning degli oggetti, l'ACL compatibile S3, il tiering automatico su S3 e Glacier, la condivisione delle risorse S3 Cross-Origin (CORS), il tipo di codifica S3, il vincolo di posizione e molti altri.

E sì con Cloudian è possibile fornire un Base64 (MD5 (FILE)) insieme alla richiesta PUT, che viene quindi verificata prima di rispondere con esito positivo.

Per ulteriori informazioni, consultare questo post di blog http://www.cloudian.com/blog/?p=64 e il sito Web di Cloudian all'indirizzo http://www.cloudian.com/products/cloudian-hyperstore.php


-4

Hai controllato s3fs ? Non include il controllo MD5 desiderato ( http://code.google.com/p/s3fs/issues/detail?id=37&q=md5 ) ma suppongo che non sarebbe estremamente difficile implementarlo. Da notare che alla fine è coerente.


2
S3FS è l'ordine inverso a quello che vuole il poster. Crea un filesystem da un bucket S3. L'OP vuole creare un bucket S3 da un filesystem.
crb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.