<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>

<!-- Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you 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.
-->

<section id="hypervisor-host-install-libvirt">
    <title>Install and Configure libvirt</title>
    <para>&PRODUCT; uses libvirt for managing virtual machines. Therefore it is vital that libvirt is configured correctly. Libvirt is a dependency of cloud-agent and should already be installed.</para>
    <orderedlist>
        <listitem>
            <para>In order to have live migration working libvirt has to listen for unsecured TCP connections. We also need to turn off libvirts attempt to use Multicast DNS advertising. Both of these settings are in <filename>/etc/libvirt/libvirtd.conf</filename></para>
            <para>Set the following parameters:</para>
            <programlisting>listen_tls = 0</programlisting>
            <programlisting>listen_tcp = 1</programlisting>
            <programlisting>tcp_port = "16509"</programlisting>
            <programlisting>auth_tcp = "none"</programlisting>
            <programlisting>mdns_adv = 0</programlisting>
        </listitem>
        <listitem>
            <para>Turning on "listen_tcp" in libvirtd.conf is not enough, we have to change the parameters as well:</para>
            <para>On RHEL or CentOS modify <filename>/etc/sysconfig/libvirtd</filename>:</para>
            <para>Uncomment the following line:</para>
            <programlisting>#LIBVIRTD_ARGS="--listen"</programlisting>
            <para>On Ubuntu: modify <filename>/etc/default/libvirt-bin</filename></para>
            <para>Add "-l" to the following line::</para>
            <programlisting>libvirtd_opts="-d"</programlisting>
            <para>so it looks like:</para>
            <programlisting>libvirtd_opts="-d -l"</programlisting>
        </listitem>
        <listitem>
            <para>Restart libvirt</para>
            <para>In RHEL or CentOS:</para>
            <programlisting><command>$ service libvirtd restart</command></programlisting>
            <para>In Ubuntu:</para>
            <programlisting><command>$ service libvirt-bin restart</command></programlisting>
        </listitem>
    </orderedlist>
</section>
