VMware has released a relatively new product called VMware Integrated OpenStack (VIO). This product is free for our customers who have Enterprise plus licensing, but actual support for the product is on a per CPU cost basis. Essentially, we have simplified the process for deploying OpenStack into a simple wizard. Although it takes a while to run through all the steps, it’s all done in the background which makes the deployment of this product so much easier for anyone wanting to use it or even just play around with it.
VIO is a very powerful cloud product which allows you or your tenants to quickly and efficiently provision instances (virtual machines). If you would like more information on OpenStack, you can see the following documentation as this guide will mainly be based on how to setup and install VIO.
Before starting, it’s important to note that VIO integrates heavily with NSX. While you can use a distributed virtual switch (DVS), I highly recommend that you install and configure NSX before going through the VIO implementation. Once you install VIO, you will have two options, use a DVS, or use NSX, and you won’t be able to switch after it’s all said and done.
Download VMware Integrated OpenStack here: VIO Appliance
As I will be deploying VIO in a lab environment with limited resources I will edit the CPU and Memory of the VIO VMs. You will want to do the same if you are deploying VIO in workstation or a home lab as VIO takes a minimum of 56 CPUs, 192GB of RAM and 565GB of disk space.. yes, you read that correctly.
Let’s get started!
Deploy the VIO OVA
Step 1. The first thing you will do is deploy the VIO Appliance. I have provided the entries I used below. A couple caveats when working through the deployment is to make sure that you enable DRS and only set one NTP server as there are issues when multiple servers are used; this will be fixed in a future release.
Edit default VIO configuration
Success! The initial password is not very fun to deal with, but at least you get to change it right after you login to the console.
Step 2. We are going to modify some of the configuration properties as I am running my deployment in a lab and I want to minimize the amount of resources consumed. If you are not worried about resources, or this is a production deployment, feel free to skip to step 7. Before making changes, you will have to sudo to root.
Step 3. Modify the omjs.properties file as shown below. As habit and best practice, I have taken a backup of the file before proceeding in each of these steps.
root@localhost:~# cd /opt/vmware/vio/etc/ root@localhost:/opt/vmware/vio/etc# cp omjs.properties omjs.properties.bak
Change the following lines
oms.use_linked_clone = false to oms.use_linked_clone = true
oms.datadisk_size = 60 to oms.datadisk_size = 20
You may also want to modify the number of CPUs and Memory that each of the OpenStack VMs will utilize in the same configuration file. The default is shown below, and my configuration follows.
oms.vmsize.cpu.lb = 2 oms.vmsize.cpu.controller = 8 oms.vmsize.cpu.db = 4 oms.vmsize.cpu.dhcp = 4 oms.vmsize.cpu.mq = 4 oms.vmsize.cpu.memcache = 2 oms.vmsize.cpu.compute = 2 oms.vmsize.cpu.storage = 2 oms.vmsize.cpu.smoke = 2 # MB oms.vmsize.memory.lb = 4096 oms.vmsize.memory.controller = 16384 oms.vmsize.memory.db = 16384 oms.vmsize.memory.dhcp = 16384 oms.vmsize.memory.mq = 16384 oms.vmsize.memory.memcache = 16384 oms.vmsize.memory.compute = 4096 oms.vmsize.memory.storage = 4096 oms.vmsize.memory.smoke = 4096
oms.vmsize.cpu.lb = 1 oms.vmsize.cpu.controller = 1 oms.vmsize.cpu.db = 1 oms.vmsize.cpu.dhcp = 1 oms.vmsize.cpu.mq = 1 oms.vmsize.cpu.memcache = 1 oms.vmsize.cpu.compute = 1 oms.vmsize.cpu.storage = 1 oms.vmsize.cpu.smoke = 1 # MB oms.vmsize.memory.lb = 1024 oms.vmsize.memory.controller = 3072 oms.vmsize.memory.db = 3072 oms.vmsize.memory.dhcp = 3072 oms.vmsize.memory.mq = 3072 oms.vmsize.memory.memcache = 3072 oms.vmsize.memory.compute = 1024 oms.vmsize.memory.storage = 1024 oms.vmsize.memory.smoke = 1024 oms.disable_datastores_anti_affinity = false oms.disable_hosts_anti_affinity = false oms.skip_cluster_vmotion_check = false
Step 4. Next, I will change the number of backup edge vms, which are essentially on standby whenever networking needs to be provisioned.
root@localhost:/opt/vmware/vio/etc# cd /var/lib/vio/ansible/roles/config-controller/templates/etc/neutron/plugins/vmware root@localhost:/var/lib/vio/ansible/roles/config-controller/templates/etc/neutron/plugins/vmware# cp nsxv.ini nsxv.ini.old
Add the following line to the nsxv.ini file.
backup_edge_pool = service:large:1:3,service:compact:1:3,vdr:large:1:3
root@localhost:/var/lib/vio/ansible/roles/config-controller/templates/etc/neutron/plugins/vmware# cd /var/lib/vio/ansible/roles/config-controller/tasks/ root@localhost:/var/lib/vio/ansible/roles/config-controller/tasks# cp neutron.yml neutron.yml.old
Deploying VMware Integrated OpenStack
Step 7. Log into vSphere Web Client and click the VIO link
Step 8. Click Summary, Deploy Open Stack
Step 9. Follow the wizard to configure your VIO deployment. While this may seem long, it definitely simplifies the entire process on the backend for you! I have provided my configuration as an example below.
Step 10. It will then bring you to the monitor screen to watch your progress. There are so many things VIO has to configure, so be patient! In my slow lab this took almost an hour to finish, but that is nothing compared to setting up OpenStack manually!
Step 11. You can click VIO on the left and see it reconfiguring the VMs
Step 12. Finally you see the Status as “Service Ready”
You are now ready to play around with VIO. I will be writing more documentation surrounding VIO and how to use the product but let me know if you have any issues during the deployment as I will do my best to help!