Storage Policy configuration on a SAIO deployment

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:

  1. Create a SAIO development VM as explained here: http://docs.openstack.org/developer/swift/development_saio.html
  2. 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

  3. 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.
  4. 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

  5. run remakerings to create new ring files
  6. Restart all swift services
  7. 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

Leave a comment