Bryan-
Here's the short howto. I will look at adding an optional section to that Wiki that outlines this.
# branch charms
bzr branch lp:charm/swift-proxy
bzr branch lp:charm/swift-storage
# create a config yaml file for the storage charm.
# the block-device setting needs to point to a block
# device that exists on *all* storage nodes, to be formated
# mounted and used as a backing store for objects
echo <<END >swift-storage.yaml
swift-storage:
block-device: xvda2
END
# deploy proxy
juju deploy --repository=$REPO local:swift-proxy
# deploy storage
juju deploy --config=swift-storage.yaml --repo=$REPO local:swift-storage
# add the relation
juju add-relation swift-proxy:swift-proxy swift-storage:swift-proxy
# add 2 more units to give us the minimum 3 required nodes
juju add-unit swift-storage
juju add-unit swift-storage
This should give you a functional cluster that maintains 3 replicas of each object. It can be used as its own, separate cluster or you can tie it into the rest of your Openstack cloud to be used as the backend store for your VM images:
juju add-relation glance:object-store swift-proxy:object-store
You can test this out using the EC2 provider if you don't have 4 extra servers laying around.
A couple of notes:
- The current swift charms were more of a proof-of-concept and aren't really designed to allow the storage nodes to scale up and down very well.
- You'll need 4 nodes total to deploy this (1 proxy, 3 storage)
- The current charms make use of a deprecated, fake authentication system called tempauth. With Keystone added as a core Openstack component, swift should be using this for authentication/authorization (Keystone charm coming soon)
- There are some work items this cycle to expand/rewrite the swift charms to allow scaling, authenticating against keystone, and taking advantage of yet-to-land Juju features that allow intelligent machine selection and placement of charms.