<?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-kvm-requirements">
    <title>System Requirements for KVM Hypervisor Hosts</title>
  <para>KVM is included with a variety of Linux-based operating systems. Although you are not required to run these distributions, the following are recommended:</para>
  <itemizedlist>
    <listitem><para>CentOS / RHEL: 6.3</para></listitem>
    <listitem><para>Ubuntu: 12.04(.1)</para></listitem>
  </itemizedlist>
  <para>The main requirement for KVM hypervisors is the libvirt and Qemu version. No matter what
    Linux distribution you are using, make sure the following requirements are met:</para>
  <itemizedlist>
    <listitem><para>libvirt: 0.9.4 or higher</para></listitem>
    <listitem><para>Qemu/KVM: 1.0 or higher</para></listitem>
  </itemizedlist>
  <para>The default bridge in &PRODUCT; is the Linux native bridge implementation (bridge module). &PRODUCT; includes an option to work with OpenVswitch, the requirements are listed below</para>
  <itemizedlist>
    <listitem><para>libvirt: 0.9.11 or higher</para></listitem>
    <listitem><para>openvswitch: 1.7.1 or higher</para></listitem>
  </itemizedlist>
  <para>In addition, the following hardware requirements apply:</para>
  <itemizedlist>
    <listitem><para>Within a single cluster, the hosts must be of the same distribution version.</para></listitem>
    <listitem><para>All hosts within a cluster must be homogenous. The CPUs must be of the same type, count, and feature flags.</para></listitem>
    <listitem><para>Must support HVM (Intel-VT or AMD-V enabled)</para></listitem>
    <listitem><para>64-bit x86 CPU (more cores results in better performance)</para></listitem>
    <listitem><para>4 GB of memory</para></listitem>
    <listitem><para>At least 1 NIC</para></listitem>
    <listitem><para>When you deploy &PRODUCT;, the hypervisor host must not have any VMs already running</para></listitem>
  </itemizedlist>
</section>
