Added ephemeral disk limitationx
backport: havana Fixes bug #1247207 Change-Id: I6aa119148ccd783dd80cd6dcee6322b952c0a60d
This commit is contained in:
parent
b1e67676f5
commit
00d59544ab
@ -1,129 +1,172 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<section xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
<section xmlns="http://docbook.org/ns/docbook"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="vmware">
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||||
|
xml:id="vmware">
|
||||||
<title>VMware vSphere</title>
|
<title>VMware vSphere</title>
|
||||||
<?dbhtml stop-chunking?>
|
<?dbhtml stop-chunking?>
|
||||||
<section xml:id="vmware-intro">
|
<section xml:id="vmware-intro">
|
||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
<para>OpenStack Compute supports the VMware vSphere product family and enables access to advanced
|
<para>OpenStack Compute supports the VMware vSphere product family
|
||||||
features such as vMotion, High Availability, and Dynamic Resource Scheduling (DRS). This
|
and enables access to advanced features such as vMotion, High
|
||||||
section describes the configuration required to launch VMware-based virtual machine images.
|
Availability, and Dynamic Resource Scheduling (DRS). This
|
||||||
vSphere versions 4.1 and later are supported.</para>
|
section describes how to configure VMware-based virtual machine
|
||||||
<para>The VMware vCenter Driver enables <systemitem class="service">nova-compute</systemitem> to
|
images for launch. vSphere versions 4.1 and later are
|
||||||
communicate with a VMware vCenter server managing one or more ESX host clusters. The
|
supported.</para>
|
||||||
driver aggregates the ESX hosts in each cluster to present one large hypervisor entity for each
|
<para>The VMware vCenter driver enables <systemitem
|
||||||
cluster to the Compute scheduler. Because individual ESX hosts are not exposed to the
|
class="service">nova-compute</systemitem> to communicate with
|
||||||
scheduler, Compute schedules to the granularity of clusters and vCenter uses DRS to select the
|
a VMware vCenter server that manages one or more ESX host
|
||||||
actual ESX host within the cluster. When a virtual machine makes its way into a vCenter
|
clusters. The driver aggregates the ESX hosts in each cluster to
|
||||||
cluster, it can take advantage of all the features that come with vSphere.</para>
|
present one large hypervisor entity for each cluster to the
|
||||||
<para>The following sections describe how to configure the VMware vCenter driver.</para>
|
Compute scheduler. Because individual ESX hosts are not exposed
|
||||||
|
to the scheduler, Compute schedules to the granularity of
|
||||||
|
clusters and vCenter uses DRS to select the actual ESX host
|
||||||
|
within the cluster. When a virtual machine makes its way into a
|
||||||
|
vCenter cluster, it can use all vSphere features.</para>
|
||||||
|
<para>The following sections describe how to configure the VMware
|
||||||
|
vCenter driver.</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="vmware_architecture">
|
<section xml:id="vmware_architecture">
|
||||||
<title>High Level Architecture</title>
|
<title>High-level architecture</title>
|
||||||
<para>The following diagram shows a high-level view of the VMware driver architecture:</para>
|
<para>The following diagram shows a high-level view of the VMware
|
||||||
<para><inlinemediaobject>
|
driver architecture:</para>
|
||||||
|
<figure>
|
||||||
|
<title>VMware driver architecture</title>
|
||||||
|
<mediaobject>
|
||||||
<imageobject>
|
<imageobject>
|
||||||
<imagedata fileref="../../common/figures/vmware-nova-driver-architecture.jpg" format="JPG" contentwidth="6in"/>
|
<imagedata
|
||||||
|
fileref="../../common/figures/vmware-nova-driver-architecture.jpg"
|
||||||
|
format="JPG" contentwidth="6in"/>
|
||||||
</imageobject>
|
</imageobject>
|
||||||
</inlinemediaobject></para>
|
</mediaobject>
|
||||||
<para>In the previous diagram, the OpenStack Compute Scheduler sees three hypervisors, each
|
</figure>
|
||||||
corresponding to a cluster in vCenter. <systemitem class="service">Nova-compute</systemitem> contains the VMware Driver and as the
|
<para>As the figure shows, the OpenStack Compute Scheduler sees
|
||||||
figure shows, you can run with multiple <systemitem class="service">nova-compute</systemitem> services. While Compute schedules
|
three hypervisors that each correspond to a cluster in vCenter.
|
||||||
at the granularity of a cluster, the VMware driver inside <systemitem class="service">nova-compute</systemitem> interacts with the
|
<systemitem class="service">Nova-compute</systemitem> contains
|
||||||
vCenter APIs to select an appropriate ESX host within the cluster. Internally, vCenter
|
the VMware driver. You can run with multiple <systemitem
|
||||||
uses DRS for placement.</para>
|
class="service">nova-compute</systemitem> services. While
|
||||||
<para>The VMware vCenter Driver also interacts with the OpenStack Image Service to copy
|
Compute schedules at the granularity of a cluster, the VMware
|
||||||
VMDK images from the Image Service back end store. The dotted line in the figure represents the
|
driver inside <systemitem class="service"
|
||||||
copying of VMDK images from the OpenStack Image Service to the vSphere datastore. VMDK images
|
>nova-compute</systemitem> interacts with the vCenter APIs to
|
||||||
are cached in the datastore so the copy operation is only required the first time that the
|
select an appropriate ESX host within the cluster. Internally,
|
||||||
VMDK image is used.</para>
|
vCenter uses DRS for placement.</para>
|
||||||
<para>After a VM is booted by OpenStack into a vSphere cluster, the VM becomes visible in vCenter
|
<para>The VMware vCenter driver also interacts with the OpenStack
|
||||||
and can access vSphere advanced features. At the same time, the VM is visible in
|
Image Service to copy VMDK images from the Image Service back
|
||||||
the OpenStack Dashboard and you can manage it as you would any other OpenStack VM.
|
end store. The dotted line in the figure represents VMDK images
|
||||||
You perform advanced vSphere operations in vCenter while you configure OpenStack resources
|
being copied from the OpenStack Image Service to the vSphere
|
||||||
such as VMs through the OpenStack dashboard.</para>
|
data store. VMDK images are cached in the data store so the copy
|
||||||
<para>Not shown in the figure above is how networking fits into the architecture. Both
|
operation is only required the first time that the VMDK image is
|
||||||
<systemitem class="service">nova-network</systemitem> and the OpenStack Networking Service
|
used.</para>
|
||||||
are supported. For details, see <xref linkend="VMWare_networking"/>.</para>
|
<para>After OpenStack boots a VM into a vSphere cluster, the VM
|
||||||
|
becomes visible in vCenter and can access vSphere advanced
|
||||||
|
features. At the same time, the VM is visible in the OpenStack
|
||||||
|
dashboard and you can manage it as you would any other OpenStack
|
||||||
|
VM. You can perform advanced vSphere operations in vCenter while
|
||||||
|
you configure OpenStack resources such as VMs through the
|
||||||
|
OpenStack dashboard.</para>
|
||||||
|
<para>The figure does not show how networking fits into the
|
||||||
|
architecture. Both <systemitem class="service"
|
||||||
|
>nova-network</systemitem> and the OpenStack Networking
|
||||||
|
Service are supported. For details, see <xref
|
||||||
|
linkend="VMWare_networking"/>.</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="vmware_configuration_overview">
|
<section xml:id="vmware_configuration_overview">
|
||||||
<title>Overview of Configuration</title>
|
<title>Configuration overview</title>
|
||||||
<para>Here are the basic steps to get started with the VMware vCenter Driver:</para>
|
<para>To get started with the VMware vCenter driver, complete the
|
||||||
|
following high-level steps:</para>
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Ensure vCenter is configured correctly. See <xref linkend="vmware-prereqs"/>.</para>
|
<para>Configure vCenter correctly. See <xref
|
||||||
|
linkend="vmware-prereqs"/>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Configure <filename>nova.conf</filename> for the VMware vCenter Driver. See <xref
|
<para>Configure <filename>nova.conf</filename> for the VMware
|
||||||
linkend="VMWareVCDriver_details"/>.</para>
|
vCenter driver. See <xref linkend="VMWareVCDriver_details"
|
||||||
|
/>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Load desired VMDK images into the OpenStack Image Service. See <xref
|
<para>Load desired VMDK images into the OpenStack Image
|
||||||
linkend="VMWare_images"/>.</para>
|
Service. See <xref linkend="VMWare_images"/>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Configure networking with either <systemitem class="service">nova-network</systemitem>
|
<para>Configure networking with either <systemitem
|
||||||
or the OpenStack Networking Service. See <xref linkend="VMWare_networking"/>.</para>
|
class="service">nova-network</systemitem> or the OpenStack
|
||||||
|
Networking Service. See <xref linkend="VMWare_networking"
|
||||||
|
/>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="vmware-prereqs">
|
<section xml:id="vmware-prereqs">
|
||||||
<title>Prerequisites and Limitations</title>
|
<title>Prerequisites and limitations</title>
|
||||||
<para>The following is a list of items that will help prepare a vSphere environment to run with
|
<para>Use the following list to prepare a vSphere environment that
|
||||||
the VMware vCenter Driver.</para>
|
runs with the VMware vCenter driver:</para>
|
||||||
<para>
|
<orderedlist>
|
||||||
<itemizedlist>
|
<listitem>
|
||||||
<listitem>
|
<para><emphasis role="bold">vCenter inventory</emphasis>: Make
|
||||||
<para><emphasis role="bold">vCenter Inventory</emphasis>: Make sure any vCenter used by
|
sure that any vCenter used by OpenStack contains a single
|
||||||
OpenStack contains a single datacenter. (this is a temporary limitation that will be
|
data center. This temporary limitation will be removed in a
|
||||||
removed in a future Havana stable release).</para>
|
future Havana stable release.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">DRS</emphasis>: For any cluster that contains multiple ESX
|
<para><emphasis role="bold">DRS</emphasis>: For any cluster
|
||||||
hosts, enable DRS with "Fully automated" placement turned on.</para>
|
that contains multiple ESX hosts, enable DRS and enable
|
||||||
</listitem>
|
<firstterm>fully automated</firstterm> placement.</para>
|
||||||
<listitem>
|
</listitem>
|
||||||
<para><emphasis role="bold">Shared Storage</emphasis>: Only shared storage is supported
|
<listitem>
|
||||||
and datastores must be shared among all hosts in a cluster. It is recommended to remove
|
<para><emphasis role="bold">Shared storage</emphasis>: Only
|
||||||
datastores not intended for OpenStack from clusters being configured for OpenStack.
|
shared storage is supported and data stores must be shared
|
||||||
Currently, a single datastore can be used per cluster (this is a temporary limitation
|
among all hosts in a cluster. It is recommended to remove
|
||||||
that will be removed in a future Havana stable release).</para>
|
data stores not intended for OpenStack from clusters being
|
||||||
</listitem>
|
configured for OpenStack. Currently, a single data store can
|
||||||
<listitem>
|
be used per cluster. This temporary limitation will be
|
||||||
<para><emphasis role="bold">Clusters and Datastores</emphasis>: Clusters and datastores
|
removed in a future Havana stable release.</para>
|
||||||
used by OpenStack should not be used for other purposes. Using clusters or datastores
|
</listitem>
|
||||||
for other purposes will cause OpenStack to display incorrect usage information.</para>
|
<listitem>
|
||||||
</listitem>
|
<para><emphasis role="bold">Clusters and data
|
||||||
<listitem>
|
stores</emphasis>: Do not use OpenStack clusters and data
|
||||||
<para><emphasis role="bold">Networking</emphasis>: The networking configuration depends on
|
stores for other purposes. If you do, OpenStack displays
|
||||||
the desired networking model. See <xref linkend="VMWare_networking"/>.</para>
|
incorrect usage information.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">Security Groups</emphasis>: Security Groups are not supported
|
<para><emphasis role="bold">Networking</emphasis>: The
|
||||||
if <systemitem class="service">nova-network</systemitem> is used. Security Groups are
|
networking configuration depends on the desired networking
|
||||||
only supported if the VMware driver is used in conjunction with the OpenStack Networking
|
model. See <xref linkend="VMWare_networking"/>.</para>
|
||||||
Service running the NSX plugin.</para>
|
</listitem>
|
||||||
</listitem>
|
<listitem>
|
||||||
<listitem>
|
<para><emphasis role="bold">Security groups</emphasis>: If you
|
||||||
<para><emphasis role="bold">VNC</emphasis>: Enable port range 5900 - 6000 for VNC
|
use the VMware driver with the OpenStack Networking Service
|
||||||
Connections on every ESX Host in all the clusters under OpenStack control. See the
|
running the NSX plug-in, security groups are supported. If
|
||||||
following link for more details on enabling VNC: <link
|
you use <systemitem class="service"
|
||||||
xlink:href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1246"
|
>nova-network</systemitem>, security groups are not
|
||||||
>http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1246</link></para>
|
supported.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
<listitem>
|
||||||
</para>
|
<para><emphasis role="bold">VNC</emphasis>: Enable port range
|
||||||
|
5900 - 6000 for VNC connections on every ESX host in all
|
||||||
|
clusters under OpenStack control. For details on enabling
|
||||||
|
VNC, see <link
|
||||||
|
xlink:href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1246"
|
||||||
|
>http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1246</link>.</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis role="bold">Ephemeral Disks</emphasis>:
|
||||||
|
Ephemeral disks are not supported. This temporary limitation
|
||||||
|
will be addressed in a future Havana stable release.</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMWareVCDriver_details">
|
<section xml:id="VMWareVCDriver_details">
|
||||||
<title>Using the VMware vCenter Driver</title>
|
<title>VMware vCenter driver</title>
|
||||||
<para>Use the VMware vCenter Driver (VMwareVCDriver) to connect OpenStack Compute with vCenter.
|
<para>Use the VMware vCenter driver (VMwareVCDriver) to connect
|
||||||
This is the recommended configuration and allows access through vCenter to advanced vSphere
|
OpenStack Compute with vCenter. This recommended configuration
|
||||||
features like vMotion, High Availability, and Dynamic Resource Scheduling (DRS).</para>
|
enables access through vCenter to advanced vSphere features like
|
||||||
|
vMotion, High Availability, and Dynamic Resource Scheduling
|
||||||
|
(DRS).</para>
|
||||||
<section xml:id="VMWareVCDriver_configuration_options">
|
<section xml:id="VMWareVCDriver_configuration_options">
|
||||||
<title>VMwareVCDriver configuration options</title>
|
<title>VMwareVCDriver configuration options</title>
|
||||||
<para>When using the VMwareVCDriver (i.e., vCenter) with OpenStack Compute,
|
<para>When you use the VMwareVCDriver (vCenter) with OpenStack
|
||||||
<filename>nova.conf</filename> must include the following VMware-specific config
|
Compute, add the following VMware-specific config options to
|
||||||
options:</para>
|
the <filename>nova.conf</filename> file:</para>
|
||||||
|
|
||||||
<programlisting language="ini">[DEFAULT]
|
<programlisting language="ini">[DEFAULT]
|
||||||
compute_driver=vmwareapi.VMwareVCDriver
|
compute_driver=vmwareapi.VMwareVCDriver
|
||||||
@ -135,165 +178,194 @@ host_password=<vCenter password>
|
|||||||
cluster_name=<vCenter cluster name>
|
cluster_name=<vCenter cluster name>
|
||||||
datastore_regex=<optional datastore regex>
|
datastore_regex=<optional datastore regex>
|
||||||
wsdl_location=http://127.0.0.1:8080/vmware/SDK/wsdl/vim25/vimService.wsdl</programlisting>
|
wsdl_location=http://127.0.0.1:8080/vmware/SDK/wsdl/vim25/vimService.wsdl</programlisting>
|
||||||
<para>Most of the configuration options above are straightforward to understand, but here are
|
<note>
|
||||||
a few points to note:</para>
|
|
||||||
<para>
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Clusters: The vCenter driver can support multiple clusters. To use more than one
|
<para>Clusters: The vCenter driver can support multiple
|
||||||
cluster, simply add multiple <code>cluster_name</code> lines in
|
clusters. To use more than one cluster, simply add
|
||||||
<filename>nova.conf</filename> with the appropriate cluster name. Clusters and
|
multiple <code>cluster_name</code> lines in
|
||||||
datastores used by the vCenter driver should not contain any VMs other than those
|
<filename>nova.conf</filename> with the appropriate
|
||||||
created by the driver.</para>
|
cluster name. Clusters and data stores used by the
|
||||||
|
vCenter driver should not contain any VMs other than
|
||||||
|
those created by the driver.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Datastores: The <code>datastore_regex</code> field specifies the datastores to use
|
<para>Data stores: The <code>datastore_regex</code> field
|
||||||
with Compute. For example, <code>datastore_regex="nas.*"</code> selects all the
|
specifies the data stores to use with Compute. For
|
||||||
datastores that have a name starting with "nas". If this line is omitted, Compute uses
|
example, <code>datastore_regex="nas.*"</code> selects
|
||||||
the first datastore returned by the vSphere API. It is recommended not to use this
|
all the data stores that have a name starting with
|
||||||
field and instead remove datastores that are not intended for OpenStack.</para>
|
"nas". If this line is omitted, Compute uses the first
|
||||||
|
data store returned by the vSphere API. It is
|
||||||
|
recommended not to use this field and instead remove
|
||||||
|
data stores that are not intended for OpenStack.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</note>
|
||||||
<para>A <systemitem class="service">nova-compute</systemitem> service can control one or more
|
<para>A <systemitem class="service">nova-compute</systemitem>
|
||||||
clusters containing multiple ESX hosts, making <systemitem class="service"
|
service can control one or more clusters containing multiple
|
||||||
>nova-compute</systemitem> a critical service from a high availabilility perspective.
|
ESX hosts, making <systemitem class="service"
|
||||||
Since it is possible for the host running nova-compute to fail while the vCenter and ESX
|
>nova-compute</systemitem> a critical service from a high
|
||||||
resources are still alive, it is recommended that <systemitem class="service"
|
availability perspective. Because the host that runs
|
||||||
>nova-compute</systemitem> be protected against host failures like other critical
|
<systemitem class="service">nova-compute</systemitem> can
|
||||||
OpenStack Services.</para>
|
fail while the vCenter and ESX still run, you must protect the
|
||||||
<para>Also note that many of the <filename>nova.conf</filename> options mentioned elsewhere in
|
<systemitem class="service">nova-compute</systemitem>
|
||||||
this document that are relevant to libvirt do not apply to using this driver.</para>
|
service against host failures.</para>
|
||||||
<para>Environments using vSphere 5.0 and below require additional configuration. See <xref
|
<note>
|
||||||
|
<para>Many <filename>nova.conf</filename> options are relevant
|
||||||
|
to libvirt but do not apply to this driver.</para>
|
||||||
|
</note>
|
||||||
|
<para>You must complete additional configuration for
|
||||||
|
environments that use vSphere 5.0 and earlier. See <xref
|
||||||
linkend="VMWare_additional_config"/>.</para>
|
linkend="VMWare_additional_config"/>.</para>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="VMWare_images">
|
<section xml:id="VMWare_images">
|
||||||
<title>Images with VMware vSphere</title>
|
<title>Images with VMware vSphere</title>
|
||||||
<para>The vCenter Driver supports images in the VMDK format. Disks in this format can be
|
<para>The vCenter driver supports images in the VMDK format. Disks
|
||||||
obtained from VMware Fusion or from an ESX environment. It is also possible to convert other
|
in this format can be obtained from VMware Fusion or from an ESX
|
||||||
formats, such as qcow2, to the VMDK format using the <code>qemu-img</code> utility. Once a
|
environment. It is also possible to convert other formats, such
|
||||||
VMDK disk is available, it should be loaded into the OpenStack Image Service and can then used
|
as qcow2, to the VMDK format using the <code>qemu-img</code>
|
||||||
with the VMware vCenter Driver. The following sections provide additional details on the exact
|
utility. After a VMDK disk is available, load it into the
|
||||||
types of disks supported and the commands used for conversion and upload.</para>
|
OpenStack Image Service. Then, you can use it with the VMware
|
||||||
|
vCenter driver. The following sections provide additional
|
||||||
|
details on the supported disks and the commands used for
|
||||||
|
conversion and upload.</para>
|
||||||
<section xml:id="VMware_supported_images">
|
<section xml:id="VMware_supported_images">
|
||||||
<title>Supported Image Types</title>
|
<title>Supported image types</title>
|
||||||
<para>Images should be uploaded to the OpenStack Image Service in the VMDK format. The
|
<para>Upload images to the OpenStack Image Service in VMDK
|
||||||
following VMDK disk types are supported:</para>
|
format. The following VMDK disk types are supported:</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="italic">VMFS Flat Disks</emphasis> (includes thin, thick,
|
<para><emphasis role="italic">VMFS Flat Disks</emphasis>
|
||||||
zeroedthick, and eagerzeroedthick). Note that once a VMFS thin disk is exported from
|
(includes thin, thick, zeroedthick, and eagerzeroedthick).
|
||||||
VMFS to a non-VMFS location, like the OpenStack Image Service, it becomes a preallocated
|
Note that once a VMFS thin disk is exported from VMFS to a
|
||||||
flat disk. This has an impact on the transfer time from the OpenStack Image Service to
|
non-VMFS location, like the OpenStack Image Service, it
|
||||||
the datastore when the full preallocated flat disk, rather than the thin disk, has to be
|
becomes a preallocated flat disk. This impacts the
|
||||||
transferred.</para>
|
transfer time from the OpenStack Image Service to the data
|
||||||
|
store when the full preallocated flat disk, rather than
|
||||||
|
the thin disk, must be transferred.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="italic">Monolithic Sparse disks</emphasis>. Sparse disks get
|
<para><emphasis role="italic">Monolithic Sparse
|
||||||
imported from the OpenStack Image Service into ESX as thin provisioned disks. Monolithic
|
disks</emphasis>. Sparse disks get imported from the
|
||||||
Sparse disks can be obtained from VMware Fusion or can be created by converting from
|
OpenStack Image Service into ESX as thin provisioned
|
||||||
other virtual disk formats using the <code>qemu-img</code> utility.</para>
|
disks. Monolithic Sparse disks can be obtained from VMware
|
||||||
|
Fusion or can be created by converting from other virtual
|
||||||
|
disk formats using the <code>qemu-img</code>
|
||||||
|
utility.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
<para>The following table shows the <code>vmware_disktype</code> property that applies to each
|
<para>The following table shows the <code>vmware_disktype</code>
|
||||||
of the supported VMDK disk types:</para>
|
property that applies to each of the supported VMDK disk
|
||||||
<para>
|
types:</para>
|
||||||
<table frame="all">
|
<table rules="all">
|
||||||
<title>OpenStack Image Service Disk Type Settings</title>
|
<caption>OpenStack Image Service disk type settings</caption>
|
||||||
<tgroup cols="2">
|
<thead>
|
||||||
<colspec colname="c1" colnum="1" colwidth="1*"/>
|
<tr>
|
||||||
<colspec colname="c2" colnum="2" colwidth="2.85*"/>
|
<th>vmware_disktype property</th>
|
||||||
<thead>
|
<th>VMDK disk type</th>
|
||||||
<row>
|
</tr>
|
||||||
<entry>vmware_disktype property</entry>
|
</thead>
|
||||||
<entry>VMDK disk type</entry>
|
<tbody>
|
||||||
</row>
|
<tr>
|
||||||
</thead>
|
<td>sparse</td>
|
||||||
<tbody>
|
<td>
|
||||||
<row>
|
<para>Monolithic Sparse</para>
|
||||||
<entry>sparse</entry>
|
</td>
|
||||||
<entry>
|
</tr>
|
||||||
<para>Monolithic Sparse</para>
|
<tr>
|
||||||
</entry>
|
<td>thin</td>
|
||||||
</row>
|
<td>
|
||||||
<row>
|
<para>VMFS flat, thin provisioned</para>
|
||||||
<entry>thin</entry>
|
</td>
|
||||||
<entry>
|
</tr>
|
||||||
<para>VMFS flat, thin provisioned</para>
|
<tr>
|
||||||
</entry>
|
<td>preallocated (default)</td>
|
||||||
</row>
|
<td>
|
||||||
<row>
|
<para>VMFS flat,
|
||||||
<entry>preallocated (default)</entry>
|
thick/zeroedthick/eagerzeroedthick</para>
|
||||||
<entry>
|
</td>
|
||||||
<para>VMFS flat, thick/zeroedthick/eagerzeroedthick</para>
|
</tr>
|
||||||
</entry>
|
</tbody>
|
||||||
</row>
|
</table>
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
<para>The <code>vmware_disktype</code> property is set when an
|
||||||
</table>
|
image is loaded into the OpenStack Image Service. For example,
|
||||||
</para>
|
the following command creates a Monolithic Sparse image by
|
||||||
<para>The <code>vmware_disktype</code> property is set when an image is loaded into the
|
setting <code>vmware_disktype</code> to
|
||||||
OpenStack Image Service. For example, the following command creates a Monolithic Sparse
|
<literal>sparse</literal>:</para>
|
||||||
image by setting <code>vmware_disktype</code> to "sparse":</para>
|
|
||||||
<screen><prompt>$</prompt> <userinput>glance image-create name="ubuntu-sparse" disk_format=vmdk \
|
<screen><prompt>$</prompt> <userinput>glance image-create name="ubuntu-sparse" disk_format=vmdk \
|
||||||
container_format=bare is_public=true \
|
container_format=bare is_public=true \
|
||||||
--property vmware_disktype="sparse" \
|
--property vmware_disktype="sparse" \
|
||||||
--property vmware_ostype="ubuntu64Guest" < ubuntuLTS-sparse.vmdk</userinput></screen>
|
--property vmware_ostype="ubuntu64Guest" < ubuntuLTS-sparse.vmdk</userinput></screen>
|
||||||
<para>Note that specifying "thin" does not provide any advantage over "preallocated" with the
|
<para>Note that specifying <literal>thin</literal> does not
|
||||||
current version of the driver. Future versions however may restore the thin properties of
|
provide any advantage over <literal>preallocated</literal>
|
||||||
the disk after it is downloaded to a vSphere datastore.</para>
|
with the current version of the driver. Future versions might
|
||||||
|
restore the thin properties of the disk after it is downloaded
|
||||||
|
to a vSphere data store.</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMware_converting_images">
|
<section xml:id="VMware_converting_images">
|
||||||
<title>Converting and Loading Images</title>
|
<title>Convert and load images</title>
|
||||||
<para>Using the <code>qemu-img</code> utility, disk images in several formats (e.g. qcow2) can
|
<para>Using the <code>qemu-img</code> utility, disk images in
|
||||||
be converted to the VMDK format.</para>
|
several formats (such as, qcow2) can be converted to the VMDK
|
||||||
<para>For example, the following command can be used to convert a <link
|
format.</para>
|
||||||
|
<para>For example, the following command can be used to convert
|
||||||
|
a <link
|
||||||
xlink:href="http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img"
|
xlink:href="http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img"
|
||||||
>qcow2 Ubuntu Precise cloud image</link>:</para>
|
>qcow2 Ubuntu Precise cloud image</link>:</para>
|
||||||
<screen><prompt>$</prompt> <userinput>qemu-img convert -f raw ~/Downloads/precise-server-cloudimg-amd64-disk1.img \
|
<screen><prompt>$</prompt> <userinput>qemu-img convert -f raw ~/Downloads/precise-server-cloudimg-amd64-disk1.img \
|
||||||
-O vmdk precise-server-cloudimg-amd64-disk1.vmdk</userinput></screen>
|
-O vmdk precise-server-cloudimg-amd64-disk1.vmdk</userinput></screen>
|
||||||
<para>VMDK disks converted via <code>qemu-img</code> are <emphasis role="italic"
|
<para>VMDK disks converted through <code>qemu-img</code> are
|
||||||
>always</emphasis> monolithic sparse VMDK disks with an IDE adapter type. Using the above
|
<emphasis role="italic">always</emphasis> monolithic sparse
|
||||||
example of the Precise Ubuntu image after the <code>qemu-img</code> conversion, the command
|
VMDK disks with an IDE adapter type. Using the previous
|
||||||
to upload the VMDK disk should be something like:</para>
|
example of the Precise Ubuntu image after the
|
||||||
|
<code>qemu-img</code> conversion, the command to upload the
|
||||||
|
VMDK disk should be something like:</para>
|
||||||
<screen><prompt>$</prompt> <userinput>glance image-create --name precise-cloud --is-public=True \
|
<screen><prompt>$</prompt> <userinput>glance image-create --name precise-cloud --is-public=True \
|
||||||
--container-format=bare --disk-format=vmdk \
|
--container-format=bare --disk-format=vmdk \
|
||||||
--property vmware_disktype="sparse" \
|
--property vmware_disktype="sparse" \
|
||||||
--property vmware_adaptertype="ide" < \
|
--property vmware_adaptertype="ide" < \
|
||||||
precise-server-cloudimg-amd64-disk1.vmdk</userinput></screen>
|
precise-server-cloudimg-amd64-disk1.vmdk</userinput></screen>
|
||||||
<para>Note that the <code>vmware_disktype</code> is set to <emphasis role="italic"
|
<para>Note that the <code>vmware_disktype</code> is set to
|
||||||
>sparse</emphasis> and the <code>vmware_adaptertype</code> is set to <emphasis
|
<emphasis role="italic">sparse</emphasis> and the
|
||||||
role="italic">ide</emphasis> in the command above.</para>
|
<code>vmware_adaptertype</code> is set to <emphasis
|
||||||
<para>If the image did not come from the <code>qemu-img</code> utility, the
|
role="italic">ide</emphasis> in the previous command.</para>
|
||||||
<code>vmware_disktype</code> and <code>vmware_adaptertype</code> might be different. To
|
<para>If the image did not come from the <code>qemu-img</code>
|
||||||
determine the image adapter type from an image file, use the following command and look for
|
utility, the <code>vmware_disktype</code> and
|
||||||
the <code>ddb.adapterType=</code> line :</para>
|
<code>vmware_adaptertype</code> might be different. To
|
||||||
|
determine the image adapter type from an image file, use the
|
||||||
|
following command and look for the
|
||||||
|
<code>ddb.adapterType=</code> line:</para>
|
||||||
<para>
|
<para>
|
||||||
<screen><prompt>$</prompt> <userinput>head -20 <vmdk file name></userinput></screen>
|
<screen><prompt>$</prompt> <userinput>head -20 <vmdk file name></userinput></screen>
|
||||||
</para>
|
</para>
|
||||||
<para>Assuming a preallocated disk type and an iSCSI "lsiLogic" adapter type, below is the
|
<para>Assuming a preallocated disk type and an iSCSI lsiLogic
|
||||||
command to upload the VMDK disk:</para>
|
adapter type, the following command uploads the VMDK
|
||||||
|
disk:</para>
|
||||||
<screen><prompt>$</prompt> <userinput>glance image-create name="ubuntu-thick-scsi" disk_format=vmdk \
|
<screen><prompt>$</prompt> <userinput>glance image-create name="ubuntu-thick-scsi" disk_format=vmdk \
|
||||||
container_format=bare is_public=true \
|
container_format=bare is_public=true \
|
||||||
--property vmware_adaptertype="lsiLogic" \
|
--property vmware_adaptertype="lsiLogic" \
|
||||||
--property vmware_disktype="preallocated" \
|
--property vmware_disktype="preallocated" \
|
||||||
--property vmware_ostype="ubuntu64Guest" < ubuntuLTS-flat.vmdk</userinput></screen>
|
--property vmware_ostype="ubuntu64Guest" < ubuntuLTS-flat.vmdk</userinput></screen>
|
||||||
<para>Currently, there is a limitation that OS boot VMDK disks with an IDE adapter type cannot
|
<para>Currently, OS boot VMDK disks with an IDE adapter type
|
||||||
be attached to a virtual SCSI controller and likewise disks with one of the SCSI adapter
|
cannot be attached to a virtual SCSI controller and likewise
|
||||||
types (e.g. busLogic, lsiLogic) cannot be attached to the IDE controller. Therefore, as the
|
disks with one of the SCSI adapter types (such as, busLogic,
|
||||||
examples above show, it is important to set the <code>vmware_adaptertype</code> property
|
lsiLogic) cannot be attached to the IDE controller. Therefore,
|
||||||
correctly. The default adapter type is "lsiLogic" which is SCSI, so you may omit the
|
as the previous examples show, it is important to set the
|
||||||
vmware_adaptertype property if you are certain that the image adapter type is
|
<code>vmware_adaptertype</code> property correctly. The
|
||||||
"lsiLogic."</para>
|
default adapter type is lsiLogic, which is SCSI, so you can
|
||||||
|
omit the <parameter>vmware_adaptertype</parameter> property if
|
||||||
|
you are certain that the image adapter type is
|
||||||
|
lsiLogic.</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMware_tagging_images">
|
<section xml:id="VMware_tagging_images">
|
||||||
<title>Tagging VMware Images</title>
|
<title>Tag VMware images</title>
|
||||||
<para>In a mixed hypervisor environment, OpenStack Compute uses the
|
<para>In a mixed hypervisor environment, OpenStack Compute uses
|
||||||
<code>hypervisor_type</code> tag to match images to the correct hypervisor type. For
|
the <code>hypervisor_type</code> tag to match images to the
|
||||||
VMware images, set the hypervisor type to "vmware" as shown below. Other valid hypervisor
|
correct hypervisor type. For VMware images, set the hypervisor
|
||||||
types include: xen, qemu, kvm, lxc, uml, hyperv, and powervm.</para>
|
type to <literal>vmware</literal>. Other valid hypervisor
|
||||||
|
types include: xen, qemu, kvm, lxc, uml, hyperv, and
|
||||||
|
powervm.</para>
|
||||||
<screen><prompt>$</prompt> <userinput>glance image-create name="ubuntu-thick-scsi" disk_format=vmdk \
|
<screen><prompt>$</prompt> <userinput>glance image-create name="ubuntu-thick-scsi" disk_format=vmdk \
|
||||||
container_format=bare is_public=true \
|
container_format=bare is_public=true \
|
||||||
--property vmware_adaptertype="lsiLogic" \
|
--property vmware_adaptertype="lsiLogic" \
|
||||||
@ -302,135 +374,169 @@ container_format=bare is_public=true \
|
|||||||
--property vmware_ostype="ubuntu64Guest" < ubuntuLTS-flat.vmdk</userinput></screen>
|
--property vmware_ostype="ubuntu64Guest" < ubuntuLTS-flat.vmdk</userinput></screen>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMware_optimizing_images">
|
<section xml:id="VMware_optimizing_images">
|
||||||
<title>Optimizing Images</title>
|
<title>Optimize images</title>
|
||||||
<para>Monolithic Sparse disks are considerably faster to download but have the overhead of an
|
<para>Monolithic Sparse disks are considerably faster to
|
||||||
additional conversion step. When imported into ESX, sparse disks get converted to VMFS flat
|
download but have the overhead of an additional conversion
|
||||||
thin provisioned disks. The download and conversion steps only affect the first launched
|
step. When imported into ESX, sparse disks get converted to
|
||||||
instance that uses the sparse disk image. The converted disk image is cached, so subsequent
|
VMFS flat thin provisioned disks. The download and conversion
|
||||||
instances that use this disk image can simply use the cached version.</para>
|
steps only affect the first launched instance that uses the
|
||||||
<para>To avoid the conversion step (at the cost of longer download times) consider converting
|
sparse disk image. The converted disk image is cached, so
|
||||||
sparse disks to thin provisioned or preallocated disks before loading them into the
|
subsequent instances that use this disk image can simply use
|
||||||
OpenStack Image Service. Below are some tools that can be used to pre-convert sparse
|
the cached version.</para>
|
||||||
disks.</para>
|
<para>To avoid the conversion step (at the cost of longer
|
||||||
|
download times) consider converting sparse disks to thin
|
||||||
|
provisioned or preallocated disks before loading them into the
|
||||||
|
OpenStack Image Service. Below are some tools that can be used
|
||||||
|
to pre-convert sparse disks.</para>
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem><para><emphasis role="bold">Using vSphere CLI (or sometimes called the remote CLI or rCLI)
|
<listitem>
|
||||||
tools</emphasis></para>
|
<para><emphasis role="bold">Using vSphere CLI (or sometimes
|
||||||
<para>Assuming that the sparse disk is made available on a datastore accessible by an
|
called the remote CLI or rCLI) tools</emphasis></para>
|
||||||
ESX host, the following command converts it to preallocated format:</para>
|
<para>Assuming that the sparse disk is made available on a
|
||||||
|
data store accessible by an ESX host, the following
|
||||||
|
command converts it to preallocated format:</para>
|
||||||
<programlisting>vmkfstools --server=ip_of_some_ESX_host -i /vmfs/volumes/datastore1/sparse.vmdk /vmfs/volumes/datastore1/converted.vmdk</programlisting>
|
<programlisting>vmkfstools --server=ip_of_some_ESX_host -i /vmfs/volumes/datastore1/sparse.vmdk /vmfs/volumes/datastore1/converted.vmdk</programlisting>
|
||||||
<para>(Note that the vifs tool from the same CLI package can be used to upload the disk to
|
<para>(Note that the vifs tool from the same CLI package can
|
||||||
be converted. The vifs tool can also be used to download the converted disk if
|
be used to upload the disk to be converted. The vifs tool
|
||||||
|
can also be used to download the converted disk if
|
||||||
necessary.)</para>
|
necessary.)</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem><para><emphasis role="bold">Using vmkfstools directly on the ESX host</emphasis></para>
|
<listitem>
|
||||||
<para>If the SSH service is enabled on an ESX host, the sparse disk can be uploaded to the
|
<para><emphasis role="bold">Using vmkfstools directly on the
|
||||||
ESX datastore via scp and the vmkfstools local to the ESX host can use used to perform
|
ESX host</emphasis></para>
|
||||||
the conversion: (After logging in to the host via ssh)</para>
|
<para>If the SSH service is enabled on an ESX host, the
|
||||||
|
sparse disk can be uploaded to the ESX data store via scp
|
||||||
|
and the vmkfstools local to the ESX host can use used to
|
||||||
|
perform the conversion: (After logging in to the host via
|
||||||
|
ssh)</para>
|
||||||
<programlisting>vmkfstools -i /vmfs/volumes/datastore1/sparse.vmdk /vmfs/volumes/datastore1/converted.vmdk</programlisting>
|
<programlisting>vmkfstools -i /vmfs/volumes/datastore1/sparse.vmdk /vmfs/volumes/datastore1/converted.vmdk</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">vmware-vdiskmanager</emphasis></para>
|
<para><emphasis role="bold"
|
||||||
<para><code>vmware-vdiskmanager</code> is a utility that comes bundled with VMware Fusion and VMware
|
>vmware-vdiskmanager</emphasis></para>
|
||||||
Workstation. Below is an example of converting a sparse disk to preallocated format:</para>
|
<para><code>vmware-vdiskmanager</code> is a utility that
|
||||||
|
comes bundled with VMware Fusion and VMware Workstation.
|
||||||
|
Below is an example of converting a sparse disk to
|
||||||
|
preallocated format:</para>
|
||||||
<programlisting>'/Applications/VMware Fusion.app/Contents/Library/vmware-vdiskmanager' -r sparse.vmdk -t 4 converted.vmdk</programlisting>
|
<programlisting>'/Applications/VMware Fusion.app/Contents/Library/vmware-vdiskmanager' -r sparse.vmdk -t 4 converted.vmdk</programlisting>
|
||||||
<para>In all of the above cases, the converted vmdk is actually a pair of files: the
|
<para>In all of the above cases, the converted vmdk is
|
||||||
descriptor file <emphasis role="italic">converted.vmdk</emphasis> and the actual virtual
|
actually a pair of files: the descriptor file <emphasis
|
||||||
disk data file <emphasis role="italic">converted-flat.vmdk</emphasis>. The file to be
|
role="italic">converted.vmdk</emphasis> and the actual
|
||||||
uploaded to the OpenStack Image Service is <emphasis role="italic"
|
virtual disk data file <emphasis role="italic"
|
||||||
|
>converted-flat.vmdk</emphasis>. The file to be uploaded
|
||||||
|
to the OpenStack Image Service is <emphasis role="italic"
|
||||||
>converted-flat.vmdk</emphasis>.</para>
|
>converted-flat.vmdk</emphasis>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMware_copying_images">
|
<section xml:id="VMware_copying_images">
|
||||||
<title>Image Handling</title>
|
<title>Image handling</title>
|
||||||
<para>The ESX hypervisor requires a copy of the VMDK file in order to boot up a virtual
|
<para>The ESX hypervisor requires a copy of the VMDK file in
|
||||||
machine. As a result, the vCenter OpenStack Compute driver must download the VMDK via HTTP
|
order to boot up a virtual machine. As a result, the vCenter
|
||||||
from the OpenStack Image Service to a datastore that is visible to the hypervisor. To
|
OpenStack Compute driver must download the VMDK via HTTP from
|
||||||
optimize this process, the first time a VMDK file is used, it gets cached in the datastore.
|
the OpenStack Image Service to a data store that is visible to
|
||||||
Subsequent virtual machines that need the VMDK use the cached version and don't have to copy
|
the hypervisor. To optimize this process, the first time a
|
||||||
the file again from the OpenStack Image Service.</para>
|
VMDK file is used, it gets cached in the data store.
|
||||||
<para>Even with a cached VMDK, there is still a copy operation from the cache location to the
|
Subsequent virtual machines that need the VMDK use the cached
|
||||||
hypervisor file directory in the shared datastore. To avoid this copy, boot the image in
|
version and don't have to copy the file again from the
|
||||||
linked_clone mode. To learn how to enable this mode, see <xref linkend="VMWare_config"/>.
|
OpenStack Image Service.</para>
|
||||||
Note also that it is possible to override the linked_clone mode on a per-image basis by
|
<para>Even with a cached VMDK, there is still a copy operation
|
||||||
using the <code>vmware_linked_clone</code> property in the OpenStack Image Service.</para>
|
from the cache location to the hypervisor file directory in
|
||||||
|
the shared data store. To avoid this copy, boot the image in
|
||||||
|
linked_clone mode. To learn how to enable this mode, see <xref
|
||||||
|
linkend="VMWare_config"/>. Note also that it is possible to
|
||||||
|
override the linked_clone mode on a per-image basis by using
|
||||||
|
the <code>vmware_linked_clone</code> property in the OpenStack
|
||||||
|
Image Service.</para>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="VMWare_networking">
|
<section xml:id="VMWare_networking">
|
||||||
<title>Networking with VMware vSphere</title>
|
<title>Networking with VMware vSphere</title>
|
||||||
<para>The VMware driver supports networking with both <systemitem class="service">nova-network</systemitem> and the OpenStack Networking Service.</para>
|
<para>The VMware driver supports networking with both <systemitem
|
||||||
|
class="service">nova-network</systemitem> and the OpenStack
|
||||||
|
Networking Service.</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>If using <systemitem class="service">nova-network</systemitem> with the FlatManager or
|
<para>If using <systemitem class="service"
|
||||||
FlatDHCPManager, before provisioning VMs, create a port group with the same name as the
|
>nova-network</systemitem> with the FlatManager or
|
||||||
<literal>flat_network_bridge</literal> value in <filename>nova.conf</filename> (default
|
FlatDHCPManager, before provisioning VMs, create a port
|
||||||
is <literal>br100</literal>). All VM NICs will be attached to this port group. Ensure the
|
group with the same name as the
|
||||||
flat interface of the node running <systemitem class="service">nova-network</systemitem> has a path to this
|
<literal>flat_network_bridge</literal> value in
|
||||||
|
<filename>nova.conf</filename> (default is
|
||||||
|
<literal>br100</literal>). All VM NICs will be attached to
|
||||||
|
this port group. Ensure the flat interface of the node
|
||||||
|
running <systemitem class="service"
|
||||||
|
>nova-network</systemitem> has a path to this
|
||||||
network.</para>
|
network.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>If using <systemitem class="service">nova-network</systemitem> with the VlanManager, before provisioning VMs, make sure the
|
<para>If using <systemitem class="service"
|
||||||
<literal>vlan_interface</literal> configuration option is set to match the ESX host interface
|
>nova-network</systemitem> with the VlanManager, before
|
||||||
that will handle VLAN-tagged VM traffic. OpenStack Compute will automatically create the
|
provisioning VMs, make sure the
|
||||||
corresponding port groups.</para>
|
<literal>vlan_interface</literal> configuration option is
|
||||||
|
set to match the ESX host interface that will handle
|
||||||
|
VLAN-tagged VM traffic. OpenStack Compute will automatically
|
||||||
|
create the corresponding port groups.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>If using the OpenStack Networking Service, before provisioning VMs, create a port group
|
<para>If using the OpenStack Networking Service, before
|
||||||
with the same name as the
|
provisioning VMs, create a port group with the same name as
|
||||||
<literal>vmware.integration_bridge</literal> value in
|
the <literal>vmware.integration_bridge</literal> value in
|
||||||
<filename>nova.conf</filename> (default is
|
<filename>nova.conf</filename> (default is
|
||||||
<literal>br-int</literal>). All VM NICs will be attached to
|
<literal>br-int</literal>). All VM NICs will be attached
|
||||||
this port group for management by the OpenStack Networking
|
to this port group for management by the OpenStack
|
||||||
Plugin.</para>
|
Networking plug-in.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="VMWare_volumes">
|
<section xml:id="VMWare_volumes">
|
||||||
<title>Volumes with VMware vSphere</title>
|
<title>Volumes with VMware vSphere</title>
|
||||||
<para>The VMware driver supports attaching volumes from the OpenStack Block Storage service. The
|
<para>The VMware driver supports attaching volumes from the
|
||||||
VMware VMDK driver for OpenStack Block Storage is recommended and should be used for managing
|
OpenStack Block Storage service. The VMware VMDK driver for
|
||||||
volumes based on vSphere datastores. More information about the VMware VMDK driver can be
|
OpenStack Block Storage is recommended and should be used for
|
||||||
found at: <link
|
managing volumes based on vSphere data stores. More information
|
||||||
|
about the VMware VMDK driver can be found at: <link
|
||||||
xlink:href="http://docs.openstack.org/trunk/config-reference/content/vmware-vmdk-driver.html"
|
xlink:href="http://docs.openstack.org/trunk/config-reference/content/vmware-vmdk-driver.html"
|
||||||
>VMware VMDK Driver</link>. There is also a "iscsi" volume driver which provides limited
|
>VMware VMDK Driver</link>. Also an iscsi volume driver
|
||||||
support and can be used only for attachments.</para>
|
provides limited support and can be used only for
|
||||||
|
attachments.</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMWare_additional_config">
|
<section xml:id="VMWare_additional_config">
|
||||||
<title>vSphere 5.0 (and below) additional setup</title>
|
<title>vSphere 5.0 and earlier additional set up</title>
|
||||||
<para>Users of vSphere 5.0 or earlier will need to locally host their WSDL files. These steps
|
<para>Users of vSphere 5.0 or earlier must host their WSDL files
|
||||||
are applicable for vCenter 5.0 or ESXi 5.0 and you may accomplish this by either mirroring the
|
locally. These steps are applicable for vCenter 5.0 or ESXi 5.0
|
||||||
WSDL from the vCenter or ESXi server you intend on using, or you may download the SDK directly
|
and you can either mirror the WSDL from the vCenter or ESXi
|
||||||
from VMware. These are both workaround steps used to fix a <link
|
server that you intend to use or you can download the SDK
|
||||||
|
directly from VMware. These workaround steps fix a <link
|
||||||
xlink:href="http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=2010507"
|
xlink:href="http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=2010507"
|
||||||
>known issue</link> with the WSDL that was resolved in later versions.</para>
|
>known issue</link> with the WSDL that was resolved in later
|
||||||
|
versions.</para>
|
||||||
<procedure>
|
<procedure>
|
||||||
<title>Mirror WSDL from vCenter (or ESXi)</title>
|
<title>Mirror WSDL from vCenter (or ESXi)</title>
|
||||||
<step>
|
<step>
|
||||||
<para>You'll need the IP address for your vCenter or ESXi host that you'll be mirroring the
|
<para>Set the <code>VMWAREAPI_IP</code> shell variable to the
|
||||||
files from. Set the shell variable <code>VMWAREAPI_IP</code> to the IP address to allow
|
IP address for your vCenter or ESXi host from where you plan
|
||||||
you to cut and paste commands from these instructions:
|
to mirror files. For example:</para>
|
||||||
<screen><prompt>$</prompt> <userinput>export VMWAREAPI_IP=<your_vsphere_host_ip></userinput></screen>
|
<screen><prompt>$</prompt> <userinput>export VMWAREAPI_IP=<your_vsphere_host_ip></userinput></screen>
|
||||||
</para>
|
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Create a local file system directory to hold the WSDL files in.
|
<para>Create a local file system directory to hold the WSDL
|
||||||
<screen><prompt>$</prompt> <userinput>mkdir -p /opt/stack/vmware/wsdl/5.0</userinput></screen>
|
files:</para>
|
||||||
</para>
|
<screen><prompt>$</prompt> <userinput>mkdir -p /opt/stack/vmware/wsdl/5.0</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Change into the new directory.
|
<para>Change into the new directory.
|
||||||
<screen><prompt>$</prompt> <userinput>cd /opt/stack/vmware/wsdl/5.0</userinput></screen>
|
<screen><prompt>$</prompt> <userinput>cd /opt/stack/vmware/wsdl/5.0</userinput> </screen></para>
|
||||||
</para>
|
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Install a command line tool that can download the files like <command>wget</command>.
|
<para>Use your OS-specific tools to install a command-line
|
||||||
Install it with your OS specific tools.</para>
|
tool that can download files like
|
||||||
|
<command>wget</command>.</para>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Download the files to the local file cache.
|
<para>Download the files to the local file cache:</para>
|
||||||
<programlisting language="bash">wget --no-check-certificate https://$VMWAREAPI_IP/sdk/vimService.wsdl
|
<programlisting language="bash">wget --no-check-certificate https://$VMWAREAPI_IP/sdk/vimService.wsdl
|
||||||
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/vim.wsdl
|
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/vim.wsdl
|
||||||
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/core-types.xsd
|
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/core-types.xsd
|
||||||
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/query-messagetypes.xsd
|
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/query-messagetypes.xsd
|
||||||
@ -438,53 +544,61 @@ wget --no-check-certificate https://$VMWAREAPI_IP/sdk/query-types.xsd
|
|||||||
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/vim-messagetypes.xsd
|
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/vim-messagetypes.xsd
|
||||||
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/reflect-messagetypes.xsd
|
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/reflect-messagetypes.xsd
|
||||||
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/reflect-types.xsd</programlisting>
|
wget --no-check-certificate https://$VMWAREAPI_IP/sdk/reflect-types.xsd</programlisting>
|
||||||
There will be two files that did not fetch properly <filename>reflect-types.xsd</filename>
|
<para>Because the <filename>reflect-types.xsd</filename> and
|
||||||
and <filename>reflect-messagetypes.xsd</filename>. These two files will need to be stubbed
|
<filename>reflect-messagetypes.xsd</filename> files do not
|
||||||
out. The following XML listing can be used to replace the missing file content. The XML
|
fetch properly, you must stub out these files. Use the
|
||||||
parser underneath Python can be very particular and if you put a space in the wrong place
|
following XML listing to replace the missing file content.
|
||||||
it can break the parser. Copy the contents below carefully and watch the formatting
|
The XML parser underneath Python can be very particular and
|
||||||
carefully.
|
if you put a space in the wrong place, it can break the
|
||||||
<programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?>
|
parser. Copy the following contents and formatting
|
||||||
|
carefully.</para>
|
||||||
|
<programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?>
|
||||||
<schema
|
<schema
|
||||||
targetNamespace="urn:reflect"
|
targetNamespace="urn:reflect"
|
||||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
elementFormDefault="qualified">
|
elementFormDefault="qualified">
|
||||||
</schema>
|
</schema> </programlisting>
|
||||||
</programlisting>
|
|
||||||
</para>
|
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Now that the files are locally present, tell the driver to look for the SOAP service
|
<para>Now that the files are locally present, tell the driver
|
||||||
WSDLs in the local file system and not on the remote vSphere server. The following setting
|
to look for the SOAP service WSDLs in the local file system
|
||||||
should be added to the <filename>nova.conf</filename> for your <systemitem class="service">nova-compute</systemitem> node:
|
and not on the remote vSphere server. Add the following
|
||||||
<programlisting language="ini">[vmware]
|
setting to the <filename>nova.conf</filename> file for your
|
||||||
|
<systemitem class="service">nova-compute</systemitem>
|
||||||
|
node:</para>
|
||||||
|
<programlisting language="ini">[vmware]
|
||||||
wsdl_location=file:///opt/stack/vmware/wsdl/5.0/vimService.wsdl</programlisting>
|
wsdl_location=file:///opt/stack/vmware/wsdl/5.0/vimService.wsdl</programlisting>
|
||||||
</para>
|
|
||||||
</step>
|
</step>
|
||||||
</procedure>
|
</procedure>
|
||||||
<para>Alternatively, download the version appropriate SDK from <link
|
<para>Alternatively, download the version appropriate SDK from
|
||||||
|
<link
|
||||||
xlink:href="http://www.vmware.com/support/developer/vc-sdk/"
|
xlink:href="http://www.vmware.com/support/developer/vc-sdk/"
|
||||||
>http://www.vmware.com/support/developer/vc-sdk/</link> and copy it into
|
>http://www.vmware.com/support/developer/vc-sdk/</link> and
|
||||||
<filename>/opt/stack/vmware</filename>. You should ensure that the WSDL is available, in for
|
copy it to the <filename>/opt/stack/vmware</filename> file. Make
|
||||||
example <filename>/opt/stack/vmware/SDK/wsdl/vim25/vimService.wsdl</filename>. Below we will
|
sure that the WSDL is available, in for example
|
||||||
point <filename>nova.conf</filename> to fetch this WSDL file from the local file system using
|
<filename>/opt/stack/vmware/SDK/wsdl/vim25/vimService.wsdl</filename>.
|
||||||
a URL.</para>
|
You must point <filename>nova.conf</filename> to fetch this WSDL
|
||||||
<para>When using the VMwareVCDriver (i.e vCenter) with OpenStack Compute with vSphere version
|
file from the local file system by using a URL.</para>
|
||||||
5.0 or below, <filename>nova.conf</filename> must include the following extra config
|
<para>When using the VMwareVCDriver (vCenter) with OpenStack
|
||||||
option:</para>
|
Compute with vSphere version 5.0 or earlier,
|
||||||
|
<filename>nova.conf</filename> must include the following
|
||||||
|
extra config option:</para>
|
||||||
<programlisting language="ini">[vmware]
|
<programlisting language="ini">[vmware]
|
||||||
wsdl_location=file:///opt/stack/vmware/SDK/wsdl/vim25/vimService.wsdl</programlisting>
|
wsdl_location=file:///opt/stack/vmware/SDK/wsdl/vim25/vimService.wsdl</programlisting>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMWareESXDriver_details">
|
<section xml:id="VMWareESXDriver_details">
|
||||||
<title>Using the VMware ESX Driver</title>
|
<title>VMware ESX driver</title>
|
||||||
<para>This section covers details of using the VMwareESXDriver. Note that the ESX Driver has not
|
<para>This section covers details of using the VMwareESXDriver.
|
||||||
been extensively tested and is not recommended. To configure the VMware vCenter Driver
|
The ESX Driver has not been extensively tested and is not
|
||||||
instead, see <xref linkend="VMWareVCDriver_details"/></para>
|
recommended. To configure the VMware vCenter driver instead, see
|
||||||
|
<xref linkend="VMWareVCDriver_details"/>.</para>
|
||||||
<section xml:id="VMWareESXDriver_configuration_options">
|
<section xml:id="VMWareESXDriver_configuration_options">
|
||||||
<title>VMwareESXDriver configuration options</title>
|
<title>VMwareESXDriver configuration options</title>
|
||||||
<para>When using the VMwareESXDriver (i.e., no vCenter) with OpenStack Compute, configure
|
<para>When you use the VMwareESXDriver (no vCenter) with
|
||||||
<filename>nova.conf</filename> with the following VMware-specific config options:</para>
|
OpenStack Compute, add the following VMware-specific
|
||||||
|
configuration options to the <filename>nova.conf</filename>
|
||||||
|
file:</para>
|
||||||
<programlisting language="ini">[DEFAULT]
|
<programlisting language="ini">[DEFAULT]
|
||||||
compute_driver=vmwareapi.VMwareESXDriver
|
compute_driver=vmwareapi.VMwareESXDriver
|
||||||
|
|
||||||
@ -493,21 +607,24 @@ host_ip=<ESXi host IP>
|
|||||||
host_username=<ESXi host username>
|
host_username=<ESXi host username>
|
||||||
host_password=<ESXi host password>
|
host_password=<ESXi host password>
|
||||||
wsdl_location=http://127.0.0.1:8080/vmware/SDK/wsdl/vim25/vimService.wsdl</programlisting>
|
wsdl_location=http://127.0.0.1:8080/vmware/SDK/wsdl/vim25/vimService.wsdl</programlisting>
|
||||||
<para>Remember that you will have one <systemitem class="service">nova-compute</systemitem>
|
<para>Remember that you will have one <systemitem
|
||||||
service per ESXi host. It is recommended that this host run as a VM on the same ESXi host it
|
class="service">nova-compute</systemitem> service per ESXi
|
||||||
is managing.</para>
|
host. It is recommended that this host run as a VM on the same
|
||||||
<para>Also note that many of the <filename>nova.conf</filename> options mentioned elsewhere in
|
ESXi host that it manages.</para>
|
||||||
this document that are relevant to libvirt do not apply to using this driver.</para>
|
<note>
|
||||||
|
<para>Many <filename>nova.conf</filename> options are relevant
|
||||||
|
to libvirt but do not apply to this driver.</para>
|
||||||
|
</note>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMwareESXDriver_limitations">
|
<section xml:id="VMwareESXDriver_limitations">
|
||||||
<title>Requirements and limitations</title>
|
<title>Requirements and limitations</title>
|
||||||
<para>The ESXDriver is unable to take advantage of many of the advanced capabilities
|
<para>The ESXDriver cannot use many of the vSphere platform
|
||||||
associated with the vSphere platform, namely vMotion, High Availability, and Dynamic
|
advanced capabilities, namely vMotion, high availability, and
|
||||||
Resource Scheduler (DRS).</para>
|
DRS.</para>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="VMWare_config">
|
<section xml:id="VMWare_config">
|
||||||
<title>Configuration Reference</title>
|
<title>Configuration reference</title>
|
||||||
<xi:include href="../../common/tables/nova-vmware.xml"/>
|
<xi:include href="../../common/tables/nova-vmware.xml"/>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
Loading…
Reference in New Issue
Block a user