Building an OpenStack Swift object store might seem daunting because of its do-it-yourself nature, but some simple tips can help you deploy and manage Swift more easily.
OpenStack gets a little bit of a bad rap because it's open source, so there's no vendor support. If you're a cloud administrator, it might be scary to stand up a Swift object store and be completely on your own to troubleshoot it. But Swift's many flexible, customizable features might also be what draw you to it. If that's the case, these four tips for working with OpenStack Swift will help you out:
Manage Swift from Horizon and the Swift CLI
Swift object storage was developed to be accessed via the RESTful API. You cannot just mount it into your local Linux operating system, but you can access it using the Swift command-line interface (CLI) or the Horizon web interface. The Swift CLI works a bit like an FTP client: You can use the "post" command to create a container, then use the "list" command to verify that the container was successfully created.
For the most complete access to a Swift object store, use the command-line utility. If, however, you want to be able to perform quick operations on Swift, you may also use the Horizon web interface. In Horizon, you'll find a simple interface to access and create containers and upload or download files to it.
Organize Swift in zones
When you set up Swift storage, you will organize it using account, container and object rings. These rings play a role in the initial setup of the storage environment, but once it's operational, you won't deal with them very often; the binary object will be written to any server in the Swift object store. This works fine for small to medium-size Swift environments, but it doesn't work well if you have multiple data centers.
If you're using Swift in a multisite environment, consider using zones. When you create multiple zones, you can configure data replication across them. This provides the best possible data availability. Alternatively, you can force data to be kept within a zone. You can put many Swift machines in a zone, and you can keep zones within a location, or you can spread them across multiple locations to provide exactly the level of data availability your organization needs.
Manage Swift Access Permissions
Swift allows you to manage permissions on containers in the object store. To specify an access control list (ACL), use the swift post command. For instance, use the command swift post myfiles -r "mygroup:*" to set a Read ACL for mygroup to myfiles. Alternatively, you can use the -w option to set a write ACL, as in swift post myfiles -w "users:linda,Admin:*" which grants write permissions to Linda, who is a member of the group Users, and to all members of the group Admin. You can verify current permission settings on files using swift stat. To figure out what is set on myfiles, use swift stat myfile.
Automate Swift ring creation
If you have ever tried to set up Swift manually, you probably discovered that it's not fun; it's not exactly a user-friendly procedure. You must create multiple ring files by hand, and then distribute them across the different servers in your Swift topology. But you usually don't need to set Swift up manually: You can use your OpenStack distributions deployment mechanism instead.
Some OpenStack distributions have a deployment mechanism that was developed to be scalable, and as a result, can be difficult to use. Other OpenStack distributions offer an accessible deployment option, such as RDO, the CentOS native distribution. It offers the Puppet-based Packstack deployment, which only requires you to set a few parameters if you install it through an answer file. Using parameters such as CONFIG__SWIFT_INSTALL and CONFIG_SWIFT_STORAGES makes it easy to set up your own Swift object store.
OpenStack releases: A timeline
Comparing Swift and Ceph
OpenStack still can't scale to IT's liking