Co-locating services While for performance reasons you may want OpenStack project's services to live on different machines, this is not always practical. For example, in small deployments there might be too few machines available, or a limited number of public IP addresses. Components from different OpenStack projects are not necessarily engineered to be able to be co-located, although many users report success with a variety of deployment scenarios. The following is a series of pointers to be used when co-location of services from different OpenStack projects on the same machine is a must: Ensure dependencies aren't in conflict. The OpenStack Continuous Integration team does attempt to ensure there is no conflict, so if you see issues during package installation, consider filing a bug. Monitor your systems and ensure they are not overloaded. Some parts of OpenStack use a lot of CPU time (such as Object Storage Proxy Servers), while others are I/O focused (such as Object Storage Object Servers). Try to balance these so they complement each other. Beware of security. Different parts of OpenStack assume different security models. For example, OpenStack Object Storage (Swift) assumes the storage nodes will be on a private network and does not provide additional security between nodes in the cluster. Ensure the ports you are running the services on don't conflict. Most ports used by OpenStack are configurable.