Install and configure a storage node

Prerequisites

The following Windows versions are officially supported by Cinder:

  • Windows Server 2012

  • Windows Server 2012 R2

  • Windows Server 2016

The OpenStack Cinder Volume MSI installer is the recommended deployment tool for Cinder on Windows. You can find it at https://cloudbase.it/openstack-windows-storage/#download.

It installs an independent Python environment, in order to avoid conflicts with existing applications. It can dynamically generate a cinder.conf file based on the parameters you provide.

The OpenStack Cinder Volume MSI installer can be deployed in a fully automated way using Puppet, Chef, SaltStack, Ansible, Juju, DSC, Windows Group Policies or any other automated configuration framework.

Configure NTP

Network time services must be configured to ensure proper operation of the OpenStack nodes. To set network time on your Windows host you must run the following commands:

net stop w32time
w32tm /config /manualpeerlist:pool.ntp.org,0x8 /syncfromflags:MANUAL
net start w32time

Keep in mind that the node will have to be time synchronized with the other nodes of your OpenStack environment, so it is important to use the same NTP server.

Note

In case of an Active Directory environment, you may do this only for the AD Domain Controller.

Install and configure components

The MSI may be run in the following modes:

Graphical mode

The installer will walk you through the commonly used cinder options, automatically generating a config file based on your input.

You may run the following in order to run the installer in graphical mode, also specifying a log file. Please use the installer full path.

msiexec /i CinderVolumeSetup.msi /l*v msi_log.txt

Unattended mode

The installer will deploy Cinder, taking care of required Windows services and features. A minimal sample config file will be generated and need to be updated accordingly.

Run the following in order to install Cinder in unattended mode, enabling the iSCSI and SMB volume drivers.

msiexec /i CinderVolumeSetup.msi /qn /l*v msi_log.txt `
           ADDLOCAL="iscsiDriver,smbDriver"

By default, Cinder will be installed at %ProgramFiles%\Cloudbase Solutions\OpenStack. You may choose a different install directory by using the INSTALLDIR argument, as following:

msiexec /i CinderVolumeSetup.msi /qn /l*v msi_log.txt `
           ADDLOCAL="iscsiDriver,smbDriver" `
           INSTALLDIR="C:\cinder"

The installer will generate a Windows service, called cinder-volume.

Note

Previous MSI releases may use a separate service per volume backend (e.g. cinder-volume-smb). You may double check the cinder services along with their executable paths by running the following:

get-service cinder-volume*
sc.exe qc cinder-volume-smb

Note that sc is also an alias for Set-Content. To use the service control utility, you have to explicitly call sc.exe.

Configuring Cinder

If you’ve run the installer in graphical mode, you may skip this part as the MSI already took care of generating the configuration files.

The Cinder Volume Windows service configured by the MSI expects the cinder config file to reside at:

%INSTALLDIR%\etc\cinder.conf

You may use the following config sample, updating fields appropriately.

[DEFAULT]
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
auth_strategy = keystone
transport_url = rabbit://RABBIT_USER:RABBIT_PASS@controller:5672
glance_api_servers = http://controller/image
sql_connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
image_conversion_dir = C:\OpenStack\ImageConversionDir\
lock_path = C:\OpenStack\Lock\
log_dir = C:\OpenStack\Log\
log_file = cinder-volume.log

[coordination]
backend_url = file:///C:/OpenStack/Lock/

[key_manager]
api_class = cinder.keymgr.conf_key_mgr.ConfKeyManager

Note

The above sample doesn’t configure any Cinder Volume driver. To do so, follow the configuration guide for the driver of choice, appending driver specific config options.

Currently supported drivers on Windows:

Finalize installation

  1. Restart the Cinder Volume service:

    Restart-Service cinder-volume
    
  2. Ensure that the Cinder Volume service is running:

    Get-Service cinder-volume