Hi,
I have been trying to achieve the same thing.
After few research, I believe the way is to set up different availability zone per host; I don't know if that's the best practice though.
Add this line to your cinder.conf file on every cinder-node:
storage_availability_zone=YOUR_HOSTNAME # Or whatever you want
Restart the cinder-volume and check that the zone has changed for your cinder-node:
# cinder-manage host list
Then whenever you want to create a volume do (with the other options you want):
# nova volume-create --display-name NAME --availability-zone ZONE SIZE
I have tried to create and attach volume on/from 2 different hosts and it works well so far.
I'm aware this isn't a complete answer; but as I'm still looking for answers myself, I can't give more at the moment, but as it gives you a point to start your research I think this reply is worth it.
The "bad thing" about it is that you then have to specify the availability-zone you want to use for every creation.
Maybe there are ways to specify a default zone/host on the controller node and/or
it might also depends of your configuration as the filters configuration for cinder can change the decision making on which host volume are created.
Hope it help
Regards,