S3-совместимые системы хранения объектов [закрыто]

14

Кто-нибудь сталкивался с почти 100% Amazon S3 RESTful-совместимой системой хранения объектов?

Мне нужен слой, который находится поверх любой (предпочтительно POSIX) файловой системы, которая предоставляет RESTful API в стиле Amazon S3 для store ( PUT), retrieve ( GET), stat ( HEAD) и delete ( DELETE) с достойной аутентификацией.

Коммерческие проекты / идеи тоже приветствуются.

НОТА:

Я до сих пор пробовал Эвкалипт и Кучу ; из которых Эвкалипт, кажется, слепо называет себя S3-совместимым. Ответные XML-документы вообще не совместимы и в некоторых местах неоднородны, а XML-документов вообще нет. Cumulus удалось сохранить документы-ответы довольно похожими, но, похоже, забыл о целостности данных!

Позвольте мне объяснить последнюю часть: и Eucalyptus, и Cumulus не поддерживают проверку целостности, которую предлагает Amazon S3. Что вы можете сделать с S3, так это то, что вы можете предоставить Base64 (MD5 (FILE)) вместе с запросом PUT, который затем проверяется S3, прежде чем они отвечают успешно. Эвкалипт и Кучевые облака не поддерживают это. С помощью Eucalyptus мы можем, по крайней мере, обойти это, проверив MD5, указанный в ответном документе (не S3-совместимое поведение). В Cumulus это невозможно, так как ничего не отвечает (например, S3). Кумулюс усугубляет ситуацию, не давая ETag в HEADзапросе.

CodeMedic
источник

Ответы:

3

Swift является движком хранения объектов OpenStack, и, начиная с выпуска Bexar в феврале 2011 года , он претендует на экспериментальное промежуточное ПО, совместимое с S3. Поскольку OpenStack привлекает большое внимание (например, Canonical переводит Ubuntu на него вместо Eucalyptus в октябре этого года), на это, возможно, стоит обратить внимание.

CRB
источник
3

В конце концов мне пришлось двигаться вперед с эвкалиптовым моржом. Несмотря на то, что я в конечном итоге нашел некоторые фундаментальные проблемы, у всех них были возможные обходные пути.

Спасибо всем за ваш ценный вклад!

CodeMedic
источник
2

[ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я работаю на Scality]

Amazon остается очень активным в своих продуктах AWS и очень часто вносит дополнения и изменения / улучшения в их API. Тогда трудно найти почти 100% совместимый продукт (особенно в коммерческих продуктах, возможно, продукты OSS будут более восприимчивыми к любым изменениям). Многие поставщики объектных / облачных хранилищ в течение некоторого времени возились со своими собственными протоколами (Atmos, DDN и даже OpenStack swift ...), но все они в основном отказались от идеи, что их собственный протокол стал так же широко использоваться, как S3. Все они (почти?) Объявляют о S3-совместимом интерфейсе сейчас или в ближайшие месяцы. В конце концов, это отраслевой стандарт де-факто. Единственным претендентом на победу может быть CDMI только из-за его стандартизированного характера и того факта, что он исходит от SNIA, некоммерческой организации, не являющейся поставщиком. Но это'

В отношении S3-совместимого интерфейса есть несколько вариантов, таких как Mezeo, те, о которых вы упомянули (Eucalyptus и Cumulus), OpenStack (хотя, я полагаю, его еще нет). Scality является еще одним из них.

Реализация S3 в Scality (называемая RS2 - REST Storage Service) очень близка к S3 в том смысле, что наши запросы / ответы соответствуют тому, что вы получите от S3. Некоторые функции, связанные с инфраструктурой S3, отсутствуют по очевидным причинам (например, выбор региона). Но необходимые команды есть: GET / PUT / DELETE объект, создание корзины и распечатка; и реагировать так же, как S3 будет.

Я бы просто добавил, чтобы ответить на вашу вторую проблему, что продукт Scality, RING, является программной платформой хранения объектов, которая решает проблемы целостности данных, на которые вы ссылаетесь, путем проверки контрольных сумм и выполнения фоновых проверок целостности всех объектов, хранящихся в RING. Хранение объекта - это, по сути, транзакционный запрос, и как только объект будет объявлен как «успешно сохраненный», он будет всегда с постоянными проверками целостности (например, при каждом чтении).

Я не буду вдаваться в подробности. Вы можете перейти на наш веб-сайт, чтобы понять, как мы избавляем администраторов хранилищ от обычных кошмаров, связанных с управлением данными, и позволяем им спать по ночам, зная, что их данные доступны. Всегда. :)

Бест, Марк Виллемэйд @mastachand

Марк Вильмад
источник
2

Ceph от Newdream имеет S3-совместимый шлюз fastcgi, который использует ту же систему хранения объектов, что и сама файловая система Ceph. ( http://ceph.newdream.net/wiki/RADOS_Gateway ) Все еще не готово к производству, но регулярно обновляюсь.

Я обнаружил, что хранилище объектов Openstack более надежно в моем тестировании, хотя и не совместимо с S3 с библиотеками s3, которые я использовал, или с собственным java-клиентом rackspace для их службы хранения облачных файлов (которая использует свою собственную версию swift). Хотя у меня работал проект jclouds, в котором есть поддержка как s3, так и Swift.

Дэвид
источник
2

Вы также можете посмотреть на Cloud Foundry vBlob: https://github.com/cloudfoundry/vblob

Это приложение node.js (с оболочкой Ruby для интеграции CF), которое реализует значительный кусок протокола S3 поверх любой файловой системы, которую виртуальная машина может «увидеть».

Мэтью Л
источник
1

И s3ql (GNU GPL v3), и s3backer (GNU GPL v2) делают то, что вы ищете.

Шон Мак
источник
1
Шон; Я не ищу клиентскую библиотеку или клиента для взаимодействия с хранилищем; больше интересует сам сервер.
CodeMedic 25.11.11
1

Старый / ответ на вопрос, но https://github.com/basho/riak_cs был только что открыт с источником по адресу https://github.com/basho/riak_cs : «Riak CS - это система хранения объектов, построенная поверх Riak. хранит большие объекты в Riak и представляет S3-совместимый интерфейс. Он также обеспечивает такие функции, как учетные записи пользователей, аутентификация, механизмы контроля доступа и отчеты об использовании каждой учетной записи ».

astrostl
источник
1

Я уверен, что у вас так много опций выше, но вы должны проверить OpenStack Swift, его хранилище объектов OpenSource, а также поддерживает S3-совместимый API. Используется как решение для хранения объектов для Rackspace, Hpcloud Korea Telecom и многих других.

Документация http://docs.openstack.org/developer/swift/associated_projects.html Swift3 https://github.com/fujita/swift3 Swift3 Промежуточное программное обеспечение для OpenStack Swift, позволяющее получить доступ к OpenStack swift через API Amazon S3.

Надеюсь, это поможет.

koolhead17
источник
-3

[ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я работаю на Cloudian]

Программное обеспечение Cloudian HyperStore для хранения объектов на 100% совместимо с API Amazon S3. Он реализует все API S3 вплоть до кодов ошибок и все функции, которые есть в Amazon S3.

Чтобы перечислить некоторые из них, Cloudian HyperStore поддерживает загрузку из нескольких частей, управление версиями объектов, ACL, совместимый с S3, автоматическое распределение по уровням в S3 и Glacier, общий доступ к ресурсам S3 (CORS), тип кодировки S3, ограничение местоположения и многое другое.

И да, с Cloudian вы можете предоставить Base64 (MD5 (FILE)) вместе с запросом PUT, который затем проверяется, прежде чем ответить успешно.

Для получения дополнительной информации посетите этот пост в блоге http://www.cloudian.com/blog/?p=64 и веб-сайт Cloudian по адресу http://www.cloudian.com/products/cloudian-hyperstore.php.

Симона
источник
-4

Вы проверили s3fs ? В нем нет нужной вам проверки MD5 ( http://code.google.com/p/s3fs/issues/detail?id=37&q=md5 ), но я полагаю, реализовать ее не составит особого труда. Следует отметить, что это в конечном итоге соответствует.

gekkz
источник
2
S3FS - обратный порядок того, что хочет плакат. Это делает файловую систему из корзины S3. ОП хочет сделать S3-контейнер из файловой системы.
CRB