Apache CloudStack supports the usage of S3 and Swift object stores to backup the contents of NFS secondary storage – providing region-wide availability of secondary storage assets. This document provides instructions for rapidly provisioning S3 and Swift environments to support development and testing of this capability.
N.B. These environments are intended for functional testing only. Performance/load testing should be performed in environments that conform to vendor-specified guidelines (typically multiple bare metal servers).
In order to achieve operational repeatability and environmental consistency, Vagrant is employed to provision and build local virtual machines on the VirtualBox hypervisor. All Vagrant configurations are acquired via git. Therefore, ensure that the Vagrant, Virtualbox, and git are properly installed and configured before attempting to create the environments described in this document.
Riak CS is an open source object storage system that provides an S3 compatible API. The following steps will create a local Riak CS virtual machine on Ubuntu 12.04.2:
Following completion of these steps, Riak CS will be available @ 33.33.33.10:8080.
OpenStack Swift is OpenStack's open source object storage system. The OpenStack community provides Devstack infrastructure to created local OpenStack environments. A pending patch wraps Vagrant around this mechanism to quickly create local virtual machines with it. Finally, by default, Devstack does not enable Swift. The following steps will create a local Devstack virtual machine that includes a Swift instance:
enabled_services=swift
swift_hash=66a3d6b56c1f479c8b4e70ab5c2000f5
swift_replicas=1
swift_data_dir=$DEST/data
<style type='text/css'> .FootnoteMarker, .FootnoteNum a { background: transparent url(/confluence/download/resources/com.adaptavist.confluence.footnoteMacros:footnote/gfx/footnote.png) no-repeat top right; padding: 1px 2px 0px 1px; border-left: 1px solid #8898B8; border-bottom: 1px solid #6B7C9B; margin: 1px; text-decoration: none; } .FootnoteNum a { margin-top: 2px; margin-right: 0px; } .FootnoteNum { font-size: x-small; text-align: right; padding-bottom: 4px; } .footnote-th1 { text-align: right; } .Footnote { padding-left: 7px; margin-bottom: 4px; border: 1px none #DDDDDD; writingMode: tb-rl; } .accessibility { display: none; visibility: hidden; } @media aural,braille,embossed { .FootnoteMarker, .FootnoteNum a { border: 1px solid #000000; background: #ffffff none; } .accessibility { display: run-in; visibility: visible; } } </style> <script type='text/javascript' language='JavaScript'> //<!--\n var effectInProgress = {}; var despamEffect = function (id,effectType,duration) { if ((effectInProgress[id]) || (typeof(Effect)=="undefined") || (typeof(Effect[effectType])=="undefined")) return; new Effect[effectType](id); effectInProgress[id]=true; setTimeout('effectInProgress[\"'+id+'\"]=false;',duration*1000); }; var oldFootnoteId = ''; var footnoteHighlight = function(id,pulsateNum) { if (oldFootnoteId!='') document.getElementById('Footnote'+oldFootnoteId).style['borderStyle'] = 'none'; oldFootnoteId = id; document.getElementById('Footnote'+id).style['borderStyle'] = 'solid'; despamEffect('Footnote'+id,'Highlight',1) if (pulsateNum) despamEffect('FootnoteNum'+id,'Pulsate',3) } var footnoteMarkerHighlight = function(id) { if (oldFootnoteId!='') document.getElementById('Footnote'+oldFootnoteId).style['borderStyle'] = 'none'; oldFootnoteId = ''; despamEffect('FootnoteMarker'+id,'Pulsate',3) } //--> </script> 1
Following completion of these steps, Swift will be available on 10.0.3.50 and can be validated through the Horizon interface available at http://10.0.3.50.
Reference | Notes |
---|---|
1 | A Vagrant Devstack provision downloads roughly 300 MB of data. Dependent on available bandwidth, this step may take a long time to complete. |