Instructions for testing the new Openstack Swift Storage Policy feature with a Gluster-Swift backend as one of the policies storing data on a GlusterFS volume.
Follow the steps below:
- Create a SAIO development VM as explained here: http://docs.openstack.org/developer/swift/development_saio.html
- modify /etc/swift/swift.conf to add storage policies. Example:
[storage-policy:0]
name = chicken
default = yes[storage-policy:1]
name = turkey[storage-policy:2]
name = gluster
- create new “virtual” disks for each node. In the SAIO instructions you created
/mnt/sdb1/1/node/sdb1
, now create/mnt/sdb1/1/node/sdc1
and follow the same pattern for the other 3 nodes. - modify
remakerings
scripts that was installed as part of the SAIO deployment. Add new object rings for each new storage policy per node. In the example below object-1 maps to storage-policy:1 (turkey) and object-2 maps to storage-policy:2 (gluster)
swift-ring-builder object.builder create 10 3 1
swift-ring-builder object.builder add r1z1-192.168.56.101:6010/sdb1 1
swift-ring-builder object.builder add r1z2-192.168.56.101:6020/sdb2 1
swift-ring-builder object.builder add r1z3-192.168.56.101:6030/sdb3 1
swift-ring-builder object.builder add r1z4-192.168.56.101:6040/sdb4 1
swift-ring-builder object.builder rebalance
swift-ring-builder object-1.builder create 10 3 1
swift-ring-builder object-1.builder add r1z1-192.168.56.101:6010/sdc1 1
swift-ring-builder object-1.builder add r1z2-192.168.56.101:6020/sdc2 1
swift-ring-builder object-1.builder add r1z3-192.168.56.101:6030/sdc3 1
swift-ring-builder object-1.builder add r1z4-192.168.56.101:6040/sdc4 1
swift-ring-builder object-1.builder rebalance
swift-ring-builder object-2.builder create 1 1 1
swift-ring-builder object-2.builder add r1z5-192.168.56.64:6010/swiftvol_ 100.0
swift-ring-builder object-2.builder rebalance* Note that policy:0 and policy:1 are being handled by the same object servers while policy:2 is being handled by another object server; in this case it is a gluster-swift object server running on a different VM. To configure gluster-swift follow the directions here: Gluster-Swift Quick Start Guide
- run
remakerings
to create new ring files - Restart all swift services
- Create new containers and specify their storage policy. Example:
curl -i -H 'X-Storage-User: test2:tester2' -H 'X-Storage-Pass: testing2'-H 'X-Storage-Policy: gluster' http://192.168.56.101:8080/v1/AUTH_test2/test2c2