Installing OpenStack Nova Compute on Hyper-V

Post 7 of 9

We did a lot of work this year on OpenStack and Hyper-V integration, with the result of bringing back Hyper-V in the Nova sources in time for the Folsom release. We are currently working on a lot of cool features to be released in time for Grizzly, so stay tuned!

One of our goals was being able to install and configure Nova compute on Hyper-V in the simplest possible way, using a nice and tidy GUI for the occasional deployment or an automated and unattended mode for deployments on a massive number of servers. The result is the installer that I’m going to present in this post, I have to admit that we are quite proud of it :-)

To begin, all you need is an installation of the Microsoft free Hyper-V Server 2008 R2 or 2012 or as an alternative Windows Server 2008 R2 or 2012 with the Hyper-V role enabled.

We suggest to use the free Hyper-V Server edition instead of Windows Server for a few reasons:

  1. It’s free :-)
  2. It runs a very limited subset of the Windows Server operating system, which means that it has a lower impact on security updates and management
  3. There’s no difference in features or performance compared to the full Windows Server

If you want to see how Hyper-V works with OpenStack but you don’t have a server or PC on which to install it, well you can even run it on top of another hypervisor (for test purposes only, this is of course TOTALLY unsupported). As an example you can run it in a VM on top of VMWare Workstation 9, Fusion 5 or ESXi 5.

Hyper-V Nova Compute Installer

We are going to install on Hyper-V only the OpenStack Compute role, so you’ll need to run the other required roles on separate hosts or VMs. If you don’t plan to deploy it in a production environment, I suggest you to create an Ubuntu Server 12.04 VM in Hyper-V or elsewhere with a DevStack deployment.

Once your Hyper-V setup is done, you can copy our installer on a folder on the server and run it.
On Hyper-V / Windows Server 2012, you can even download and run it directly from a Powershell prompt:

$src = ‘http://www.cloudbase.it/downloads/HyperVNovaCompute_Folsom.msi’
$dest = “$env:temp\HyperVNovaCompute_Folsom.msi”
Invoke-WebRequest -uri $src -OutFile $dest
Unblock-File $dest
Start-Process $dest

Here’s how the welcome screen look like:

After accepting the license agreement the features selection will appear:

OpenStack Nova Compute

This is the core feature of the package. It installs a dedicated Python environment, all required dependencies and a Windows service called nova-compute. By clicking on “Browse” it is possible to change the installation folder.

Live Migration

Available on 2012 but not in 2008 R2, requires the host to be a member of a domain (can be even a Samba domain). This feature enables and configures Hyper-V “shared nothing” live migration. Beside KVM, Hyper-V is the only OpenStack hypervisor supporting it, with the additional advantage that thanks to this installer it’s unbelievably easy to setup!

iSCSI Initiator Service

Enables and starts the Microsoft iSCSI initiator service, required for Cinder volume management.

OpenStack Command Prompt

Creates  an OpenStack command prompt shortcut. This is especially useful on Windows Server or on a workstation in order to have a ready made environment with the PATH and other environment variables properly set.

FreeRDP for Hyper-V

FreeRDP is an amazing cross platform open source RDP client that works also with the Hyper-V RDP extensions required to connect to VM consoles. I blogged here in detail about it.

The next steps are required to handle the service configurations and are displayed in function of the selected features.

Nova compute requires one bridge (virtual switch in Hyper-V terms), which can be automatically created by the installer.

The basic configuration consists in providing the settings for the glance server address, RabbitMQ server address, Nova database and the path where the Nova compute driver will save the Hyper-V instances and Glance images.

“Limit CPU features” is required when live migration is used between servers with different CPU architectures.
When “Use CoW Images” is enabled, the Nova compute driver creates differencing disks based on the glance VHD images, instead of copying the entire image for each spawned instance. This leads to massively shorter instance deployment times.

Here’s one of my favorite parts. Live migration can be configured here without having to use Microsoft Hyper-V Manager or Powershell. All you have to do is to choose the authentication type (we suggest Kerberos), the maximum number of parallel live migrations, and IP limitations if needed. Please note also that live migration requires that the Nova Compute service runs with domain credentials. The selected domain user will be automatically added to the local administrators group.

Now lean back, relax, and wait for the installer to do his job :-)
During this step files get copied, services and components get registered, the nova.conf file is written and finally the nova-compute service is started

Once the setup is finished, you can always start it again to change / add / remove any feature.

FAQ

here’s also a quick FAQ for activities that you might need to perform on the Hyper-V server.

How do I restart the compute service?

net stop nova-compute && net start nova-compute

How do I restart the iSCSI initiator service service?

net stop msiscsi && net start msiscsi

How do I perform an unattended setup

You can find here all the supported properties and a full example.

How do I log the installer activity?

msiexec /i HyperVNovaCompute_Folsom.msi /l*v log.txt

How do I uninstall this package if I don’t have the MSI file?

msiexec /uninstall {792BADAA-8FE0-473C-BAD7-CAFA2AFF4F2D}

, , ,

This article was written by apilotti

14 comments:

Matt WilliamsOctober 20, 2012 at 2:19 AMReply

When using the installer on Windows 8 Enterprise I do not get any options for the Virtual Switch. I already have one configured, and it does not show in the list. Additionally, if I choose for the installer to create one the network interface list is also empty. Any thoughts how I should proceed? Thanks!

Alessandro PilottiOctober 23, 2012 at 10:36 AMReply

I’m currently traveling back to Europe, going to take a look at your issue as soon as I get to the office. In the meantime you can pass the vswitch name on the command line, see the unattended mode page for details, thanks

Alessandro PilottiOctober 24, 2012 at 2:07 PMReply

Hi Matt,
I replicated your issue. On Windows 8 for the moment you need to start the installer from an elevated command prompt. We’re going to update the installer in order to always start elevated.

Cloudbase SolutionsOctober 25, 2012 at 10:14 PMReply

Hi Matt,

the installer requires elevation on Windows 8. We just updated the MSI to show a warning in case of missing privileges.

OpenStack Community Weekly Newsletter (Nov 9-16) » The OpenStack BlogNovember 17, 2012 at 3:06 AMReply

[...] Installing OpenStack Nova Compute on Hyper-V [...]

OpenStack Community Weekly Newsletter (Nov 9-16) > Massif MonitorNovember 17, 2012 at 3:38 AMReply

[...] Installing OpenStack Nova Compute on Hyper-V [...]

FrankNovember 17, 2012 at 3:59 AMReply

Well done, thanks. I wish the install on Linux was as easy 8-

Cloudbase SolutionsNovember 19, 2012 at 6:27 PMReply

Tx Frank! :-)

One of our goals was to make the process as easy as possible.

Cloudbase Solutions | DevStack on Hyper-VNovember 20, 2012 at 3:48 PMReply

[...] installation is very easy, just follow the steps available here! Remember to specify the IP address of your DevStack VM for Glance and RabbitMQ. As Nova database [...]

JamesDecember 30, 2012 at 1:09 AMReply

I get error: “Invalid parameter” when trying to install on Windows Server 2012.
Any help would be appreciated.

Thanks.

Tony lamJanuary 26, 2013 at 8:40 PMReply

Please Help. Same Error. Windows 2012 Standard with Hyper-V Role installed.

Tony lamJanuary 26, 2013 at 8:42 PMReply

Here is the log after running msiexec /i HyperVNovaCompute_Folsom.msi /l*v log.txt

MSI (c) (7C!4C) [01:36:27:259]: PROPERTY CHANGE: Adding CA_EXCEPTION property. Its value is ‘Invalid parameter ‘.
Invalid parameter
MSI (c) (7C!4C) [01:36:30:071]: Product: OpenStack Hyper-V Nova Compute — Invalid parameter

CustomAction exception details: 0×80041008 : Invalid parameter
Action ended 1:36:30: CheckLiveMigration. Return value 3.
MSI (c) (7C:4C) [01:36:30:071]: Doing action: FatalError
Action 1:36:30: FatalError.
Action start 1:36:30: FatalError.
Action 1:36:30: FatalError. Dialog created
MSI (c) (7C:14) [01:36:30:087]: Note: 1: 2205 2: 3: _RemoveFilePath
Action ended 1:36:31: FatalError. Return value 2.
Action ended 1:36:31: INSTALL. Return value 3.

Jaime CarmonaApril 27, 2013 at 6:25 AMReply

If you are installing openstack on a fedora box using the EPEL method you will need to manually edit the nova.conf file created on the hyper-v host and add in the following options otherwise the nova compute service will think its trying to connect to a rabbit MQ server and not a qpidd messaging server

( The full list of options are here http://docs.openstack.org/trunk/openstack-compute/admin/content/configuration-qpid.html)

rpc_backend=nova.rpc.impl_qpid
qpid_hostname=hostname.example.com

You will also need to install qpid-python using the python pip or easy_install method

Once you have installed the plug-in you will need to restart the compute service.

Alessandro PilottiApril 29, 2013 at 8:26 AMReply

Hi Jaime,

Qpid support is already provided by the Grizzly installer for Hyper-V and above, including the configuration lines in your comment. What version of the installer are you using?

Thanks

Menu