<?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="vm-lifecycle">
	<title>VM Lifecycle</title>
	<para>Virtual machines can be in the following states:</para>
	<mediaobject>
		<imageobject>
			<imagedata fileref="./images/vm-lifecycle.png" />
		</imageobject>
        <textobject><phrase>basic-deployment.png: Basic two-machine &PRODUCT; deployment</phrase></textobject>
	</mediaobject>
	<para>Once a virtual machine is destroyed, it cannot be recovered. All the resources used by the virtual machine will be reclaimed by the system. This includes the virtual machine’s IP address.</para>
	<para>A stop will attempt to gracefully shut down the operating system, which typically involves terminating all the running applications. If the operation system cannot be stopped, it will be forcefully terminated. This has the same effect as pulling the power cord to a physical machine.</para>
	<para>A reboot is a stop followed by a start.</para>
	<para>&PRODUCT; preserves the state of the virtual machine hard disk until the machine is destroyed.</para>
	<para>A running virtual machine may fail because of hardware or network issues. A failed virtual machine is in the down state.</para>
	<para>The system places the virtual machine into the down state if it does not receive the heartbeat from the hypervisor for three minutes.</para>
	<para>The user can manually restart the virtual machine from the down state.</para>
	<para>The system will start the virtual machine from the down state automatically if the virtual machine is marked as HA-enabled.</para>
</section>

