Ask Your Question

Revision history [back]

Ring Setup For Large Deploy

I'm looking for some guidance on the design of the rings for a larger deploy. Figure > 50K accounts, > 250K containers, > 5 billion objects. What I'm confused about is the ideal way to setup the rings and servers in this case. Would I want a separate set of servers for accounts, containers and objects? Or should every single server/device in the system be a part of all 3 rings? The instructions talk about storage nodes, which handle all 3 classes, but in a large deploy would I really want to do that?

For instance, to take an example from the setup instructions:

swift-ring-builder account.builder create 18 3 1 swift-ring-builder container.builder create 18 3 1 swift-ring-builder object.builder create 18 3 1 I wouldn't actually want each to have the same partition size, right?

And when it comes time to add more storage to the system, I don't need to have accounts and containers on every device?

swift-ring-builder account.builder add z$ZONE-$STORAGE_LOCAL_NET_IP:6002/$DEVICE$WEIGHT swift-ring-builder container.builder add z$ZONE-$STORAGE_LOCAL_NET_IP:6001/$DEVICE$WEIGHT swift-ring-builder object.builder add z$ZONE-$STORAGE_LOCAL_NET_IP:6000/$DEVICE$WEIGHT Right? A blip on the deployment_guide eludes to this, but it seems to stress to just put everything on everything. This seems too simple for a large deploy though.

It would be great to see a page in the docs about deploying large scale swift systems. http://swift.openstack.org/deployment_guide.html is pretty vague on this topic.

Thanks!