web-dev-qa-db-ja.com

S3互換オブジェクトストレージシステム

ほぼ100%Amazon S3 RESTful API互換のオブジェクトストレージシステムを見つけた人はいますか?

私が求めているのは、Amazon S3スタイルのRESTful APIを提供し(PUT)、取得(GET)、統計(HEAD)、削除(DELETE)を行い、まともな認証を備えた任意の(できればPOSIX)ファイルシステムの上にあるレイヤーです。 。

商業プロジェクト/アイデアも大歓迎です。

注:

これまでに EucalyptusCumulus を試しました。そのうち、ユーカリは盲目的に自分自身をS3互換と呼んでいるようです。応答XMLドキュメントはまったく互換性がなく、XMLドキュメントがまったくない特定の場所ではパッチが適用されます。 Cumulusは応答ドキュメントを非常に似たものに保つことに成功しましたが、データの整合性を忘れているようです!

後者の部分について説明しましょう。EucalyptusとCumulusはどちらも、Amazon S3が提供する整合性検証をサポートしていません。 S3でできることは、PUTリクエストとともにBase64(MD5(FILE))を提供できることです。これは、成功するまでに応答する前にS3によって検証されます。 EucalyptusとCumulusはこれをサポートしていません。 Eucalyptusでは、応答ドキュメントで指定されたMD5をチェックすることで、これを少なくとも回避できます(S3互換の動作ではありません)。 Cumulusでは、S3のように何も応答しないため、これは不可能です。これは、HEADリクエストでETagを渡さないことにより、Cumulusによってさらに悪化します。

14
CodeMedic

結局、私はユーカリのセイウチと一緒に前進しなければなりませんでした。結局、私はそれでいくつかの根本的な問題を見つけましたが、それらはすべて可能な回避策を持っていました。

貴重なご意見、ありがとうございました!

3
CodeMedic

Swift はOpenStackのオブジェクトストレージエンジンであり、 2011年2月のBexarリリース の時点で、実験的なS3互換ミドルウェアを主張しています。 OpenStackが大きな注目を集めているため(たとえば、Canonicalは、Ubuntuをこの10月にEucalyptusに移行しています)、一見の価値があります。

3
crb

Cloud Foundry vBlobを確認することもできます: https://github.com/cloudfoundry/vblob

これは、Rubyが「参照」できるすべてのファイルシステム上にS3プロトコルの公平なチャンクを実装するnode.jsアプリ(CF統合用のVMラッパーを使用)です。

2
Mathew L

[免責事項:私はScalityで働いています]

AmazonはAWS製品に非常に積極的に取り組んでおり、APIの追加や変更/改善を頻繁に行っています。その場合、ほぼ100%の互換性のある製品を見つけるのは困難です(特に商用製品では、おそらくOSS製品はどのような変更に対しても反応性が高いでしょう)。多くのオブジェクト/クラウドストレージベンダーは、しばらくの間、独自のプロトコル(Atmos、DDN、OpenStackのSwift ..)をいじくり回してきましたが、S3と同じくらい広く使用されるようになる独自のプロトコルのアイデアをすべて放棄しました。彼らは皆、(ほとんど?)S3互換インターフェースを今すぐ、または今後数か月のうちに発表します。結局のところ、業界の事実上の標準です。標準化された性質と、非営利、非ベンダーの組織であるSNIAに由来するという事実から、残っている唯一の候補はCDMIかもしれません。しかし、それは明らかに採用されていないか、S3ほど話題にされていません。

S3互換インターフェースには、いくつかのオプションがあります。たとえば、Mezeo、あなたが言及したもの(EucalyptusとCumulus)、OpenStack(まだ出ていないとは思います)などです。 Scalityもその1つです。

ScalityのS3実装(RS2-REST Storage Service)と呼ばれます)は、S3に非常に似ています。これは、要求/応答がS3から得られるものと一致しているためです。S3のインフラストラクチャに関連付けられている機能の一部明らかな理由(たとえば、領域の選択)のために存在しませんが、必要なコマンドは次のとおりです:オブジェクトのGET/PUT/DELETE、バケットの作成と一覧表示、S3と同じように反応します。

Scalityの製品であるRINGは、RINGに格納されているすべてのオブジェクトのチェックサムとバックグラウンド整合性チェックを行うことで、参照しているデータ整合性の問題を解決するソフトウェアオブジェクトストレージプラットフォームです。オブジェクトの保存は基本的にはトランザクションクエリであり、オブジェクトが「正常に保存された」と主張されると、(たとえば、読み取りごとに)整合性チェックが行われ、永久に保存されます。

詳細には触れません。私たちのWebサイトにアクセスして、ストレージ管理者が一般的なデータ管理の悪夢からどのように軽減されるかを理解し、データが利用可能であることを知って夜に眠らせてください。常に。 :)

ベスト、マークヴィルメイド@mastachand

2
Marc Villemade

s3ql (GNU GPL v3)と s3backer (GNU GPL v2)の両方が、探していることを行います。

1
Sean Mac

上記のオプションがたくさんあると思いますが、OpenStack SwiftはOpenSource Object Storageであり、S3互換APIもサポートしています。 Rackspace、Hpcloud Korea Telecomなどのオブジェクトストレージソリューションとして使用されています。

ドキュメント http://docs.openstack.org/developer/Swift/associated_projects.html Swift3 https://github.com/fujita/Swift OpenStack Swift用Swift3ミドルウェア、 OpenStackへのアクセスを許可するSwift Amazon S3 API経由で。

それが役に立てば幸い。

1
koolhead17

古い質問に回答しましたが、 https://github.com/basho/riak_cshttps://github.com/basho/riak_cs でオープンソース化されたばかりです: "Riak CSはRiakの上に構築されたオブジェクトストレージシステムです。Riakに大きなオブジェクトを格納するのを容易にし、S3互換のインターフェースを提供します。また、ユーザーアカウント、認証、アクセス制御メカニズム、アカウントごとの使用状況レポートなどのマルチテナンシー機能を提供します」

1
astrostl