<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE chapter 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-overview">
    <title>KVM Installation Overview</title>
    <para>If you want to use the Linux Kernel Virtual Machine (KVM) hypervisor to run guest virtual machines, install KVM on the host(s) in your cloud. The material in this section doesn't duplicate KVM installation docs. It provides the &PRODUCT;-specific steps that are needed to prepare a KVM host to work with &PRODUCT;.</para>
    <warning><para>Before continuing, make sure that you have applied the latest updates to your host.</para></warning>
    <warning><para>It is NOT recommended to run services on this host not controlled by &PRODUCT;.</para></warning>
    <para>The procedure for installing a KVM Hypervisor Host is:</para>
    <orderedlist>
        <listitem><para>Prepare the Operating System</para></listitem>
        <listitem><para>Install and configure libvirt</para></listitem>
        <listitem><para>Configure Security Policies (AppArmor and SELinux)</para></listitem>
        <listitem><para>Install and configure the Agent</para></listitem>
    </orderedlist>
</section>