22f7050296
Change-Id: I371ccdbebe904b344d537f8fc4edc443f0753cd2
457 lines
25 KiB
XML
457 lines
25 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE section [
|
||
<!ENTITY % openstack SYSTEM "../../common/entities/openstack.ent">
|
||
%openstack;
|
||
]>
|
||
<section xmlns="http://docbook.org/ns/docbook"
|
||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||
version="5.0"
|
||
xml:id="hyper-v-virtualization-platform">
|
||
<?dbhtml stop-chunking?>
|
||
<title>Hyper-V virtualization platform</title>
|
||
<para>It is possible to use Hyper-V as a compute node within an OpenStack Deployment. The
|
||
<systemitem class="service">nova-compute</systemitem> service runs as "openstack-compute," a 32-bit service directly upon the Windows
|
||
platform with the Hyper-V role enabled. The necessary Python components as well as the
|
||
<systemitem class="service">nova-compute</systemitem> service are installed directly onto the Windows platform. Windows Clustering
|
||
Services are not needed for functionality within the OpenStack infrastructure. The use of
|
||
the Windows Server 2012 platform is recommend for the best experience and is the platform
|
||
for active development. The following Windows platforms have been tested as compute nodes:<itemizedlist>
|
||
<listitem>
|
||
<para><emphasis role="bold">Windows Server 2008 R2</emphasis></para>
|
||
<para>Both Server and Server Core with the Hyper-V role enabled (Shared Nothing Live
|
||
migration is not supported using 2008 R2)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><emphasis role="bold">Windows Server 2012 and Windows Server 2012 R2</emphasis></para>
|
||
<para>Server and Core (with the Hyper-V role enabled), and Hyper-V Server</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
<section xml:id="installation-architecture-hyper-v">
|
||
<title>Hyper-V configuration</title>
|
||
<para>The only OpenStack services required on a Hyper-V node are
|
||
<systemitem class="service">nova-compute</systemitem> and
|
||
<systemitem class="service">neutron-hyperv-agent</systemitem>.
|
||
Regarding the resources needed for this host you have to consider that Hyper-V will require 16 GB - 20 GB of
|
||
disk space for the OS itself, including updates. Two NICs are required,
|
||
one connected to the management network and one to the guest data network.
|
||
</para>
|
||
|
||
<para>The following sections discuss how to prepare the Windows Hyper-V
|
||
node for operation as an OpenStack compute node. Unless stated otherwise,
|
||
any configuration information should work for the Windows 2008 R2,
|
||
2012 and 2012 R2 platforms.</para>
|
||
|
||
<section xml:id="local-storage-considerations-hyper-v">
|
||
<title>Local storage considerations</title>
|
||
<para>The Hyper-V compute node needs to have ample storage for storing the virtual machine
|
||
images running on the compute nodes. You may use a single volume for all, or partition
|
||
it into an OS volume and VM volume. It is up to the individual deploying to
|
||
decide.</para>
|
||
</section>
|
||
<section xml:id="configure-ntp-windows">
|
||
<title>Configure NTP</title>
|
||
<para>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:</para>
|
||
<screen><prompt>C:\></prompt><userinput>net stop w32time</userinput>
|
||
<prompt>C:\></prompt><userinput>w32tm /config /manualpeerlist:pool.ntp.org,0x8 /syncfromflags:MANUAL</userinput>
|
||
<prompt>C:\></prompt><userinput>net start w32time</userinput></screen>
|
||
<para>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 that in case of an Active Directory environment,
|
||
you may do this only for the AD Domain Controller.</para>
|
||
</section>
|
||
<section xml:id="hyper-v-virtual-switch">
|
||
<title>Configure Hyper-V virtual switching</title>
|
||
<para>Information regarding the Hyper-V virtual Switch can be located here: <link
|
||
xlink:href="http://technet.microsoft.com/en-us/library/hh831823.aspx"
|
||
>http://technet.microsoft.com/en-us/library/hh831823.aspx</link>
|
||
</para>
|
||
<para>To quickly enable an interface to be used as a Virtual Interface the following
|
||
PowerShell may be used:</para>
|
||
<screen><prompt>PS C:\></prompt><userinput>$if = Get-NetIPAddress -IPAddress 192* | Get-NetIPInterface</userinput>
|
||
<prompt>PS C:\></prompt><userinput>New-VMSwitch -NetAdapterName $if.ifAlias -Name <replaceable>YOUR_BRIDGE_NAME</replaceable> <option>-AllowManagementOS</option> $false</userinput></screen>
|
||
<note><para>It is very important to make sure that when you are using an Hyper-V node with only 1 NIC the -AllowManagementOS
|
||
option is set on <literal>True</literal>, otherwise you will lose connectivity to the Hyper-V node.
|
||
</para></note>
|
||
</section>
|
||
<section xml:id="enable-iscsi-services-hyper-v">
|
||
<title>Enable iSCSI initiator service</title>
|
||
<para>To prepare the Hyper-V node to be able to attach to volumes provided by cinder
|
||
you must first make sure the Windows iSCSI initiator service is running and
|
||
started automatically.</para>
|
||
<screen><prompt>PS C:\></prompt><userinput>Set-Service -Name MSiSCSI -StartupType Automatic</userinput>
|
||
<prompt>PS C:\>Start-Service MSiSCSI</prompt><userinput/></screen>
|
||
</section>
|
||
<section xml:id="live-migration-hyper-v">
|
||
<title>Configure shared nothing live migration</title>
|
||
<para>Detailed information on the configuration of live migration can be found here: <link
|
||
xlink:href="http://technet.microsoft.com/en-us/library/jj134199.aspx"
|
||
>http://technet.microsoft.com/en-us/library/jj134199.aspx</link></para>
|
||
<para>The following outlines the steps of shared nothing live migration.</para>
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>The target hosts ensures that live migration is
|
||
enabled and properly configured in Hyper-V.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>The target hosts checks if the image to be
|
||
migrated requires a base VHD and pulls it from the
|
||
Image Service if not already available on the target
|
||
host.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>The source hosts ensures that live migration is
|
||
enabled and properly configured in Hyper-V.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>The source hosts initiates a Hyper-V live migration.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>The source hosts communicates to the manager the outcome of the
|
||
operation.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
<para>The following two configuration options/flags are needed in order to support Hyper-V
|
||
live migration and must be added to your <filename>nova.conf</filename> on the Hyper-V
|
||
compute node:<itemizedlist>
|
||
<listitem>
|
||
<para><literal>instances_shared_storage = False</literal></para>
|
||
<para>This needed to support "shared nothing" Hyper-V live migrations. It is
|
||
used in nova/compute/manager.py</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><literal>limit_cpu_features = True</literal></para>
|
||
<para>This flag is needed to support live migration to hosts with different CPU
|
||
features. This flag is checked during instance creation in order to limit
|
||
the CPU features used by the VM.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
<literal>instances_path = DRIVELETTER:\PATH\TO\YOUR\INSTANCES</literal>
|
||
</para>
|
||
</listitem>
|
||
</itemizedlist></para>
|
||
<para>Additional Requirements:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Hyper-V 2012 R2 or Windows Server 2012 R2 with Hyper-V role enabled</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>A Windows domain controller with the Hyper-V compute nodes as domain
|
||
members</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>The instances_path command-line option/flag needs to be the same on all
|
||
hosts.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>The <systemitem
|
||
class="service">openstack-compute</systemitem> service
|
||
deployed with the setup must run with domain
|
||
credentials. You can set the service credentials
|
||
with:</para>
|
||
<screen><prompt>C:\></prompt><userinput>sc config openstack-compute obj="DOMAIN\username" password="password"</userinput></screen>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<para><emphasis role="bold">How to setup live migration on Hyper-V</emphasis></para>
|
||
<para>To enable 'shared nothing live' migration, run the 3 PowerShell instructions below on
|
||
each Hyper-V host:</para>
|
||
<screen><prompt>PS C:\></prompt><userinput>Enable-VMMigration</userinput>
|
||
<prompt>PS C:\></prompt><userinput>Set-VMMigrationNetwork <replaceable>IP_ADDRESS</replaceable></userinput>
|
||
<prompt>PS C:\></prompt><userinput>Set-VMHost -VirtualMachineMigrationAuthenticationTypeKerberos</userinput></screen>
|
||
<note>
|
||
<para>Please replace the <replaceable>IP_ADDRESS</replaceable> with the address of the interface which will provide
|
||
the virtual switching for nova-network.</para>
|
||
</note>
|
||
<para><emphasis role="bold">Additional Reading</emphasis></para>
|
||
<para>Here's an article that clarifies the various live migration options in Hyper-V:</para>
|
||
<para>
|
||
<link
|
||
xlink:href="http://ariessysadmin.blogspot.ro/2012/04/hyper-v-live-migration-of-windows.html"
|
||
>http://ariessysadmin.blogspot.ro/2012/04/hyper-v-live-migration-of-windows.html</link>
|
||
</para>
|
||
</section>
|
||
</section>
|
||
<section xml:id="install-using-hyper-v-installer">
|
||
<title>Install nova-compute using OpenStack Hyper-V installer</title>
|
||
|
||
<para>In case you want to avoid all the manual setup, you can use Cloudbase Solutions' installer.
|
||
You can find it here:</para>
|
||
|
||
<para><link
|
||
xlink:href="https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi">https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi</link></para>
|
||
|
||
<para>It installs an independent Python environment, in order to avoid conflicts with existing applications, generates dynamically a <filename>nova.conf</filename> file based on the parameters provided by you.</para>
|
||
|
||
<para>The installer can also be used for an automated and unattended mode for deployments on a massive number of servers. More details about how to use the installer and its features can be found here:</para>
|
||
|
||
<para><link
|
||
xlink:href="https://www.cloudbase.it">https://www.cloudbase.it</link></para>
|
||
</section>
|
||
<section xml:id="windows-requirements">
|
||
<title>Requirements</title>
|
||
<section xml:id="windows-python-requirements">
|
||
<title>Python</title>
|
||
<para>Python 2.7 32bit must be installed as most of the libraries are not
|
||
working properly on the 64bit version.</para>
|
||
<procedure>
|
||
<title>Setting up Python prerequisites</title>
|
||
<step>
|
||
<para>Download and then install it using the MSI installer from
|
||
here:</para>
|
||
<para><link
|
||
xlink:href="http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi">
|
||
http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi</link></para>
|
||
<screen><prompt>PS C:\></prompt> <userinput>$src = "http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi"</userinput>
|
||
<prompt>PS C:\></prompt> <userinput>$dest = "$env:temp\python-2.7.3.msi"</userinput>
|
||
<prompt>PS C:\></prompt> <userinput>Invoke-WebRequest –Uri $src –OutFile $dest</userinput>
|
||
<prompt>PS C:\></prompt> <userinput>Unblock-File $dest</userinput>
|
||
<prompt>PS C:\></prompt> <userinput>Start-Process $dest</userinput></screen>
|
||
</step>
|
||
<step>
|
||
<para>Make sure that the <filename>Python</filename> and
|
||
<filename>Python\Scripts</filename> paths are set up in the
|
||
<envar>PATH</envar> environment variable.</para>
|
||
<screen><prompt>PS C:\></prompt><userinput>$oldPath = [System.Environment]::GetEnvironmentVariable("Path")</userinput>
|
||
<prompt>PS C:\></prompt><userinput>$newPath = $oldPath + ";C:\python27\;C:\python27\Scripts\"</userinput>
|
||
<prompt>PS C:\></prompt><userinput>[System.Environment]::SetEnvironmentVariable("Path", $newPath, [System.EnvironmentVariableTarget]::User</userinput></screen>
|
||
</step>
|
||
</procedure>
|
||
</section>
|
||
<section xml:id="windows-python-dependencies">
|
||
<title>Python dependencies</title>
|
||
<para>The following packages need to be downloaded and manually
|
||
installed:</para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><package>setuptools</package></term>
|
||
<listitem>
|
||
<para><link
|
||
xlink:href="http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe">
|
||
http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exel</link></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><package>pip</package></term>
|
||
<listitem>
|
||
<para><link
|
||
xlink:href="http://pip.readthedocs.org/en/latest/installing.html">
|
||
http://pip.readthedocs.org/en/latest/installing.html</link></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><package>MySQL-python</package></term>
|
||
<listitem>
|
||
<para><link xlink:href="http://codegood.com/download/10/">
|
||
http://codegood.com/download/10/</link></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><package>PyWin32</package></term>
|
||
<listitem>
|
||
<para><link
|
||
xlink:href="http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe">
|
||
http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe</link></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><package>Greenlet</package></term>
|
||
<listitem>
|
||
<para><link
|
||
xlink:href="http://www.lfd.uci.edu/~gohlke/pythonlibs/#greenlet">
|
||
http://www.lfd.uci.edu/~gohlke/pythonlibs/#greenlet</link></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><package>PyCryto</package></term>
|
||
<listitem>
|
||
<para><link
|
||
xlink:href="http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe">
|
||
http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe</link></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
<para>The following packages must be installed with pip:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><package>ecdsa</package></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><package>amqp</package></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><package>wmi</package></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<screen><prompt>PS C:\></prompt> <userinput>pip install ecdsa</userinput>
|
||
<prompt>PS C:\></prompt> <userinput>pip install amqp</userinput>
|
||
<prompt>PS C:\></prompt> <userinput>pip install wmi</userinput></screen>
|
||
</section>
|
||
<section xml:id="windows-other-dependencies">
|
||
<title>Other dependencies</title>
|
||
<para><literal>qemu-img</literal> is required for some of the image
|
||
related operations. You can get it from here: <link
|
||
xlink:href="http://qemu.weilnetz.de/">http://qemu.weilnetz.de/</link>. You
|
||
must make sure that the <literal>qemu-img</literal> path is set in the
|
||
PATH environment variable.</para>
|
||
<para>Some Python packages need to be compiled, so you may use MinGW or
|
||
Visual Studio. You can get MinGW from here: <link
|
||
xlink:href="http://sourceforge.net/projects/mingw/">
|
||
http://sourceforge.net/projects/mingw/</link>. You must configure which
|
||
compiler to be used for this purpose by using the
|
||
<filename>distutils.cfg</filename> file in
|
||
<filename>$Python27\Lib\distutils</filename>, which can contain:</para>
|
||
<programlisting language="ini">[build]
|
||
compiler = mingw32</programlisting>
|
||
<para>As a last step for setting up MinGW, make sure that the MinGW
|
||
binaries' directories are set up in PATH.</para>
|
||
</section>
|
||
</section>
|
||
<section xml:id="install-nova-windows-hyper-v">
|
||
<title>Install Nova-compute</title>
|
||
<section xml:id="get-nova-compute-code">
|
||
<title>Download the nova code</title>
|
||
<procedure>
|
||
<step>
|
||
<para>Use Git to download the necessary source code. The installer to run Git on Windows
|
||
can be downloaded here:</para>
|
||
<para>
|
||
<link xlink:href="https://github.com/msysgit/msysgit/releases/download/Git-1.9.2-preview20140411/Git-1.9.2-preview20140411.exe">https://github.com/msysgit/msysgit/releases/download/Git-1.9.2-preview20140411/Git-1.9.2-preview20140411.exe</link>
|
||
</para>
|
||
</step>
|
||
<step>
|
||
<para>Download the installer. Once the download is complete, run the installer and follow the prompts in the installation wizard. The default should be acceptable for the needs of the document.</para>
|
||
|
||
<screen><prompt>PS C:\></prompt><userinput>$src = "https://github.com/msysgit/msysgit/releases/download/Git-1.9.2-preview20140411/Git-1.9.2-preview20140411.exe"</userinput>
|
||
<prompt>PS C:\></prompt><userinput>$dest = "$env:temp\Git-1.9.2-preview20140411.exe"</userinput>
|
||
<prompt>PS C:\></prompt><userinput>Invoke-WebRequest –Uri $src –OutFile $dest</userinput>
|
||
<prompt>PS C:\></prompt><userinput>Unblock-File $dest</userinput>
|
||
<prompt>PS C:\></prompt><userinput>Start-Process $dest</userinput></screen>
|
||
</step>
|
||
<step>
|
||
<para>Run the following to clone the Nova code.</para>
|
||
<screen><prompt>PS C:\></prompt><userinput>git.exe clone https://github.com/openstack/nova.git</userinput></screen>
|
||
</step>
|
||
</procedure>
|
||
</section>
|
||
<section xml:id="install-nova-compute-service">
|
||
<title>Install nova-compute service</title>
|
||
<para>
|
||
To install <systemitem class="service">Nova-compute</systemitem>, run:
|
||
</para>
|
||
|
||
<screen><prompt>PS C:\></prompt><userinput>cd c:\Nova</userinput>
|
||
<prompt>PS C:\></prompt><userinput>python setup.py install</userinput></screen>
|
||
</section>
|
||
<section xml:id="sample_nova-conf-hyper-v">
|
||
<title>Configure nova-compute</title>
|
||
<para>The <filename>nova.conf</filename> file must be placed in
|
||
<filename>C:\etc\nova</filename> for running OpenStack on Hyper-V. Below is a sample
|
||
<filename>nova.conf</filename> for Windows:</para>
|
||
<programlisting language="ini">[DEFAULT]
|
||
[DEFAULT]
|
||
auth_strategy = keystone
|
||
image_service = nova.image.glance.GlanceImageService
|
||
compute_driver = nova.virt.hyperv.driver.HyperVDriver
|
||
volume_api_class = nova.volume.cinder.API
|
||
fake_network = true
|
||
instances_path = C:\Program Files (x86)\OpenStack\Instances
|
||
glance_api_servers = <replaceable>IP_ADDRESS</replaceable>:9292
|
||
use_cow_images = true
|
||
force_config_drive = false
|
||
injected_network_template = C:\Program Files (x86)\OpenStack\Nova\etc\interfaces.template
|
||
policy_file = C:\Program Files (x86)\OpenStack\Nova\etc\policy.json
|
||
mkisofs_cmd = C:\Program Files (x86)\OpenStack\Nova\bin\mkisofs.exe
|
||
verbose = false
|
||
allow_resize_to_same_host = true
|
||
running_deleted_instance_action = reap
|
||
running_deleted_instance_poll_interval = 120
|
||
resize_confirm_window = 5
|
||
resume_guests_state_on_host_boot = true
|
||
rpc_response_timeout = 1800
|
||
lock_path = C:\Program Files (x86)\OpenStack\Log\
|
||
rpc_backend = nova.openstack.common.rpc.impl_kombu
|
||
rabbit_host = <replaceable>IP_ADDRESS</replaceable>
|
||
rabbit_port = 5672
|
||
rabbit_userid = guest
|
||
rabbit_password = Passw0rd
|
||
logdir = C:\Program Files (x86)\OpenStack\Log\
|
||
logfile = nova-compute.log
|
||
instance_usage_audit = true
|
||
instance_usage_audit_period = hour
|
||
network_api_class = nova.network.neutronv2.api.API
|
||
neutron_url = http://<replaceable>IP_ADDRESS</replaceable>:9696
|
||
neutron_auth_strategy = keystone
|
||
neutron_admin_tenant_name = service
|
||
neutron_admin_username = neutron
|
||
neutron_admin_password = Passw0rd
|
||
neutron_admin_auth_url = http://<replaceable>IP_ADDRESS:35357</replaceable>/v2.0
|
||
[hyperv]
|
||
vswitch_name = newVSwitch0
|
||
limit_cpu_features = false
|
||
config_drive_inject_password = false
|
||
qemu_img_cmd = C:\Program Files (x86)\OpenStack\Nova\bin\qemu-img.exe
|
||
config_drive_cdrom = true
|
||
dynamic_memory_ratio = 1
|
||
enable_instance_metrics_collection = true
|
||
[rdp]
|
||
enabled = true
|
||
html5_proxy_base_url = https://<replaceable>IP_ADDRESS</replaceable>:4430</programlisting>
|
||
<para><xref linkend="config_table_nova_hyperv"/> contains a reference of all
|
||
options for hyper-v.</para>
|
||
</section>
|
||
<section xml:id="prepare-hyper-v-images">
|
||
<title>Prepare images for use with Hyper-V</title>
|
||
<para>Hyper-V currently supports only the VHD and VHDX file format for virtual machine instances.
|
||
Detailed instructions for installing virtual machines on Hyper-V can be found
|
||
here:</para>
|
||
<para><link xlink:href="http://technet.microsoft.com/en-us/library/cc772480.aspx"
|
||
>http://technet.microsoft.com/en-us/library/cc772480.aspx</link></para>
|
||
<para>Once you have successfully created a virtual machine, you can then upload the image to
|
||
glance using the native glance-client:</para>
|
||
<screen><prompt>PS C:\></prompt><userinput>glance image-create --name "<replaceable>VM_IMAGE_NAME</replaceable>" --is-public False --container-format bare --disk-format vhd</userinput></screen>
|
||
<note>
|
||
<para>VHD and VHDX files sizes can be bigger than their maximum internal size, as such you need to boot instances using a flavor with a slightly bigger disk size than
|
||
the internal size of the disk file. To create VHDs, use the following PowerShell cmdlet:</para>
|
||
<screen><prompt>PS C:\></prompt><userinput>New-VHD <replaceable>DISK_NAME.vhd</replaceable> -SizeBytes <replaceable>VHD_SIZE</replaceable></userinput></screen>
|
||
</note>
|
||
</section>
|
||
<section xml:id="running_compute-with-hyper-v">
|
||
<title>Run Compute with Hyper-V</title>
|
||
<para>To start the <systemitem class="service">nova-compute</systemitem> service, run this command from a console in the Windows
|
||
server:</para>
|
||
<screen><prompt>PS C:\></prompt><userinput>C:\Python27\python.exe c:\Python27\Scripts\nova-compute --config-file c:\etc\nova\nova.conf</userinput></screen>
|
||
</section>
|
||
</section>
|
||
<section xml:id="troubleshooting-hyper-v">
|
||
<title>Troubleshoot Hyper-V configuration</title>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>I ran the <command>nova-manage service list</command> command
|
||
from my controller; however, I'm not seeing smiley faces for Hyper-V
|
||
compute nodes, what do I do?</para>
|
||
|
||
<para><emphasis role="italic">Verify that you are synchronized with a
|
||
network time source. For instructions about how to configure NTP on
|
||
your Hyper-V compute node, see <xref
|
||
linkend="configure-ntp-windows"/>.</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>How do I restart the compute service?</para>
|
||
|
||
<screen><prompt>PS C:\></prompt><userinput>net stop nova-compute && net start nova-compute</userinput></screen>
|
||
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>How do I restart the iSCSI initiator service?</para>
|
||
|
||
<screen><prompt>PS C:\></prompt><userinput>net stop msiscsi && net start msiscsi</userinput></screen>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
</section>
|