Cloud Computing Storage
Total Page:16
File Type:pdf, Size:1020Kb
CLOUD COMPUTING STORAGE From POSIX to key-value stores tmpmtp6I4.odt Confidentiel © Nexedi SA / ISO 16016 Table des signatures Nom Fonction Signature Date Organisme Rédigé par: PDG 2011-11-16 Jean-Paul Smets Nexedi SA Rédigé par: Ched de Projet 2011-11-16 Romain Courteaud Nexedi SA Approuvé par: PDG 2011-11-16 Jean-Paul Smets Nexedi SA Soumis par: PDG 2011-11-16 Jean-Paul Smets Nexedi SA tmpmtp6I4.odt Confidentiel © Nexedi SA / ISO 16016 Liste de diffusion Smets, J-P. Nexedi SA Fermigier, S. Nuxeo SAS Brettnacher, T. Nexedi SA Laisne,J-P. Bull SAS Courteaud, R. Nexedi SA tmpmtp6I4.odt Confidentiel © Nexedi SA / ISO 16016 Historique des modifications Version Date Page Description des modifications 001 2010-10-09 Toutes First draft 002 2010-10-10 Toutes 003 2011-04-19 Toutes First preliminary version, submitted for review 004 2011-11-16 Toutes Release Candidate tmpmtp6I4.odt Confidentiel © Nexedi SA / ISO 16016 Table of Content 1 Introduction..................................................................................................7 1.1 Goals and scope.......................................................................................................7 1.2 Plan.......................................................................................................................... 7 1.3 References................................................................................................................7 1.3.1.Applicable Documents..........................................................................................8 1.3.2.Reference Documents..........................................................................................8 1.4 Abbreviations.........................................................................................................10 2 Executive Summary....................................................................................11 3 Storage for the Cloud..................................................................................13 3.1 The Evolution of the Storage Paradigm..................................................................14 3.2 Scientific background.............................................................................................16 3.3 Cloud Storage Use Cases........................................................................................17 4 Key-Value Storage: Blocks or Blobs.............................................................19 4.1 Linux Block Device.................................................................................................20 4.2 NoSQL key-value stores..........................................................................................21 5 Distributed file systems: Shared Directories and Files................................23 5.1 From file system to key-value.................................................................................24 5.2 From key-value to file system.................................................................................25 6 NoSQL beyond Mere Storage......................................................................27 6.1 Key-valye Store Limitations....................................................................................27 6.1.1.Authentication.....................................................................................................27 6.1.2.Encryption..........................................................................................................28 6.1.3.Multiple namespaces..........................................................................................28 6.1.4.Indexing..............................................................................................................28 6.2 NoSQL Document Stores........................................................................................29 6.2.1.Querying through map-reduce code injection.....................................................29 6.2.2.Querying through indices....................................................................................29 6.3 NoSQL Columnar Stores.........................................................................................29 6.4 NoSQL Graph Databases........................................................................................29 6.4.1.Querying through graph crawling.......................................................................29 6.4.2.Querying through semantic indices....................................................................30 tmpmtp6I4.odt Confidentiel © Nexedi SA / ISO 16016 7 Storage Allocation API.................................................................................31 7.1 Existing Storage Allocation APIs.............................................................................31 7.2 SlapOS: A Universal Allocation API for Storage.......................................................32 7.2.1.Allocating Storage with slapos request in pytjon................................................32 7.2.2.Allocating Storage with slapos command line....................................................32 7.2.3.Multitenancy.......................................................................................................32 7.2.4.Automating Storage Scalability Testing..............................................................33 7.3 The SLAP REST API.................................................................................................33 7.3.1.Exchange format................................................................................................33 7.3.2.Response status code........................................................................................33 7.3.3.Instance Methods...............................................................................................34 7.3.4.Deleting an instance...........................................................................................35 7.3.5.Get instance information.....................................................................................36 7.3.6.Get instance authentication certificates..............................................................36 7.3.7.Bang instance.....................................................................................................37 7.3.8.Modifying instance..............................................................................................37 8 Recommendations......................................................................................39 8.1 The End of POSIX....................................................................................................40 tmpmtp6I4.odt Confidentiel © Nexedi SA / ISO 16016 1 Introduction 1.1 Goals and scope This document is a preliminary report for Task 2 of Work Package 1 (IaaS) of the COMPATIBLE ONE research project. It provides an overview of current prac- tices related to Cloud Computing storage recommendations for further research. 1.2 Plan This document is composed of 8 chapters: • Chapter 1 defines goals, scope, plan, referenced documents and abbrevi- ations; • Chapter 2 is an executive summary; • Chapter 3 introduces Cloud storage evolution and scientific background; • Chapter 4 provides an overview of key-value stores; • Chapter 5 provides an overview of distributed file systems; • Chapter 6 introduces desirable features for Cloud storage which go be- yond mere storage; • Chapter 7 proposes a universal API to allocate Cloud Storage; • Chapter 8 proposes recommendations for further Cloud R&D. 1.3 References This section describes applicable documents and reference documents. tmpmtp6I4.odt Confidentiel © Nexedi SA / ISO 16016 1.3.1.Applicable Documents ID Title Reference No Version/Rev. 12ème Appel à projets du FUI (Fonds Unique AD- Interministériel) N/A N/A 1 http://www.systematic-paris-region.org/fr/les- projets/appels-a-projets/appels-a-projets-du-fui 1.3.2.Reference Documents ID Title Reference No Version/Rev. QEMU-RBD RD-1 N/A N/A http://ceph.newdream.net/wiki/QEMU-RBD CEPH RD-2 http://ceph.newdream.net/ N/A N/A http://ceph.newdream.net/publications/ Sheepdog RD-3 N/A N/A http://www.osrg.net/sheepdog/ Sage A. Weil. Ceph: Reliable, Scalable, and High- RD-4 Performance Distributed Storage. Ph.D. thesis, N/A N/A University of California, Santa Cruz, December, 2007. P2P-like Tahoe file system offers secure storage in the cloud RD-5 http://arstechnica.com/open- N/A N/A source/news/2009/08/p2p-like-tahoe-file system- offers-secure-storage-in-the-cloud.ars Brian Warner, Zooko Wilcox-O'Hear, Rob Kinninmont. RD-6 Tahoe: A Secure Distributed file system N/A N/A http://tahoe-lafs.org/~warner/pycon-tahoe.html TAHOE LAFS RD-7 N/A N/A http://tahoe-lafs.org/trac/tahoe-lafs Zooko's Hack Log RD-8 http://insecure.tahoe-lafs.org/uri/URI:DIR2- N/A N/A RO:ixqhc4kdbjxc7o65xjnveoewym:5x6lwoxghrd5rxh wunzavft2qygfkt27oj3fbxlq4c6p45z5uneq/blog.html Memcachefs RD-9 N/A N/A http://memcachefs.sourceforge.net/ Moxi RD-10 N/A N/A http://code.google.com/p/moxi/ Moxi, a memcached proxy RD-11 http://www.slideshare.net/northscale/moxi- N/A N/A memcached-proxy Alexandre LISSY, Arnaud Laprévote. Espace de RD-12 N/A N/A stockage avec XtreemFS. tmpmtp6I4.odt Confidentiel © Nexedi SA / ISO 16016 ID Title Reference No Version/Rev. Memagent RD-13 N/A N/A http://code.google.com/p/memagent/ Linux Block Devices RD-14 http://www.kernel.org/doc/htmldocs/kernel- N/A N/A api/blkdev.html Membase RD-15 N/A N/A http://www.membase.org/ An introduction to block device drivers RD-16 N/A N/A http://www.linuxjournal.com/article/2890?page=0,0 Caching