<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Multi-Node Lab Server Guide - DevStack</title>
    <meta name="description" content="">
    <meta name="author" content="">

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <link href="../assets/css/bootstrap.css" rel="stylesheet">
    <link href="../assets/css/local.css" rel="stylesheet">
    <style type="text/css">
      body { padding-top: 60px; }
      dd { padding: 10px; }
    </style>
    
    <!-- Le javascripts -->
    <script src="../assets/js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="../assets/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
  </head>

  <body>

    <div class="navbar navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="brand" href="/">DevStack</a>
          <ul class="nav pull-right">
            <li><a href="../overview.html">Overview</a></li>
            <li><a href="../changes.html">Changes</a></li>
            <li><a href="../faq.html">FAQ</a></li>
            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
            <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
          </ul>
        </div>
      </div>
    </div>

    <div class="container">

      <section id="overview">
        <h1>Multi-Node Lab: Serious Stuff</h1>
        <p>Here is OpenStack in a realistic test configuration with multiple physical servers.</p>
      </section>

      <section id="prerequisites">
        <div class="page-header">
          <h2>Prerequisites <small>Linux & Network</small></h2>
        </div>
        
        <h3>Minimal Install</h3>
        <p>You need to have a system with a fresh install of Linux.  You can download the <a href="https://help.ubuntu.com/community/Installation/MinimalCD">Minimal CD</a> for Ubuntu releases since DevStack will download &amp; install all the additional dependencies.  The netinstall ISO is available for <a href="http://mirrors.kernel.org/fedora/releases/18/Fedora/x86_64/iso/Fedora-20-x86_64-netinst.iso">Fedora</a> and <a href="http://mirrors.kernel.org/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-netinstall.iso">CentOS/RHEL</a>.</p>

        <p>Install a couple of packages to bootstrap configuration:</p>
        <pre>apt-get install -y git sudo || yum install -y git sudo</pre>

        <h3>Network Configuration</h3>
        <p>The first iteration of the lab uses OpenStack's FlatDHCP network controller so
        only a single network will be required.  It should be on its own subnet without DHCP;
        the host IPs and floating IP pool(s) will come out of this block. This example 
        uses the following:</p>
        <ul>
          <li>Gateway: 192.168.42.1</li>
          <li>Physical nodes: 192.168.42.11-192.168.42.99</li>
          <li>Floating IPs: 192.168.42.128-192.168.42.254</li>
        </ul>
        <p>Configure each node with a static IP.
        For Ubuntu edit <code>/etc/network/interfaces</code>:</p>

        <pre>auto eth0
iface eth0 inet static
    address 192.168.42.11
    netmask 255.255.255.0
    gateway 192.168.42.1
</pre>
        <p>For Fedora and CentOS/RHEL edit
        <code>/etc/sysconfig/network-scripts/ifcfg-eth0</code>:</p>

        <pre>BOOTPROTO=static
IPADDR=192.168.42.11
NETMASK=255.255.255.0
GATEWAY=192.168.42.1
</pre>

<!-- save these for the VLAN version
   auto eth0.926
   iface eth0.926 inet static
           address 10.4.144.3
           netmask 255.255.240.0
           #gateway 10.4.144.1
           up ifconfig eth0.926
   
   auto eth0.605
   iface eth0.605 inet static
           address 172.16.103.3
           netmask 255.255.255.0
           #gateway 172.16.103.1
           up ifconfig eth0.605 up
-->

      </section>

      <section id="installation">
        <div class="page-header">
          <h2>Installation <small>shake and bake</small></h2>
        </div>

        <h3>Add the DevStack User</h3>
        <p>OpenStack runs as a non-root user that has sudo access to root.  There is nothing special
        about the name, we'll use <code>stack</code> here. Every node must use the same name and
        preferably uid. If you created a user during the OS install you can use it and give it
        sudo priviledges below.  Otherwise create the stack user:</p>
        <pre>groupadd stack
useradd -g stack -s /bin/bash -d /opt/stack -m stack</pre>
        <p>This user will be making many changes to your system during installation and operation
        so it needs to have sudo priviledges to root without a password:</p>
        <pre>echo "stack ALL=(ALL) NOPASSWD: ALL" &gt;&gt; /etc/sudoers</pre>
        <p>From here on use the <code>stack</code> user.  <b>Logout</b> and <b>login</b> as the 
        <code>stack</code> user.</p>

        <h3>Set Up Ssh</h3>
        <p>Set up the stack user on each node with an ssh key for access:</p>
        <pre>mkdir ~/.ssh; chmod 700 ~/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyYjfgyPazTvGpd8OaAvtU2utL8W6gWC4JdRS1J95GhNNfQd657yO6s1AH5KYQWktcE6FO/xNUC2reEXSGC7ezy+sGO1kj9Limv5vrvNHvF1+wts0Cmyx61D2nQw35/Qz8BvpdJANL7VwP/cFI/p3yhvx2lsnjFE3hN8xRB2LtLUopUSVdBwACOVUmH2G+2BWMJDjVINd2DPqRIA4Zhy09KJ3O1Joabr0XpQL0yt/I9x8BVHdAx6l9U0tMg9dj5+tAjZvMAFfye3PJcYwwsfJoFxC8w/SLtqlFX7Ehw++8RtvomvuipLdmWCy+T9hIkl+gHYE4cS3OIqXH7f49jdJf jesse@spacey.local" > ~/.ssh/authorized_keys</pre>

        <h3>Download DevStack</h3>
        <p>Grab the latest version of DevStack from github:</p>
        <pre>git clone https://github.com/openstack-dev/devstack.git
cd devstack</pre>

        <p>Up to this point all of the steps apply to each node in the cluster.  From here on
        there are some differences between the cluster controller (aka 'head node') and the
        compute nodes.</p>

        <h3>Configure Cluster Controller</h3>
        <p>The cluster controller runs all OpenStack services.  Configure the cluster controller's DevStack in <code>local.conf</code>:</p>
        <pre>[[local|localrc]]
HOST_IP=192.168.42.11
FLAT_INTERFACE=eth0
FIXED_RANGE=10.4.128.0/20
FIXED_NETWORK_SIZE=4096
FLOATING_RANGE=192.168.42.128/25
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=labstack
MYSQL_PASSWORD=supersecret
RABBIT_PASSWORD=supersecrete
SERVICE_PASSWORD=supersecrete
SERVICE_TOKEN=xyzpdqlazydog</pre>
<!-- save for vlan
FLAT_INTERFACE=eth0.926
-->

        <p>In the multi-node configuration the first 10 or so IPs in the private subnet are usually reserved.  Add this to <code>local.sh</code> to have it run after every <code>stack.sh</code> run:</p>
        <pre>for i in `seq 2 10`; do /opt/stack/nova/bin/nova-manage fixed reserve 10.4.128.$i; done</pre>

        <p>Fire up OpenStack:</p>
        <pre>./stack.sh</pre>
        <p>A stream of activity ensues.  When complete you will see a summary of
        <code>stack.sh</code>'s work, including the relevant URLs, accounts and passwords to poke at your
        shiny new OpenStack.  The most recent log file is available in <code>stack.sh.log</code>.</p>

        <h3>Configure Compute Nodes</h3>
        <p>The compute nodes only run the OpenStack worker services.  For additional machines, create a <code>local.conf</code> with:</p>
        <pre>HOST_IP=192.168.42.12 # change this per compute node
FLAT_INTERFACE=eth0
FIXED_RANGE=10.4.128.0/20
FIXED_NETWORK_SIZE=4096
FLOATING_RANGE=192.168.42.128/25
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=labstack
MYSQL_PASSWORD=supersecret
RABBIT_PASSWORD=supersecrete
SERVICE_PASSWORD=supersecrete
SERVICE_TOKEN=xyzpdqlazydog
DATABASE_TYPE=mysql
SERVICE_HOST=192.168.42.11
MYSQL_HOST=192.168.42.11
RABBIT_HOST=192.168.42.11
GLANCE_HOSTPORT=192.168.42.11:9292
ENABLED_SERVICES=n-cpu,n-net,n-api,c-sch,c-api,c-vol</pre>
<!-- save for vlan
FLAT_INTERFACE=eth0.926
-->

        <p>Fire up OpenStack:</p>
        <pre>./stack.sh</pre>
        <p>A stream of activity ensues.  When complete you will see a summary of
        <code>stack.sh</code>'s work, including the relevant URLs, accounts and passwords to poke at your
        shiny new OpenStack.  The most recent log file is available in <code>stack.sh.log</code>.</p>

        <h3>Cleaning Up After DevStack</h3>
        <p>Shutting down OpenStack is now as simple as running the included <code>unstack.sh</code> script:</p>
        <pre>./unstack.sh</pre>

        <p>A more aggressive cleanup can be performed using <code>clean.sh</code>.  It removes certain troublesome packages and attempts to leave the system in a state where changing the database or queue manager can be reliably performed.
        <pre>./clean.sh</pre>

        <p>Sometimes running instances are not cleaned up.  DevStack attempts to do this when it
        runs but there are times it needs to still be done by hand:</p>
        <pre>sudo rm -rf /etc/libvirt/qemu/inst*
sudo virsh list | grep inst | awk '{print $1}' | xargs -n1 virsh destroy</pre>

      </section>

      <section id="options">
        <div class="page-header">
          <h2>Options <small>pimp your stack</small></h2>
        </div>

        <h3>Additional Users</h3>
        <p>DevStack creates two OpenStack users (<code>admin</code> and <code>demo</code>) and two tenants (also <code>admin</code> and <code>demo</code>).  <code>admin</code> is exactly what it sounds like, a priveleged administrative account that is a member of both the <code>admin</code> and <code>demo</code> tenants.  <code>demo</code> is a normal user account that is only a member of the <code>demo</code> tenant.  Creating additional OpenStack users can be done through the dashboard, sometimes it is easier to do them in bulk from a script, especially since they get blown away every time
        <code>stack.sh</code> runs.  The following steps are ripe for scripting:</p>
        <pre># Get admin creds
. openrc admin admin
        
# List existing tenants
keystone tenant-list

# List existing users
keystone user-list

# Add a user and tenant
NAME=bob
PASSWORD=BigSecrete
TENANT=$NAME
keystone tenant-create --name=$NAME
keystone user-create --name=$NAME --pass=$PASSWORD
keystone user-role-add --user-id=&lt;bob-user-id&gt; --tenant-id=&lt;bob-tenant-id&gt; --role-id=&lt;member-role-id&gt;
# member-role-id comes from the existing member role created by stack.sh
# keystone role-list</pre>

        <h3>Swift</h3>
        <p>Swift requires a significant amount of resources and is disabled by default in DevStack.
        The support in DevStack is geared toward a minimal installation but can be used for
        testing.  To implement a true multi-node test of Swift required more than DevStack provides.  
        Enabling it is as simple as enabling the <code>swift</code> service in <code>local.conf</code>:
        <pre>enable_service swift</pre>

        <p>Swift will put its data files in <code>SWIFT_DATA_DIR</code> (default <code>/opt/stack/data/swift</code>).
        The size of the data 'partition' created (really a loop-mounted file) is set by
        <code>SWIFT_LOOPBACK_DISK_SIZE</code>.  The Swift config files are located in 
        <code>SWIFT_CONFIG_DIR</code> (default <code>/etc/swift</code>).  All of these settings can be overridden in
        (wait for it...) <code>local.conf</code>.</p>

        <h3>Volumes</h3>
        <p>DevStack will automatically use an existing LVM volume group named <code>stack-volumes</code> 
        to store cloud-created volumes. If <code>stack-volumes</code> doesn't exist, DevStack 
        will set up a 5Gb loop-mounted file to contain it.  This obviously limits the
        number and size of volumes that can be created inside OpenStack.  The size can be
        overridden by setting <code>VOLUME_BACKING_FILE_SIZE</code> in <code>local.conf</code>.</p>

        <p><code>stack-volumes</code> can be pre-created on any physical volume supported by
        Linux's LVM.  The name of the volume group can be changed by setting <code>VOLUME_GROUP</code>
        in <code>localrc</code>. <code>stack.sh</code> deletes
        all logical volumes in <code>VOLUME_GROUP</code> that begin with 
        <code>VOLUME_NAME_PREFIX</code> as part of cleaning up from previous runs.
        It is recommended to not use the root volume group as <code>VOLUME_GROUP</code>.</p>

        <p>The details of creating the volume group depends on the server hardware involved 
        but looks something like this:</p>
        <pre>pvcreate /dev/sdc
vgcreate stack-volumes /dev/sdc</pre>

        <h3>Syslog</h3>
        <p>DevStack is capable of using <code>rsyslog</code> to agregate logging across the cluster.
        It is off by default; to turn it on set <code>SYSLOG=True</code> in <code>local.conf</code>.
        <code>SYSLOG_HOST</code> defaults to <code>HOST_IP</code>; on the compute nodes it 
        must be set to the IP of the cluster controller to send syslog output there.  In the example
        above, add this to the compute node <code>local.conf</code>:</p>
        <pre>SYSLOG_HOST=192.168.42.11</pre>

        <h3>Using Alternate Repositories/Branches</h3>
        <p>The git repositories for all of the OpenStack services are defined in <code>stackrc</code>.
        Since this file is a part of the DevStack package changes to it will probably be overwritten
        as updates are applied.  Every setting in <code>stackrc</code> can be redefined in
        <code>local.conf</code>.</p>

        <p>To change the repository or branch that a particular OpenStack service is created from,
        simply change the value of <code>*_REPO</code> or <code>*_BRANCH</code> corresponding to
        that service.</p>

        <p>After making changes to the repository or branch, if <code>RECLONE</code> is not set
        in <code>localrc</code> it may be necessary to remove the corresponding directory from
        <code>/opt/stack</code> to force git to re-clone the repository.</p>

        <p>For example, to pull Nova from a proposed release candidate in the primary Nova 
        repository:</p>
        <pre>NOVA_BRANCH=rc-proposed</pre>

        <p>To pull Glance from an experimental fork:</p>
        <pre>GLANCE_BRANCH=try-something-big
GLANCE_REPO=https://github.com/mcuser/glance.git</pre>

      </section>

      <section id="Notes">
        <div class="page-header">
          <h2>Notes <small>stuff you might need to know</small></h2>
        </div>

        <h3>Reset the Bridge</h3>
        <p>How to reset the bridge configuration:</p>
        <pre>sudo brctl delif br100 eth0.926
sudo ip link set dev br100 down
sudo brctl delbr br100</pre>
<!--
   sudo rm /etc/libvirt/qemu/*.xml
-->

        <h3>Set MySQL Password</h3>
        <p>If you forgot to set the root password you can do this:</p>
        <pre>mysqladmin -u root -pnova password 'supersecret'</pre>

      </section>

      <footer>
        <p>&copy; Openstack Foundation 2011-2014 &mdash; An <a href="https://www.openstack.org/">OpenStack</a> <a href="https://wiki.openstack.org/wiki/Programs">program</a></p>
      </footer>

    </div> <!-- /container -->

  </body>
</html>
