S3 호환 가능 오브젝트 스토리지 시스템

거의 100 % Amazon S3 RESTful API 호환 객체 스토리지 시스템을 경험 한 사람이 있습니까?

내가 좋아하는 것은 적절한 인증 으로 저장 ( PUT), 검색 ( GET), stat ( HEAD) 및 삭제 ( DELETE) 할 수있는 Amazon S3 스타일 RESTful API를 제공하는 모든 (바람직하게는 POSIX) 파일 시스템 위에있는 레이어입니다 .

상업 프로젝트 / 아이디어도 환영합니다.

노트:

나는 지금까지 유칼립투스적운을 시도했습니다 . 유칼립투스는 맹목적으로 S3 호환이라고 부르는 것 같습니다. 응답 XML 문서는 전혀 호환되지 않으며 XML 문서가없는 특정 장소에서는 패치가 가능합니다. Cumulus는 응답 문서를 상당히 유사하게 유지했지만 데이터 무결성에 대해 잊어 버린 것 같습니다!

유칼립투스와 적운은 Amazon S3가 제공하는 무결성 검증을 지원하지 않습니다. S3로 수행 할 수있는 작업은 PUT 요청과 함께 Base64 (MD5 (FILE))를 제공 할 수 있으며 S3가 성공으로 응답하기 전에 S3에 의해 확인됩니다. 유칼립투스와 적운은 이것을 지원하지 않습니다. 유칼립투스를 사용하면 응답 문서에 제공된 MD5 (S3 호환 동작 아님)를 확인하여이 문제를 해결할 수 있습니다. 적운에서는 (S3와 같은) 아무것도 응답하지 않으므로 불가능합니다. Cumulus는 HEAD요청에 ETag를 제공하지 않아 더욱 악화됩니다 .



답변

Swift 는 OpenStack의 객체 스토리지 엔진이며 2011 년 2 월 Bexar 릴리즈에서 실험적인 S3 호환 미들웨어를 주장합니다. OpenStack이 많은 주목을 받고 있기 때문에 (예를 들어, 정식은 Ubuntu를 이번 10 월 유칼립투스로 옮기고 있습니다) 살펴볼 가치가 있습니다.


답변

결국, 나는 유칼립투스 해마로 나아가 야했습니다. 결국 나는 근본적인 문제를 발견했지만 모두 가능한 해결 방법이있었습니다.

소중한 의견을 보내 주셔서 감사합니다!


답변

[면책 조항 : 나는 Scality를 위해 일한다]

Amazon은 AWS 제품을 적극적으로 사용하며 API를 자주 추가 및 변경 / 개선합니다. 그런 다음 거의 100 % 호환 제품을 찾기가 어렵습니다 (특히 상용 제품의 경우 OSS 제품이 변경에 더 반응 할 수 있음). 많은 객체 / 클라우드 스토리지 공급 업체가 한동안 자체 프로토콜을 사용해 왔지만 (Atmos, DDN은 OpenStack의 신속한 솔루션입니다.) 대부분 S3만큼 널리 사용되는 자체 프로토콜에 대한 아이디어를 포기했습니다. 그들은 지금 또는 앞으로 몇 달 안에 S3 호환 인터페이스를 발표합니다 (거의?). 사실상 모든 업계 표준을 따릅니다. 표준화 된 특성과 비영리, 비 공급 업체 조직인 SNIA에서 온 사실 때문에 CDMI가 유일하게 남아있을 수 있습니다. 그러나 그것은

S3 호환 인터페이스가있는 한 Mezeo, 언급 한 것 (Eucalyptus 및 Cumulus), OpenStack (아직 내가 믿지는 않지만)과 같은 몇 가지 옵션이 있습니다. 비결은 그중 하나입니다.

Scality의 S3 구현 (RS2-REST Storage Service라고 함)은 요청 / 응답이 S3에서 얻은 것과 일치한다는 점에서 S3에 매우 가깝습니다. S3의 인프라와 관련된 일부 기능은 명백한 이유로 존재하지 않습니다 (예 : 지역 선택). 그러나 필요한 명령은 다음과 같습니다. GET / PUT / DELETE 객체, 버킷 생성 및 목록; S3처럼 반응합니다.

두 번째 문제에 답하기 위해 Scality의 제품인 RING은 RING에 저장된 모든 객체의 체크섬 및 백그라운드 무결성 검사를 통해 참조하는 데이터 무결성 문제를 해결하는 소프트웨어 객체 스토리지 플랫폼이라는 점을 덧붙입니다. 객체 저장은 기본적으로 트랜잭션 쿼리이며 일단 객체가 “성공적으로 저장되었다”고 주장되면 지속적인 무결성 검사 (예 : 모든 읽기에서)를 통해 영원히 유지됩니다.

자세한 내용은 다루지 않겠습니다. 웹 사이트를 방문하여 일반적인 데이터 관리 악몽에서 스토리지 관리자를 완화하고 밤에 데이터를 사용할 수 있음을 알도록하는 방법을 이해할 수 있습니다. 항상. 🙂

최고, Marc Villemade @mastachand


답변

Newdream의 Ceph에는 Ceph 파일 시스템 자체와 동일한 객체 스토리지 시스템을 사용하는 S3 호환 fastcgi 게이트웨이가 있습니다. ( http://ceph.newdream.net/wiki/RADOS_Gateway ) 여전히 프로덕션 준비가되지 않았지만 정기적으로 업데이트합니다.

필자가 사용한 s3 라이브러리와 호환되지 않거나 클라우드 파일 스토리지 서비스 (자체 버전의 신속한 버전을 사용하는)에 대한 랙 공간의 자체 Java 클라이언트와 호환되지 않지만 테스트에서 Openstack의 객체 저장소가 더 안정적이라는 것을 알았습니다. s3과 Swift를 모두 지원하는 jclouds 프로젝트가 저에게 효과적이었습니다.


답변

Cloud Foundry vBlob을 볼 수도 있습니다.
https://github.com/cloudfoundry/vblob

VM이 “볼 수있는”파일 시스템 위에 S3 프로토콜의 공정한 청크를 구현하는 node.js 앱 (CF 통합을위한 Ruby 래퍼 포함)입니다.


답변

s3ql (GNU GPL V3)과 s3backer (GNU GPL v2를) 당신이 찾고있는 무엇.


답변

올드 / 대답 질문,하지만 https://github.com/basho/riak_cs은 단지에 오픈 소스 화했다 https://github.com/basho/riak_cs :. “Riak CS는 Riak의 상단에 내장 객체 저장 시스템이 용이 큰 객체를 Riak에 저장하고 S3 호환 인터페이스를 제공합니다. 또한 사용자 계정, 인증, 액세스 제어 메커니즘 및 계정 별 사용량보고와 같은 다중 테넌트 기능도 제공합니다. “