Note : A detailed guide to a Multi-Node devstack setup can be found in openstack documentation, this guide simply elaborates on the node configuration.
This guide covers setting up a separate controller, cinder and compute node via devstack. Configuration of each node is addressed individually.
Controller Node
The controller node must be brought up first as the cinder/compute node rely on it for services. You would bring up devstack regularly using the following configuration :
We disable c-vol, n-cpu & n-net because we do not want to run the cinder volume, nova compute or nova network on the controller node, as we have separate nodes for this. Setting MULTI_HOST=True is required for a multi node setup.
Once devstack has been launched, remember to allow inbound amqp & mysql connections via the following iptables rules :
While the cinder and compute node can be brought up simulatenously, ensure that the controller node is completely up and running before bringing up the other nodes.
Cinder Node
Next we bring up the cinder node. The configuration here is slightly more complicated.
We only enable the required services, c-sch and c-vol here as this will be a cinder only node. Note the difference in format while disabling individual services and enabling an array.
We also add a post config section to cinder to make some changes required for a multi node setup. The my\_ip value, used to indicate iscsi target address defaults to SERVICE\_HOST which normally indicates the devstack host ip. For a multi-node setup we need to change it to HOST\_IP. We also declare an lvm backend with a backend name (lvmdriver-1 in this case). When the cinder service with an lvm backend is started, it creates a new volume group named in the format \<VOLUME\_GROUP\>-\<backend_name\>. By specifying the VOLUME\_GROUP under the named lvm backend configuration section, we can control the name to be stack-volumes-lvmdriver-1. By creating this volume group before devstack is brought up, when can make devstack use our preconfigured VG.
Once devstack has been launched, remember to allow inbound iscsi connections via the following iptables rules :
For the compute node, we similarly enable only the required services. Once you have all three nodes up and running, you should have a fully working multi-node setup deployed. Happy stacking !
Note : devstack code changes quite rapidly and might be sometimes unstable. This instructions were verified working at the time of the Kilo Release, but YMMV.
Copying large blocks of text within vim instances can be messy, and often mess up formatting while pasting text in another vim instance. This post explains how to use a temporary buffer to store blocks of text you want to copy/paste into local or remote instances. This is fairly straightforward as long as you are a little comfortable with vim.
Enter visual mode (esc + v) and select the text you wish to copy. Yank your text (y) and then run the following commands to open a temporary buffer, paste contents into buffer, and close buffer and return to previous buffer and release the *.swp file
Here, we are using /tmp/dummy as our temporary buffer. Now copy your dummy file to your remote location, or skip this step if you’re copying between local instances. Make sure you use the correct path if you rename or move the temporary buffer file. Pasting text is as simple as going to normal mode and reading in the file
Note : The rpm versions keep changing with every package update and might be out of date. You can check the correct current versions by going here
You should have moved completely from RHEL packages to CentOS packages at the end of this step. Please note that these instructions are for x86_64, you need to replace ‘x86_64’ with ‘i386’ in the urls if you are on a 32-bit system.
Note : The rpm versions keep changing with every package update and might be out of date. You can check the correct current versions by going here
While the instructions on the CentOS wiki are pretty good, they seem to be lacking removal of redhat-release-server, which is required to actually move to RHEL to CentOS repos. This is an updated version of that page, with slightly fewer commands.
You should have moved completely from RHEL packages to CentOS packages at the end of this step. Please note that these instructions are for x86_64, you need to replace ‘x86_64’ with ‘i386’ in the urls if you are on a 32-bit system.