Rackspace

From MattWiki
Jump to: navigation, search

Rackspace Cloud Servers

Rackspace Cloud Load Balancers

Rackspace Cloud Files

Cloud files is a cloud storage service that provides "unlimited online storage and CDN" for media (examples given include backups, video files, user content) on a utility computing basis (at USD 0.15/GB/month). was originally launched as Mosso CloudFS on May 5, 2008 and is similar to Amazon Simple Storage Service.[1] Unlimited files of up to 5 GB can be uploaded, managed via the online control panel or RESTful API and optionally served out via Akamai Technologies' Content Delivery Network.[2]

API

In addition to the online control panel the service can be accessed over a RESTful API with open source client code available in C#/.NET, Python, PHP, Java and Ruby. Rackspace-owned Jungle Disk allows Cloud Files to be mounted as a local drive within supported operating systems (Linux, Mac OS X and Windows).

Security

Redundancy is provided by replication three full copies of data across multiple computers in multiple "zones" within the same data center, where "zones" are physically (though not geographically) separate and supplied separate power and Internet services. Uploaded files can be distributed via Akamai Technologies to "hundreds of endpoints across the world" which provides an additional layer of data redundancy.

The control panel and API are protected by SSL and the requests themselves are signed and can be safely delivered to untrusted clients. Deleted data is zeroed out immediately.[3]

Use cases

Use cases considered as "well suited" include backing up or archiving data, serving images and videos (which are streamed directly to the users' browsers), serving content over content delivery networks, storing secondary static web-accessible data, developing data storage applications, storing fluctuating and/or unpredictable amounts of data and reducing costs.

Caveats

There is no native operating system support for the Cloud Files API so it is not yet possible to "map" or "mount" it as a virtual drive without third-party software like JungleDisk that translates to a supported standard such as WebDAV. There are no concepts of "appending" or "locking" data within Cloud Files (which may affect some disk mirroring or backup solutions), nor support for permissions or transcoding. Data is organised into "containers" but it is not possible to create nested folders without a translation layer.[4]

The st (Swift Tool) tool

To upload to Rackspace Cloudfiles

st -A https://auth.api.rackspacecloud.com/v1.0 -U <username> -K <token> upload -c <container> <file or directory>

To download to Rackspace Cloudfiles

st -A https://auth.api.rackspacecloud.com/v1.0 -U <username> -K <token> download <container> <file or directory>

cURL tool

curl -X PUT -H 'X-Auth-Token: <token>' http://<storage_url>/<container>/<file>

Cyberduck

Cyberduck is a GUI interface for Mac OS X and Windows clients (as of version 4.0) licensed under the GPL. Cyberduck is written in the Java language and using the Cocoa user interface framework. It supports FTP/TLS (FTP secured over SSL/TLS), using AUTH TLS as well as directory synchronization. The user interacts with the Cocoa application's GUI, including file transfer by drag and drop, and notifications via Growl. In addition, it is also able to open some files in external text editors. Cyberduck may be downloaded from http://cyberduck.ch/.

Large File Support

You will need to segment your large files and upload a manifest file that maps their segments. You will have access to the segments just like you would any other file and large files will be downloaded as a single file.[5]

First, Upload The Segments:

curl -X PUT -H 'X-Auth-Token: <token>' http://<storage_url>/container/myobject/1 --data-binary '1'
curl -X PUT -H 'X-Auth-Token: <token>' http://<storage_url>/container/myobject/2 --data-binary '2'
curl -X PUT -H 'X-Auth-Token: <token>' http://<storage_url>/container/myobject/3 --data-binary '3' 

Next, Create The Manifest File:

curl -X PUT -H 'X-Auth-Token: <token>' -H 'X-Object-Manifest: container/myobject/' \
http://<storage_url>/container/myobject --data-binary 

To Download The Segments As A Single Object:

curl -H 'X-Auth-Token: <token>' http://<storage_url>/container/myobject

References