361 lines
14 KiB
XML
361 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Copyright (c) 2013 Mirantis, Inc.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
|
|
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
|
|
version="5.0">
|
|
<title>General Deployment Steps</title>
|
|
<section>
|
|
<title>Prepare A Lab For Murano</title>
|
|
<para>
|
|
This section provides basic information about lab's system requirements. It also contains a description
|
|
of a test which you may use to check if your hardware fits the requirements. To do this, run the test
|
|
and compare the results with baseline data provided.
|
|
</para>
|
|
<section>
|
|
<title>Lab Requirements</title>
|
|
<table xml:id="_hardware_requirements" frame="all">
|
|
<title>Hardware requirements</title>
|
|
<tgroup cols="3" align="left" rowsep="1" colsep="1">
|
|
<colspec colname="col1" colwidth="1*"/>
|
|
<colspec colname="col2" colwidth="3*"/>
|
|
<colspec colname="col3" colwidth="3*"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Criteria</entry>
|
|
<entry>Minimal</entry>
|
|
<entry>Recommended</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>CPU</entry>
|
|
<entry>4 core @ 2.4 GHz</entry>
|
|
<entry>24 core @ 2.67 GHz</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RAM</entry>
|
|
<entry>8 GB</entry>
|
|
<entry>24 GB or more</entry>
|
|
</row>
|
|
<row>
|
|
<entry>HDD</entry>
|
|
<entry>2 x 500 GB (7200 rpm)</entry>
|
|
<entry>4 x 500 GB (7200 rpm)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RAID</entry>
|
|
<entry>Software RAID-1 (use mdadm as it will improve read performance almost two times)</entry>
|
|
<entry>Hardware RAID-10</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para>
|
|
There are a few possible storage configurations except the shown above. All of them were tested and were working well.
|
|
</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
1x SSD 500+ GB
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
1x HDD (7200 rpm) 500+ GB and 1x SSD 250+ GB (install the system onto the HDD and mount the SSD drive to folder where VM images are)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
1x HDD (15000 rpm) 500+ GB
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
The list of OSes which we used in our lab is shown below.
|
|
</para>
|
|
<table xml:id="_software_requirements" frame="all">
|
|
<title>OS Requirements</title>
|
|
<tgroup cols="1" align="left" rowsep="1" colsep="1">
|
|
<colspec colname="col1" colwidth="1*"/>
|
|
<thead>
|
|
<row>
|
|
<entry>List</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Ubuntu Server 12.04 LTS</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section>
|
|
<title>Test Your Lab Host Performance</title>
|
|
<para>
|
|
We have measured time required to boot 1 to 5 instances of Windows system simultaneously. You can use
|
|
this data as the baseline to check if your system is fast enough.
|
|
</para>
|
|
<para>
|
|
You should use sysprepped images for this test, to simulate VM first boot.
|
|
</para>
|
|
<para>
|
|
Steps to reproduce test:
|
|
</para>
|
|
<orderedlist numeration="arabic">
|
|
<listitem>
|
|
<para>
|
|
Prepare Windows 2012 Standard (with GUI) image in QCOW2 format. Let's assume that its name is ws-2012-std.qcow2
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Ensure that there is NO KVM PROCESSES on the host. To do this, run command:
|
|
<screen>
|
|
># ps aux | grep kvm
|
|
</screen>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Make 5 copies of Windows image file:
|
|
</para>
|
|
<screen>
|
|
># for i in $(seq 5); do \
|
|
cp ws-2012-std.qcow2 ws-2012-std-$i.qcow2; done
|
|
</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Create script start-vm.sh in the folder with .qcow2 files:
|
|
</para>
|
|
<screen>
|
|
#!/bin/bash
|
|
[ -z $1 ] || echo "VM count not provided!"; exit 1
|
|
for i in $(seq $1); do
|
|
echo "Starting VM $i ..."
|
|
kvm \
|
|
-m 1024 \
|
|
-drive file=ws-2012-std-$i.qcow2,if=virtio \
|
|
-net user -net nic,model=virtio \
|
|
-nographic \
|
|
-usbdevice tablet \
|
|
-vnc :$i &
|
|
done
|
|
</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Start ONE instance with command below (as root) and measure time between VM’s launch and
|
|
the moment when Server Manager window appears. To view VM’s desktop, connect with VNC viewer to your host to VNC screen :1 (port 5901):
|
|
</para>
|
|
<screen>
|
|
># ./start-vm.sh 1
|
|
</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Turn VM off. You may simply kill all KVM processes by
|
|
</para>
|
|
<screen>
|
|
># killall kvm
|
|
</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Start FIVE instances with command below (as root) and measure time interval between ALL VM’s
|
|
launch and the moment when LAST Server Manager window appears. To view VM’s desktops, connect with
|
|
VNC viewer to your host to VNC screens :1 thru :5 (ports 5901-5905):
|
|
</para>
|
|
<screen>
|
|
># ./start-vm.sh 5
|
|
</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Turn VMs off. You may simply kill all KVM processes by
|
|
</para>
|
|
<screen>
|
|
># killall kvm
|
|
</screen>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
<section>
|
|
<title>Baseline Data</title>
|
|
<para>
|
|
The table below provides baseline data which we've got in our environment.
|
|
</para>
|
|
<para>
|
|
<emphasis role="bold">Avg. Time</emphasis> refers to the lab with recommended hardware configuration, while
|
|
<emphasis role="bold">Max. Time</emphasis> refers to minimal hardware configuration.
|
|
</para>
|
|
<informaltable
|
|
frame="all"
|
|
rowsep="1" colsep="1"
|
|
>
|
|
<tgroup cols="3">
|
|
<colspec colname="col_1" colwidth="33*"/>
|
|
<colspec colname="col_2" colwidth="33*"/>
|
|
<colspec colname="col_3" colwidth="33*"/>
|
|
<thead>
|
|
<row>
|
|
<entry/>
|
|
<entry>Boot ONE instance</entry>
|
|
<entry>Boot FIVE instances</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>Avg. Time</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>3m:40s</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>8m</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>Max. Time</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>5m</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>20m</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</section>
|
|
<section>
|
|
<title>Host Optimizations</title>
|
|
<para>
|
|
Default KVM installation could be improved to provide better performance.
|
|
</para>
|
|
<para>
|
|
The following optimizations may improve host performance up to 30%:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
change default scheduler from <emphasis role="strong">CFQ</emphasis> to
|
|
<emphasis role="strong">Deadline</emphasis>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
use <emphasis role="strong">ksm</emphasis>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
use <emphasis role="strong">vhost-net</emphasis>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<title>Install OpenStack</title>
|
|
<para>
|
|
Murano works great with Openstack packages installation as well as devstack installation.
|
|
For now we support Openstack Grizzly and working on Havana integration.
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
For Openstack Grizzly installation follow
|
|
<link xlink:href="https://github.com/mseknibilel/OpenStack-Grizzly-Install-Guide">
|
|
the documentation</link>. In addition to that
|
|
<link xlink:href=" https://wiki.openstack.org/wiki/Heat">Heat</link> should be installed.
|
|
Follow the link to setup Heat on
|
|
<link xlink:href="http://openstack.redhat.com/Deploy_Heat_and_launch_your_first_Application">Ubuntu</link>
|
|
and on <link xlink:href="http://docs.openstack.org/developer/heat/getting_started/on_ubuntu.html">CentOS</link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
For a Devstack installation take a look at<link xlink:href="http://devstack.org/">
|
|
this page</link>.
|
|
<warning>
|
|
<para>Murano Dashboard component should be
|
|
installed on a separate node in case of devstack installation</para>
|
|
</warning>
|
|
</para>
|
|
<para>
|
|
Use Devstack's guide to install single VM OpenStack (<link
|
|
xlink:href="http://devstack.org/guides/single-vm.html">
|
|
http://devstack.org/guides/single-vm.html</link>)
|
|
</para>
|
|
<formalpara>
|
|
<title>localrc example</title>
|
|
<para>
|
|
<screen width="80">
|
|
HOST_IP=
|
|
FLAT_INTERFACE=
|
|
FLOATING_RANGE=
|
|
|
|
ADMIN_PASSWORD=swordfish
|
|
MYSQL_PASSWORD=swordfish
|
|
RABBIT_PASSWORD=swordfish
|
|
SERVICE_PASSWORD=swordfish
|
|
SERVICE_TOKEN=tokentoken
|
|
|
|
ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng
|
|
|
|
# Image's cache is in $TOP_DIR/files
|
|
IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/"
|
|
IMAGE_URLS+="F17-x86_64-cfntools.qcow2"
|
|
|
|
# /etc/nova/nova.conf
|
|
EXTRA_OPTS=(force_config_drive=true libvirt_images_type=qcow2 force_raw_images=false)
|
|
|
|
# Logging
|
|
SCREEN_LOGDIR=/opt/stack/log/
|
|
LOGFILE=$SCREEN_LOGDIR/stack.sh.log
|
|
</screen>
|
|
</para>
|
|
</formalpara>
|
|
<para>
|
|
If you need to image builder only, then install only packages required to run <emphasis role="strong">KVM</emphasis> (see below).
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
<section>
|
|
<title>Configure OpenStack</title>
|
|
<note>
|
|
<para>
|
|
Additional OpenStack configuration usually doesn't required in case you've installed OpenStack with Devstack scripts.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
</chapter>
|