<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Version 4.2.1 Release Notes</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Apache_CloudStack-Release_Notes-4.2.1-en-US-1-" /><meta name="description" content="Release notes for the Apache CloudStack 4.2.1 release." /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
              addID('Apache_CloudStack');
              
	      addID('Apache_CloudStack.4.2.1');
              
              addID('Apache_CloudStack.4.2.1.books');
	      addID('Apache_CloudStack.4.2.1.Release_Notes');
              </script></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://cloudstack.apache.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://cloudstack.apache.org/docs"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><div xml:lang="en-US" class="book" id="idm52191552" lang="en-US"><div class="titlepage"><div><div class="producttitle"><span class="productname">Apache CloudStack</span> <span class="productnumber">4.2.1</span></div><div><h1 id="idm52191552" class="title">Version 4.2.1 Release Notes</h1></div><p class="edition">Edition 1</p><div><h3 class="corpauthor">
		<span class="inlinemediaobject"><object data="Common_Content/images/title_logo.svg" type="image/svg+xml"> </object></span>

	</h3></div><div><div xml:lang="en-US" class="authorgroup" lang="en-US"><div class="author"><h3 class="author"><span class="firstname">Apache</span> <span class="surname">CloudStack</span></h3></div></div></div><hr /><div><div id="idm36837072" class="legalnotice"><h1 class="legalnotice">Legal Notice</h1><div class="para">
		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
	</div><div class="para">
		http://www.apache.org/licenses/LICENSE-2.0
	</div><div class="para">
		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.
	</div><div class="para">
		Apache CloudStack is an effort undergoing incubation at The Apache Software Foundation (ASF).
	</div><div class="para">
		Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
	</div><div class="para">
		CloudStack® is a registered trademark of the Apache Software Foundation.
	</div><div class="para">
		Apache CloudStack, the CloudStack word design, the Apache CloudStack word design, and the cloud monkey logo are trademarks of the Apache Software Foundation.
	</div></div></div><div><div class="abstract"><h6>Abstract</h6><div class="para">
			Release notes for the Apache CloudStack 4.2.1 release.
		</div></div></div></div><hr /></div><div class="toc"><dl class="toc"><dt><span class="preface"><a href="#pref-cloudstack-Preface">Preface</a></span></dt><dd><dl><dt><span class="section"><a href="#idm40349856">1. Document Conventions</a></span></dt><dt><span class="section"><a href="#feedback">2. Feedback</a></span></dt></dl></dd><dt><span class="chapter"><a href="#welcome-4.2">1. Welcome to CloudStack 4.2.1</a></span></dt><dt><span class="chapter"><a href="#supported-os">2. Compatibility Matrix</a></span></dt><dd><dl><dt><span class="section"><a href="#management-server">2.1. Supported OS Versions for Management Server</a></span></dt><dt><span class="section"><a href="#supported-hv">2.2. Supported Hypervisor Versions</a></span></dt><dt><span class="section"><a href="#ex-devices">2.3. Supported External Devices</a></span></dt><dt><span class="section"><a href="#browser">2.4. Supported Browsers</a></span></dt></dl></dd><dt><span class="chapter"><a href="#version-4.2">3. About This New Release</a></span></dt><dd><dl><dt><span class="section"><a href="#whats-new-in-4.2.1">3.1. What's New in 4.2.1</a></span></dt><dt><span class="section"><a href="#issues-fixed-4.2.1">3.2. Issues Fixed in 4.2.1</a></span></dt><dt><span class="section"><a href="#known-issues-4.2.1">3.3. Known Issues in 4.2.1</a></span></dt></dl></dd><dt><span class="chapter"><a href="#upgrade-instructions">4. Upgrade Instructions for 4.2.1</a></span></dt><dd><dl><dt><span class="section"><a href="#upgrade-from-4.2-to-4.2.1">4.1. Upgrade from 4.2.0 to 4.2.1</a></span></dt><dt><span class="section"><a href="#upgrade-from-4.1-to-4.2.1">4.2. Upgrade from 4.1.x to 4.2.1</a></span></dt><dt><span class="section"><a href="#upgrade-from-4.0-to-4.2.1">4.3. Upgrade from 4.0.x to 4.2.1</a></span></dt><dt><span class="section"><a href="#upgrade-from-3.0.x-to-4.2.1">4.4. Upgrade from 3.0.x to 4.2.1</a></span></dt><dt><span class="section"><a href="#upgrade-from-2.2.x-to-4.2.1">4.5. Upgrade from 2.2.14 to 4.2.1</a></span></dt></dl></dd><dt><span class="chapter"><a href="#api-changes">5. API Changes from 4.2 to 4.2.1</a></span></dt></dl></div><div xml:lang="en-US" class="preface" id="pref-cloudstack-Preface" lang="en-US"><div class="titlepage"><div><div><h1 class="title">Preface</h1></div></div></div><div xml:lang="en-US" class="section" id="idm40349856" lang="en-US"><div class="titlepage"><div><div><h2 class="title" id="idm40349856">1. Document Conventions</h2></div></div></div><div class="para">
		This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information.
	</div><div class="para">
		In PDF and paper editions, this manual uses typefaces drawn from the <a href="https://fedorahosted.org/liberation-fonts/">Liberation Fonts</a> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default.
	</div><div class="section" id="idp7988832"><div class="titlepage"><div><div><h3 class="title" id="idp7988832">1.1. Typographic Conventions</h3></div></div></div><div class="para">
			Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows.
		</div><div class="para">
			<code class="literal">Mono-spaced Bold</code>
		</div><div class="para">
			Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:
		</div><div class="blockquote"><blockquote class="blockquote"><div class="para">
				To see the contents of the file <code class="filename">my_next_bestselling_novel</code> in your current working directory, enter the <code class="command">cat my_next_bestselling_novel</code> command at the shell prompt and press <span class="keycap"><strong>Enter</strong></span> to execute the command.
			</div></blockquote></div><div class="para">
			The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context.
		</div><div class="para">
			Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:
		</div><div class="blockquote"><blockquote class="blockquote"><div class="para">
				Press <span class="keycap"><strong>Enter</strong></span> to execute the command.
			</div><div class="para">
				Press <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F2</strong></span> to switch to the first virtual terminal. Press <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F1</strong></span> to return to your X-Windows session.
			</div></blockquote></div><div class="para">
			The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously).
		</div><div class="para">
			If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <code class="literal">mono-spaced bold</code>. For example:
		</div><div class="blockquote"><blockquote class="blockquote"><div class="para">
				File-related classes include <code class="classname">filesystem</code> for file systems, <code class="classname">file</code> for files, and <code class="classname">dir</code> for directories. Each class has its own associated set of permissions.
			</div></blockquote></div><div class="para">
			<span class="application"><strong>Proportional Bold</strong></span>
		</div><div class="para">
			This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:
		</div><div class="blockquote"><blockquote class="blockquote"><div class="para">
				Choose <span class="guimenu"><strong>System</strong></span> → <span class="guisubmenu"><strong>Preferences</strong></span> → <span class="guimenuitem"><strong>Mouse</strong></span> from the main menu bar to launch <span class="application"><strong>Mouse Preferences</strong></span>. In the <span class="guilabel"><strong>Buttons</strong></span> tab, click the <span class="guilabel"><strong>Left-handed mouse</strong></span> check box and click <span class="guibutton"><strong>Close</strong></span> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).
			</div><div class="para">
				To insert a special character into a <span class="application"><strong>gedit</strong></span> file, choose <span class="guimenu"><strong>Applications</strong></span> → <span class="guisubmenu"><strong>Accessories</strong></span> → <span class="guimenuitem"><strong>Character Map</strong></span> from the main menu bar. Next, choose <span class="guimenu"><strong>Search</strong></span> → <span class="guimenuitem"><strong>Find…</strong></span> from the <span class="application"><strong>Character Map</strong></span> menu bar, type the name of the character in the <span class="guilabel"><strong>Search</strong></span> field and click <span class="guibutton"><strong>Next</strong></span>. The character you sought will be highlighted in the <span class="guilabel"><strong>Character Table</strong></span>. Double-click this highlighted character to place it in the <span class="guilabel"><strong>Text to copy</strong></span> field and then click the <span class="guibutton"><strong>Copy</strong></span> button. Now switch back to your document and choose <span class="guimenu"><strong>Edit</strong></span> → <span class="guimenuitem"><strong>Paste</strong></span> from the <span class="application"><strong>gedit</strong></span> menu bar.
			</div></blockquote></div><div class="para">
			The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context.
		</div><div class="para">
			<code class="command"><em class="replaceable"><code>Mono-spaced Bold Italic</code></em></code> or <span class="application"><strong><em class="replaceable"><code>Proportional Bold Italic</code></em></strong></span>
		</div><div class="para">
			Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:
		</div><div class="blockquote"><blockquote class="blockquote"><div class="para">
				To connect to a remote machine using ssh, type <code class="command">ssh <em class="replaceable"><code>username</code></em>@<em class="replaceable"><code>domain.name</code></em></code> at a shell prompt. If the remote machine is <code class="filename">example.com</code> and your username on that machine is john, type <code class="command">ssh john@example.com</code>.
			</div><div class="para">
				The <code class="command">mount -o remount <em class="replaceable"><code>file-system</code></em></code> command remounts the named file system. For example, to remount the <code class="filename">/home</code> file system, the command is <code class="command">mount -o remount /home</code>.
			</div><div class="para">
				To see the version of a currently installed package, use the <code class="command">rpm -q <em class="replaceable"><code>package</code></em></code> command. It will return a result as follows: <code class="command"><em class="replaceable"><code>package-version-release</code></em></code>.
			</div></blockquote></div><div class="para">
			Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system.
		</div><div class="para">
			Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:
		</div><div class="blockquote"><blockquote class="blockquote"><div class="para">
				Publican is a <em class="firstterm">DocBook</em> publishing system.
			</div></blockquote></div></div><div class="section" id="idm33536720"><div class="titlepage"><div><div><h3 class="title" id="idm33536720">1.2. Pull-quote Conventions</h3></div></div></div><div class="para">
			Terminal output and source code listings are set off visually from the surrounding text.
		</div><div class="para">
			Output sent to a terminal is set in <code class="computeroutput">mono-spaced roman</code> and presented thus:
		</div><pre class="screen">books        Desktop   documentation  drafts  mss    photos   stuff  svn
books_tests  Desktop1  downloads      images  notes  scripts  svgs</pre><div class="para">
			Source-code listings are also set in <code class="computeroutput">mono-spaced roman</code> but add syntax highlighting as follows:
		</div><pre class="programlisting">package org.<span class="perl_Function">jboss</span>.<span class="perl_Function">book</span>.<span class="perl_Function">jca</span>.<span class="perl_Function">ex1</span>;

<span class="perl_Keyword">import</span> javax.naming.InitialContext;

<span class="perl_Keyword">public</span> <span class="perl_Keyword">class</span> ExClient
{
   <span class="perl_Keyword">public</span> <span class="perl_DataType">static</span> <span class="perl_DataType">void</span> <span class="perl_Function">main</span>(String args[]) 
       <span class="perl_Keyword">throws</span> Exception
   {
      InitialContext iniCtx = <span class="perl_Keyword">new</span> InitialContext();
      Object         ref    = iniCtx.<span class="perl_Function">lookup</span>(<span class="perl_String">"EchoBean"</span>);
      EchoHome       home   = (EchoHome) ref;
      Echo           echo   = home.<span class="perl_Function">create</span>();

      System.<span class="perl_Function">out</span>.<span class="perl_Function">println</span>(<span class="perl_String">"Created Echo"</span>);

      System.<span class="perl_Function">out</span>.<span class="perl_Function">println</span>(<span class="perl_String">"Echo.echo('Hello') = "</span> + echo.<span class="perl_Function">echo</span>(<span class="perl_String">"Hello"</span>));
   }
}</pre></div><div class="section" id="idm47172864"><div class="titlepage"><div><div><h3 class="title" id="idm47172864">1.3. Notes and Warnings</h3></div></div></div><div class="para">
			Finally, we use three visual styles to draw attention to information that might otherwise be overlooked.
		</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
				Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier.
			</div></div></div><div class="important"><div class="admonition_header"><h2>Important</h2></div><div class="admonition"><div class="para">
				Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' will not cause data loss but may cause irritation and frustration.
			</div></div></div><div class="warning"><div class="admonition_header"><h2>Warning</h2></div><div class="admonition"><div class="para">
				Warnings should not be ignored. Ignoring warnings will most likely cause data loss.
			</div></div></div></div></div><div xml:lang="en-US" class="section" id="feedback" lang="en-US"><div class="titlepage"><div><div><h2 class="title">2. Feedback</h2></div></div></div><div class="para">
		to-do
	</div></div></div><div class="chapter" id="welcome-4.2"><div class="titlepage"><div><div><h1 class="title">Chapter 1. Welcome to CloudStack 4.2.1</h1></div></div></div><div class="para">
			Welcome to the 4.2.1 release of CloudStack. This version is the first defect fix release of CloudStack in the 4.2.<span class="italic italic">x</span> line.
		</div><div class="para">
			This document contains information specific to this release of CloudStack, including upgrade instructions from prior releases, new features added to CloudStack, API changes, and issues fixed in the release. For installation instructions, please see the <a href="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Installation_Guide/index.html">Installation Guide</a>. For usage and administration instructions, please see the <a href="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Admin_Guide/index.html">CloudStack Administrator's Guide</a>. Developers and users who wish to work with the API will find instruction in the <a href="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.1-incubating/html/API_Developers_Guide/index.html">CloudStack API Developer's Guide</a>
		</div><div class="para">
			If you find any errors or problems in this guide, please see <a class="xref" href="#feedback">Section 2, “Feedback”</a>. We hope you enjoy working with CloudStack!
		</div></div><div class="chapter" id="supported-os"><div class="titlepage"><div><div><h1 class="title">Chapter 2. Compatibility Matrix</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="#management-server">2.1. Supported OS Versions for Management Server</a></span></dt><dt><span class="section"><a href="#supported-hv">2.2. Supported Hypervisor Versions</a></span></dt><dt><span class="section"><a href="#ex-devices">2.3. Supported External Devices</a></span></dt><dt><span class="section"><a href="#browser">2.4. Supported Browsers</a></span></dt></dl></div><div class="para">
			This section describes the operating systems, browsers, and hypervisors that have been newly tested and certified compatible with CloudStack 4.2.1. Most earlier OS and hypervisor versions are also still supported for use with 4.2.1 It might work well on other platforms, but the platforms listed below are the ones that are specifically tested against and are more likely to be able to help troubleshoot if you run into any issues.
		</div><div class="section" id="management-server"><div class="titlepage"><div><div><h2 class="title">2.1. Supported OS Versions for Management Server</h2></div></div></div><div class="para">
				This section lists the operating systems that are supported for running CloudStack Management Server. Note that specific versions of the operating systems are tested, so compatibility with CentOS 6.3 may not indicate compatibility with CentOS 6.2, 6.1 and so on.
			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
						RHEL versions 5.5, 6.2, 6.3, and 6.4
					</div></li><li class="listitem"><div class="para">
						CentOS versions 6.3, and 6.4
					</div></li><li class="listitem"><div class="para">
						Ubuntu 12.04 LTS
					</div></li></ul></div></div><div class="section" id="supported-hv"><div class="titlepage"><div><div><h2 class="title">2.2. Supported Hypervisor Versions</h2></div></div></div><div class="para">
				CloudStack supports three hypervisor families, XenServer with XAPI, KVM, and VMware with vSphere.
			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
						CentOS 6.2 with KVM
					</div></li><li class="listitem"><div class="para">
						Red Hat Enterprise Linux 6.2 with KVM
					</div></li><li class="listitem"><div class="para">
						XenServer 6.0.2 (with Hotfix)
					</div></li><li class="listitem"><div class="para">
						XenServer 6.1
					</div></li><li class="listitem"><div class="para">
						VMware vSphere/vCenter 5.1
					</div></li><li class="listitem"><div class="para">
						Bare metal hosts are supported, which have no hypervisor. These hosts can run the following operating systems:
					</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
								RHEL or CentOS, v6.2 or 6.3
							</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
									Use libvirt version 0.9.10 for CentOS 6.3
								</div></div></div></li><li class="listitem"><div class="para">
								Fedora 17
							</div></li><li class="listitem"><div class="para">
								Ubuntu 12.04
							</div></li></ul></div></li></ul></div><div class="para">
				For more information, see the Hypervisor Compatibility Matrix in the CloudStack Installation Guide.
			</div></div><div class="section" id="ex-devices"><div class="titlepage"><div><div><h2 class="title">2.3. Supported External Devices</h2></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
						Netscaler VPX and MPX versions 9.3 and 10.e
					</div></li><li class="listitem"><div class="para">
						Netscaler SDX version 9.3
					</div></li><li class="listitem"><div class="para">
						SRX (Model srx100b) versions 10.3 or higher
					</div></li><li class="listitem"><div class="para">
						F5 10.1.0 (Build 3341.1084)
					</div></li></ul></div></div><div class="section" id="browser"><div class="titlepage"><div><div><h2 class="title">2.4. Supported Browsers</h2></div></div></div><div class="para">
				The CloudStack Web-based UI should be compatible with any modern browser, but it's possible that some browsers will not render portions of the UI reliably, depending on their support of Web standards. For best results, one of the following browsers recommended:
			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
						Internet Explorer versions 8 and 9
					</div></li><li class="listitem"><div class="para">
						Firefox version 10 and beyond
					</div></li><li class="listitem"><div class="para">
						Google Chrome versions 17 and 20.0.1132.47m
					</div></li><li class="listitem"><div class="para">
						Safari 5
					</div></li></ul></div></div></div><div class="chapter" id="version-4.2"><div class="titlepage"><div><div><h1 class="title">Chapter 3. About This New Release</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="#whats-new-in-4.2.1">3.1. What's New in 4.2.1</a></span></dt><dt><span class="section"><a href="#issues-fixed-4.2.1">3.2. Issues Fixed in 4.2.1</a></span></dt><dt><span class="section"><a href="#known-issues-4.2.1">3.3. Known Issues in 4.2.1</a></span></dt></dl></div><div class="section" id="whats-new-in-4.2.1"><div class="titlepage"><div><div><h2 class="title">3.1. What's New in 4.2.1</h2></div></div></div><div class="para">
				CloudStack 4.2.1 includes the following new features.
			</div><div class="section" id="xen64-bit-temp"><div class="titlepage"><div><div><h3 class="title">3.1.1. Optional XenServer 64-Bit Template Support</h3></div></div></div><div class="para">
					CloudStack now provides XenServer 64-bit templates for System VMs. With this support, you will be able to upgrade virtual routers in a zone. The following parameters have been introduced for the same purpose:
				</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
							XenServer: <em class="parameter"><code>router.template.xen</code></em>
						</div></li><li class="listitem"><div class="para">
							KVM: <em class="parameter"><code>router.template.kvm</code></em>
						</div></li></ul></div></div><div class="section" id="vm-snapshots"><div class="titlepage"><div><div><h3 class="title">3.1.2. XenServer VM Snapshots</h3></div></div></div><div class="para">
					VM Snapshots are now supported on both VMware and XenServer hosts. Previously, they were suported only on VMware.
				</div><div class="para">
					In addition to the existing CloudStack ability to snapshot individual VM volumes, you can now take a VM snapshot to preserve all the VM's data volumes as well as (optionally) its CPU/memory state. This is useful for quick restore of a VM. For example, you can snapshot a VM, then make changes such as software upgrades. If anything goes wrong, simply restore the VM to its previous state using the previously saved VM snapshot. The VM snapshot includes not only the data volumes, but optionally also whether the VM is running or turned off (CPU state) and the memory contents. The snapshot is stored in CloudStack's primary storage.
				</div><div class="para">
					VM snapshots can have a parent/child relationship. Each successive snapshot of the same VM is the child of the snapshot that came before it. Each time you take an additional snapshot of the same VM, it saves only the differences between the current state of the VM and the state stored in the most recent previous snapshot. The previous snapshot becomes a parent, and the new snapshot is its child. It is possible to create a long chain of these parent/child snapshots, which amount to a "redo" record leading from the current state of the VM back to the original.
				</div></div><div class="section" id="ucs-enhancements"><div class="titlepage"><div><div><h3 class="title">3.1.3. Cisco UCS Enhancements</h3></div></div></div><div class="para">
					Several modifications have been made to improve the user experience when working with Cisco UCS blades and the UCS Manager.
				</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
							The internal procedure for associating a profile to a blade has been modified. When a user wants to associate a profile to a blade in CloudStack 4.2.1, the user chooses a profile template. CloudStack instantiates a profile from that template. In the previous version, CloudStack would instead create a clone of a profile chosen by the user.
						</div></li><li class="listitem"><div class="para">
							As a consequence of this change, the user now views a list of profile templates rather than a list of profiles when associating a blade.
						</div></li><li class="listitem"><div class="para">
							A new mechanism is provided for making CloudStack aware of any changes that are made manually on the Cisco UCS Manager. For example, at any time, CloudStack users might directly associate or dissociate blades on the UCS Manager, and CloudStack would not be aware of these changes. In order to synchronize the state of CloudStack with UCS Manager, the user can click a new Refresh Blades button in the CloudStack UI. This button is located in the Blades tab, above the list of associated blades.
						</div></li><li class="listitem"><div class="para">
							To support the UCS enhancements, several changes have been made to the CloudStack API. See <a class="xref" href="#api-changes">Chapter 5, <em>API Changes from 4.2 to 4.2.1</em></a>.
						</div></li></ul></div></div><div class="section" id="s3-api-upload"><div class="titlepage"><div><div><h3 class="title">3.1.4. Choose Single-part or Multi-part Upload to Object Storage</h3></div></div></div><div class="para">
					CloudStack 4.2.1 supports both multi-part and single-part upload for registering templates, uploading volumes, and backing up snapshots to object storage in secondary storage. Previously, only multi-part upload was supported for registering templates and uploading volumes, and only single-part upload was supported for backing up snapshots.
				</div><div class="para">
					The type of upload CloudStack will use depends on the value of the new global configuration setting s3.singleupload.max.size. You can use this setting to set up three different upload scenarios:
				</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
							Choose the upload technique dynamically depending on the size of the object to be uploaded. Smaller objects will be uploaded as a single unit, and larger objects will be split into multiple parts for upload. To set the threshold for switching to multi-part upload, set s3.singleupload.max.size to the desired object size in GB (default: 5GB).
						</div></li><li class="listitem"><div class="para">
							To use multi-part upload for all objects regardless of size, set s3.singleupload.max.size to 0.
						</div></li><li class="listitem"><div class="para">
							To use single-part upload for all objects, set s3.singleupload.max.size to -1.
						</div></li></ul></div><div class="para">
					Multi-part upload is useful to make the transfer of templates and volumes to remote storage more resilient to network failure and to optimize throughput. Single-part upload may be preferable when using storage that is local to the data center.
				</div></div><div class="section" id="devide-id-xen"><div class="titlepage"><div><div><h3 class="title">3.1.5. Device ID Changes for XenServer</h3></div></div></div><div class="para">
					In XenServer 6.1 version and above, a new parameter, <code class="code">device_id: 0002</code>, is introduced for Windows VM with PV drivers. Due to this change, Windows VMs deployed with PV drivers on XenServer 6.0.2 or earlier hosts are not able to successfully boot after stopping and starting once the hosts have been upgraded to XenServer version 6.1 or 6.2. In order to address this issue, a new Global Parameter, <code class="code">xen.pvdriver.version</code>, is introduced to reflect the default PV driver version that is used when registering templates as regular users. Default value for this Global parameter on fresh install will be set to <code class="code">xenserver61</code>, which implies that the new deployments will have only XenServer 6.1 or XenServer 6.2 hosts. Default value for this Global parameter on upgrades would be set to <code class="code">xenserver61</code> only if all the hosts in the deployment are XenServer 6.1 or above. Even if a host is below XenServer 6.1 version, this value will be set to <code class="code">xenserver56</code>. The administrators are provided with following abilities with respect to setting or altering PV driver version:
				</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
							Ability to set the PV driver version 6.1+ option for a template when registering templates.
						</div><div class="para">
							Regular and Domain admin users will not have the ability to set the PV driver version when registering templates. In this case the PV driver version is defaulted to the Global parameter, <code class="code">xen.pvdriver.version</code>. The PV driver version of the template is stored in <code class="code">vm_template_details</code>.
						</div></li><li class="listitem"><div class="para">
							Ability to update the PV driver version 6.1 + option for an existing template.
						</div></li><li class="listitem"><div class="para">
							Ability to update the PV driver version 6.1 + option for a VM when it is in stopped state.
						</div></li></ul></div></div><div class="section" id="no-sourceNAT-lb"><div class="titlepage"><div><div><h3 class="title">3.1.6. Acquiring IP Without Enabling SourceNAT Service</h3></div></div></div><div class="para">
					The SourceNAT dependency for acquiring IPs has been removed. Therefore, an IP can now be acquired and LB rules can be created on it without enabling the SourceNAT service in a network. In both shared and isolated networks, DNS, DHCP and LB services provided by CloudStack is a valid service combination. In this case gateway is defined externally on the configured LB device and CloudStack does not provide any NAT service.
				</div></div></div><div class="section" id="issues-fixed-4.2.1"><div class="titlepage"><div><div><h2 class="title">3.2. Issues Fixed in 4.2.1</h2></div></div></div><div class="para">
				Apache CloudStack uses <a href="https://issues.apache.org/jira/browse/CLOUDSTACK">Jira</a> to track its issues. All new features and bugs for 4.2.1 have been tracked in Jira, and have a standard naming convention of "CLOUDSTACK-NNNN" where "NNNN" is the issue number.
			</div><div class="para">
				This section includes a summary of known issues were fixed in 4.2.1. Approximately 150 bugs were resolved or closed in the 4.2.1 cycle.
			</div><div class="informaltable"><table border="1"><colgroup><col width="50%" align="left" class="1" /><col width="50%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
								<div class="para">
									Defect
								</div>

							</th><th class="" align="left">
								<div class="para">
									Description
								</div>

							</th></tr></thead><tbody><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5154
								</div>

							</td><td class="" align="left">
								<div class="para">
									CVE-2014-0031 CloudStack ListNetworkACL API discloses ACLs for other users
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5263
								</div>

							</td><td class="" align="left">
								<div class="para">
									CVE-2013-2136 CloudStack Virtual Router stop/start modifies firewall rules allowing additional access
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3237
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Migrate volume is failing when snapshots exist for that volume.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4300
								</div>

							</td><td class="" align="left">
								<div class="para">
									[KVM] [Upgrade][2.2.14 to 4.2] System VMs are not coming up after upgrade.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4405
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Upgrade] Migration failed between existing hosts and new hosts.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4436
								</div>

							</td><td class="" align="left">
								<div class="para">
									Virtual Router fails to start on RHEL6.2.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4446
								</div>

							</td><td class="" align="left">
								<div class="para">
									AWSAPI server fails to start due to an error in bean creation.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4464
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] When deploying 30 parallel VMs, a VM fails to get deployed due to the "StartCommand failed due to Exception: javax.xml.ws.soap.SOAPFaultException" error.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4479
								</div>

							</td><td class="" align="left">
								<div class="para">
									VPC Network Tier creation fails.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4516
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware][Upgrade] MySQLIntegrityConstraintViolationException while performing any task by using local storage after upgrade from 3.0.7 to 4.2.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4522
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware][Upgrade] Creation of VM from ISO fails.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4554
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware][Upgrade from 3.0.6 to 4.2] System VM agent doesn't come up after adding a zone on an upgraded setup.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4555
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware][Upgrade from 3.0.6 to 4.2] After upgrade the system VMs fail to come up because the Secondary Storage mount point is pointing to a wrong location.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4561
								</div>

							</td><td class="" align="left">
								<div class="para">
									Deploying a VM fails after upgrading to 4.2 from earlier version having a private zone.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4579
								</div>

							</td><td class="" align="left">
								<div class="para">
									[KVM] [Upgrade 2.2.14 to 4.2] After upgrade, deploying VMs with existing templates does not work.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4580
								</div>

							</td><td class="" align="left">
								<div class="para">
									[KVM] [Upgrade 2.2.14 - 4.2] After upgrade, existing VMs cannot be started after stopping them.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4618
								</div>

							</td><td class="" align="left">
								<div class="para">
									Storage refactoring has broken CLVM.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4671
								</div>

							</td><td class="" align="left">
								<div class="para">
									ListZone API failed with Assertion error if assertion is turned on for Management Server.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4864
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] 64-bit system VM template does not exist.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5065
								</div>

							</td><td class="" align="left">
								<div class="para">
									[KVM] Snapshot doesn't take VM snapshot if the VM is running.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-532
								</div>

							</td><td class="" align="left">
								<div class="para">
									Cleaning up Storage template corrupts templates.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-732
								</div>

							</td><td class="" align="left">
								<div class="para">
									[KVM] No Snapshot support.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-1670
								</div>

							</td><td class="" align="left">
								<div class="para">
									When a VM is part of two networks, the IP address from the first network is being assigned to eth1.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-1775
								</div>

							</td><td class="" align="left">
								<div class="para">
									Events related to User/Domain/Account are not generated, instead USER-DISABLE, DOMAIN-DELETE and ACCOUNT.DISABLE event are generated.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-1819
								</div>

							</td><td class="" align="left">
								<div class="para">
									In AWS Regions, various issues persist when moving a zone from one region to another.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-2792
								</div>

							</td><td class="" align="left">
								<div class="para">
									In a Redundant router, password is reset again after a fail-over.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3010
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Router VM deployment fails with a "Message: Invalid configuration for device '2' error in Shared networks.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3285
								</div>

							</td><td class="" align="left">
								<div class="para">
									No support for HTTP redirects and HTTPS certificate handling in UCS.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3424
								</div>

							</td><td class="" align="left">
								<div class="para">
									[IPv6] When a VM is expunged and a new VM is deployed with the same name, <code class="code">/etc/dhchosts.txt</code> has two entries with the same name.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3583
								</div>

							</td><td class="" align="left">
								<div class="para">
									Stopping Management Server does not remove PID.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3715
								</div>

							</td><td class="" align="left">
								<div class="para">
									Live Migration of virtual instances operation is getting timed out.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3737
								</div>

							</td><td class="" align="left">
								<div class="para">
									Uploaded volume is not getting deleted from Secondary storage after attaching it to guest VM.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3765
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Packaging] Unable to upgrade 4.2 build on Centos 5.5.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3808
								</div>

							</td><td class="" align="left">
								<div class="para">
									Attaching a volume does not work when root is at zone-level primary store and data at cluster-level or host-level store.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3911
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Portable IP] No mechanism to check while adding a zone-level public range to check whether the same VLAN exists in portable IP range.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4095
								</div>

							</td><td class="" align="left">
								<div class="para">
									Region ID appears within the Database Transaction code.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4128
								</div>

							</td><td class="" align="left">
								<div class="para">
									Starting a System VMs does not check for existence of staging Secondary Storage in a zone.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4137
								</div>

							</td><td class="" align="left">
								<div class="para">
									[KVM]After unmanaging a cluster, managing another cluster does not bring hosts to UP state.
								</div>
								 <div class="para">
									To work around manually restart cloud-agent on KVM hosts.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4190
								</div>

							</td><td class="" align="left">
								<div class="para">
									Volume is not deleted from staging storage after a successful volume migration.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4199
								</div>

							</td><td class="" align="left">
								<div class="para">
									In Redundant Virtual Router,no failover occurs.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4239
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Snapshot creation on ESX 4.1 host fails with a ""BackupSnapshotCommand exception: javax.xml.ws.soap.SOAPFaultException" error.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4327
								</div>

							</td><td class="" align="left">
								<div class="para">
									SSVM, CPVM and router VMs are running even after storage entered into maintenance.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4350
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Performance Testing] Adding hosts take much longer time than baselines.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4432
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Null Pointer exception is thrown during VM deployment.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4433
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Registration of template by using the downloaded template URL is failing.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4434
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Ubuntu] Direct input ""- _ "", ""? /"", ""keyboard /"" ,""keyboard -"" keys are not working well for the US keyboard.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4454
								</div>

							</td><td class="" align="left">
								<div class="para">
									Not able to delete secondary storage when existing snapshots are deleted.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4455
								</div>

							</td><td class="" align="left">
								<div class="para">
									Template sync results in private templates being synced to all the secondary stores.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4458
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Failed to create Snapshot on data disk because of backup snapshot exception.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4465
								</div>

							</td><td class="" align="left">
								<div class="para">
									Resource count is not decremented for domain if user VM is being destroyed as a part of account removal.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4485
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] [3.0.6 to ASF 4.2 Upgrade] System VMs is not created in the cluster due to invalid path information of the template on the Primary Storage in the cluster.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4495
								</div>

							</td><td class="" align="left">
								<div class="para">
									System VM template URL is pointing to old template location in the Upgrade file.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4499
								</div>

							</td><td class="" align="left">
								<div class="para">
									[XenServer v 6.1 and 6.2] Hosts initially transition to 'Alert' state and then to 'Up' after adding a host.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4513
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] In a new mapping between a datacenter and a zone, when hosts in the second cluster in data center put in maintenance mode, CPVM and guest VMs that are migrated failed to come up.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4520
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware][Upgrade] ExtractVolumeCmd fails with NPE while attempting to download a volume.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4530
								</div>

							</td><td class="" align="left">
								<div class="para">
									Creating template from a Snapshot fails with having not able to find any ova/ovf snapshot when multiple secondary storage exist for a zone.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4539
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] If <em class="parameter"><code>vmware.create.full.clone</code></em> is set to true in an upgraded setup, default nature of VMs are full clone.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4551
								</div>

							</td><td class="" align="left">
								<div class="para">
									Migrating the data volume from NFS to local storage does not change the underlying disk offering.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4573
								</div>

							</td><td class="" align="left">
								<div class="para">
									Acquiring IP addresses above domain limit is possible in VPC.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4596
								</div>

							</td><td class="" align="left">
								<div class="para">
									Same IP range is allowed to be defined in different VLANs across public and portable ranges.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4600
								</div>

							</td><td class="" align="left">
								<div class="para">
									Registered cross-zone template does not populate template_zone_ref for later added zones using S3.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4624
								</div>

							</td><td class="" align="left">
								<div class="para">
									VM Migration fails in Security Group-enabled Advanced Zone with 'CloudRuntimeException: callHostPlugin failed for cmd: network_rules' error.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4625
								</div>

							</td><td class="" align="left">
								<div class="para">
									Snapshots and templates cannot be deleted from staging storage after create template from snapshot on S3.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4674
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Baremetal] <code class="filename">/usr/share/cloudstack-common/scripts/util/ipmi.py</code> script need to recognize various IPMI version and BMC type of server.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4698
								</div>

							</td><td class="" align="left">
								<div class="para">
									DHCP-service enabled network cannot expunge VMs.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4704
								</div>

							</td><td class="" align="left">
								<div class="para">
									Database upgrade bug is caused by the vpc_service_map table.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4707
								</div>

							</td><td class="" align="left">
								<div class="para">
									The sourcetemplateid field is not getting set for derived templates.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4711
								</div>

							</td><td class="" align="left">
								<div class="para">
									Premature API response prevents CloudStack from syncing association status in UCS environment.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4717
								</div>

							</td><td class="" align="left">
								<div class="para">
									Associate IP does not work on shared networks without Source NAT service.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4725
								</div>

							</td><td class="" align="left">
								<div class="para">
									KVM agent fails to join if local pool is already registered.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4745
								</div>

							</td><td class="" align="left">
								<div class="para">
									Exception occurs when trying to apply static NAT rule by using CreateIpForwardingCmd API.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4746
								</div>

							</td><td class="" align="left">
								<div class="para">
									Allocation capacity of a cluster during HA.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4750
								</div>

							</td><td class="" align="left">
								<div class="para">
									The bond.VLAN mapping in iptables forward chain is not created consistently.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4777
								</div>

							</td><td class="" align="left">
								<div class="para">
									NullPointerException instead of working KVM HA.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4783
								</div>

							</td><td class="" align="left">
								<div class="para">
									Unable to see a derived template if the parent template is deleted.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4816
								</div>

							</td><td class="" align="left">
								<div class="para">
									No configurable option to choose single or multipart upload to S3 object storage.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4817
								</div>

							</td><td class="" align="left">
								<div class="para">
									Backup snapshot on XenServer should take global setting s3.multipart.enabled.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4828
								</div>

							</td><td class="" align="left">
								<div class="para">
									Removing NIC fails if DHCP was not enabled in the network offering.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4836
								</div>

							</td><td class="" align="left">
								<div class="para">
									Restart network with cleanup=true does not reprogram remote access VPN users in the virtual router.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4849
								</div>

							</td><td class="" align="left">
								<div class="para">
									LXC not working when using non-oss build.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4859
								</div>

							</td><td class="" align="left">
								<div class="para">
									No global configuration available to disable storage migration during HA.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4862
								</div>

							</td><td class="" align="left">
								<div class="para">
									Admin cannot delete shared network scoped to user account.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4872
								</div>

							</td><td class="" align="left">
								<div class="para">
									VM provisioned using a registered Windows Server 2012 template will show as other OS in vCenter.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4888
								</div>

							</td><td class="" align="left">
								<div class="para">
									Refresh blades on a decommissioned chassis results in NPE in UCS environment.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4913
								</div>

							</td><td class="" align="left">
								<div class="para">
									Disabling security group for bridge mode non-security group zone
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4921
								</div>

							</td><td class="" align="left">
								<div class="para">
									Usage service does not start after reboot.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4946
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Restore VM with template ID feature does not work.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4988
								</div>

							</td><td class="" align="left">
								<div class="para">
									The public templates created in ROOT/a/b domains are not visible in /ROOT/a domains
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5061
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Storage over-provisioning factor is not considered when using thin provisioning over VMFS datastores.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5066
								</div>

							</td><td class="" align="left">
								<div class="para">
									Existed remote access VPN is dropped when adding new VPN users.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5076
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Upgrade] Rebooting VM failed after bridge name change.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5122
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] System VMs are getting recreated with old template after upgrading to 4.2.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-1236
								</div>

							</td><td class="" align="left">
								<div class="para">
									Warning while adding XenServer 6.1 host: Unable to create local link network.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-1749
								</div>

							</td><td class="" align="left">
								<div class="para">
									Cloud agent service running on Secondary Storage VM and Console Proxy VM is named as cloud.com service.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-2024
								</div>

							</td><td class="" align="left">
								<div class="para">
									The cloudstack-setup-management script with https does not work due to incorrect path and missing keystore file.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-2034
								</div>

							</td><td class="" align="left">
								<div class="para">
									No alert generated when deleting a primary storage is failed.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-2413
								</div>

							</td><td class="" align="left">
								<div class="para">
									The Change Compute Offering dialog box for a instance displays the Description instead of the Name of compute offering.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-2767
								</div>

							</td><td class="" align="left">
								<div class="para">
									There is no check on input parameters in API for Global settings, zone settings, and account settings.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-2804
								</div>

							</td><td class="" align="left">
								<div class="para">
									The getEthByIp function in vpc_func.sh can return the wrong network interface.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-2918
								</div>

							</td><td class="" align="left">
								<div class="para">
									In a scaledup environment, hosts fail to come up after Management Server restart in a clustered setup.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3223
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Exception occurred while creating the CPVM in a setup using the latest SystemVM template.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3508
								</div>

							</td><td class="" align="left">
								<div class="para">
									NullPointerException observed during the ListVolumeAnswer API call.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3603
								</div>

							</td><td class="" align="left">
								<div class="para">
									The template_store_ref"" table has Invalid URL References.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3803
								</div>

							</td><td class="" align="left">
								<div class="para">
									Unable to complete Add zone wizard.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3873
								</div>

							</td><td class="" align="left">
								<div class="para">
									No error notification is generated when cluster-level Primary storage is added with wrong path.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4449
								</div>

							</td><td class="" align="left">
								<div class="para">
									Possibility of /tmp/xapilog filling up the Root disk on XenServer.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4466
								</div>

							</td><td class="" align="left">
								<div class="para">
									DHCP capability breaks in 4.2.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4482
								</div>

							</td><td class="" align="left">
								<div class="para">
									The getVMPassword() API call does not return password for VMs that are deployed with password enabled templates.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4521
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] [upgrade] Attaching an uploaded volume to a VM throws NPE.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4572
								</div>

							</td><td class="" align="left">
								<div class="para">
									The findHostsForMigration API does not return correct host list.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4612
								</div>

							</td><td class="" align="left">
								<div class="para">
									Specified keyboard language is not showing as default in consoleView passed during deployVM.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4613
								</div>

							</td><td class="" align="left">
								<div class="para">
									Security group rules issue in hosts.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4627
								</div>

							</td><td class="" align="left">
								<div class="para">
									HA does not work, nor user VM migrate.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4636
								</div>

							</td><td class="" align="left">
								<div class="para">
									In a scaled-up setup all VMs in a cluster were stopped or started after Management Server restart.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4661
								</div>

							</td><td class="" align="left">
								<div class="para">
									[DB Upgrade] The SecondaryStorage entry in the host table before upgrade is not marked as removed after migrating them to image_store table.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4716
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Upgrade] The resource_count table is not updated after upgrade to 4.2
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4755
								</div>

							</td><td class="" align="left">
								<div class="para">
									Version 4.x does not allow memory upgrade.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4765
								</div>

							</td><td class="" align="left">
								<div class="para">
									PF rules configure public IP address is not set on the VR when network is up after GC.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4785
								</div>

							</td><td class="" align="left">
								<div class="para">
									No support for adding details to a user VM.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4786
								</div>

							</td><td class="" align="left">
								<div class="para">
									Redundant router has a priority limitation.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4797
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Documentation] Installation guide for 4.2 instructs users to install 4.1.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4813
								</div>

							</td><td class="" align="left">
								<div class="para">
									Get ExitValue when running bash commands.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4827
								</div>

							</td><td class="" align="left">
								<div class="para">
									Build failed on 4.2.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4839
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Documentation] The section 3.5 in the Install Guide provides wrong list of .deb packages.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4867
								</div>

							</td><td class="" align="left">
								<div class="para">
									NullPointerException on agent while remounting primary storage.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4882
								</div>

							</td><td class="" align="left">
								<div class="para">
									listClusters/pods/zones and listCapacity(dashboard view) API not accounting for reserved in the used capacity percentage.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4895
								</div>

							</td><td class="" align="left">
								<div class="para">
									Management Server fails to start because snapshot policy time zones have day light savings.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4911
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Mixed Hypervisor] VM status is marked as alive when exit status of ping command is not available within command timeout.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4923
								</div>

							</td><td class="" align="left">
								<div class="para">
									Network limits is missing in Accounts details page.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4924
								</div>

							</td><td class="" align="left">
								<div class="para">
									AcountCleanup: The IP address is not released if the network failed to delete.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4947
								</div>

							</td><td class="" align="left">
								<div class="para">
									if apply.allocation.algorithm.to.pods is set to true VM creation fails.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4948
								</div>

							</td><td class="" align="left">
								<div class="para">
									DeploymentPlanner: Logic to check if cluster can be avoided needs to consider if VM is using a local storage and shared storage.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4964
								</div>

							</td><td class="" align="left">
								<div class="para">
									Nexus password is logged in Management Server logs during guest network implementation with Cisco VNMC provider.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4985
								</div>

							</td><td class="" align="left">
								<div class="para">
									NPE while deleting old root volumes of a restored VM during storage garbage collection.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4987
								</div>

							</td><td class="" align="left">
								<div class="para">
									Adding an Isolated network belonging to an account to a VM belonging to different account is possible.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4998
								</div>

							</td><td class="" align="left">
								<div class="para">
									The assignVirtualMachine API has wrong response string, causing Cloudmonkey to crash.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5018
								</div>

							</td><td class="" align="left">
								<div class="para">
									Creation of VM using template from snapshot of RBD volume fails.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5029
								</div>

							</td><td class="" align="left">
								<div class="para">
									The cloud-bugtool is not available release package.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5038
								</div>

							</td><td class="" align="left">
								<div class="para">
									[Upgrade] Used CPU is getting bumped up when the over provisioning factor is greater than 1.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5096
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Corrupt template is left behind after the copy of a template from secondary to primary fails.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5140
								</div>

							</td><td class="" align="left">
								<div class="para">
									A stopped VM cant start after disable threshold has been reached on the storage pool.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-3100
								</div>

							</td><td class="" align="left">
								<div class="para">
									Add the displayvmflag to listVirtualMachines API.
								</div>

							</td></tr></tbody></table></div></div><div class="section" id="known-issues-4.2.1"><div class="titlepage"><div><div><h2 class="title">3.3. Known Issues in 4.2.1</h2></div></div></div><div class="para">
				This section includes a summary of known issues in 4.2.1
			</div><div class="informaltable"><table border="1"><colgroup><col width="50%" align="left" class="1" /><col width="50%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
								<div class="para">
									Issue ID
								</div>

							</th><th class="" align="left">
								<div class="para">
									Description
								</div>

							</th></tr></thead><tbody><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4875
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] vCenter 5.5 - SYSTEM VM: Unable to create deployment for VM
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5159
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Reset SSH keypair randomly fails.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5188
								</div>

							</td><td class="" align="left">
								<div class="para">
									Password reset of vm on XenServer and VMware does not work on first reboot.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-2140
								</div>

							</td><td class="" align="left">
								<div class="para">
									Host is still marked as being in UP state when the host is shutdown and there are no more hosts in the cluster.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4545
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Master template used by linked clones should not be available for deletion.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4577
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Unexpected exception while executing org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd java.lang.NullPointerException.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4587
								</div>

							</td><td class="" align="left">
								<div class="para">
									VM is failing to deploy on a Legacy zone after adding zone wide primary storage and moving cluster wide primary storage to maintenance mode.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4594
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] [Upgrade] Failed to revert VM Snapshot which were created before Live Storage Migrating the VM to other clusters.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4616
								</div>

							</td><td class="" align="left">
								<div class="para">
									When system VMs fail to start when host is down, link local IP addresses do not get released resulting in all the link local IPs being consumed eventually.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5008
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Failed to start the VM after performing Cold Migration of Volume to Second Zone wide primary Storage.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5014
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] DeployVM with data disk failed with exception.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5054
								</div>

							</td><td class="" align="left">
								<div class="para">
									VM migration involving storage migration on vmware fails with the 'The object has already been deleted or has not been completely created' exception.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5119
								</div>

							</td><td class="" align="left">
								<div class="para">
									VLAN provisioning broken in F5
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4475
								</div>

							</td><td class="" align="left">
								<div class="para">
									Attaching an uploaded volume to a VM is always going to first primary storage added.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4492
								</div>

							</td><td class="" align="left">
								<div class="para">
									Attaching volume to a VM fails after upgrade if the volume was uploaded before upgrade.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4496
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] System VMs are failed to start with NPE when host is in maintenance state.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4504
								</div>

							</td><td class="" align="left">
								<div class="para">
									VM creation is failing using the Ubuntu ISO with XenServer 6.1 and 6.2
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4536
								</div>

							</td><td class="" align="left">
								<div class="para">
									Inconsistency in volume store location on secondary storage for uploaded and extracted volume.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4574
								</div>

							</td><td class="" align="left">
								<div class="para">
									NPE while executing DestroyVM command.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4593
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] [Upgrade] Livestorage Migration and VM Snapshot features are not fully functional after upgrade.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4620
								</div>

							</td><td class="" align="left">
								<div class="para">
									VM failed to start on the host on which it was running due to not having enough reserved memory when the host was powered on after being shutdown.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4638
								</div>

							</td><td class="" align="left">
								<div class="para">
									State information is not synced on Starting VM directly via vCenter.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4639
								</div>

							</td><td class="" align="left">
								<div class="para">
									Status of VM is not synced properly when host is HA during hypervisor failure.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4657
								</div>

							</td><td class="" align="left">
								<div class="para">
									[CEPH] Attaching a volume to an instance that is migrated from one primary to another primary fails.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4697
								</div>

							</td><td class="" align="left">
								<div class="para">
									Not able to delete Primary storage when there are no hosts in the cluster.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4734
								</div>

							</td><td class="" align="left">
								<div class="para">
									Creating snapshot from ROOT volume fails with the Failed to create snapshot due to an internal error creating snapshot for volume 14 error message.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4743
								</div>

							</td><td class="" align="left">
								<div class="para">
									The applyStaticRoutes/createPrivateGatway/deletePrivateGateway APIs read from the vpc_service_map table instead of relying on hard-coded values.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4789
								</div>

							</td><td class="" align="left">
								<div class="para">
									Fix ResourceMetaDataManagerTest.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4850
								</div>

							</td><td class="" align="left">
								<div class="para">
									[UCS] using template instead of cloning profile.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4861
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] If Guest traffic spans across multiple physical networks, selection of physical network to implement guest network is not working correctly.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4906
								</div>

							</td><td class="" align="left">
								<div class="para">
									Add network address to the Marvin dependency list.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-4978
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Provisioning VMs from templates fails with the ROOT-249/ROOT-249.vmdk not found error
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5002
								</div>

							</td><td class="" align="left">
								<div class="para">
									Destroying VM does not work. VM destroy failed with the Stop i-2-59-VM command due to invalid object reference. The object may have recently been deleted.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5005
								</div>

							</td><td class="" align="left">
								<div class="para">
									Stopping multiple VMs does not work.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5020
								</div>

							</td><td class="" align="left">
								<div class="para">
									Recreate system VM fails in a specific scenario during storage maintenance.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5075
								</div>

							</td><td class="" align="left">
								<div class="para">
									Various issues with destroying a VM with local storage. VM disk statistics cannot be updated for a VM.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5090
								</div>

							</td><td class="" align="left">
								<div class="para">
									Anti-Affinity: VM fails to start on a cluster belonging to a different pod.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5098
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Entries in <code class="code">vmware_data_center</code> and <code class="code">vmware_data_center_zone_map</code> are not cleaned up when there is a failure to add the cluster.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5118
								</div>

							</td><td class="" align="left">
								<div class="para">
									Virtual Routers are listed multiple times in the Infrastructure page.
								</div>

							</td></tr><tr><td class="" align="left">
								<div class="para">
									CLOUDSTACK-5123
								</div>

							</td><td class="" align="left">
								<div class="para">
									[VMware] Memory over-provisioning behaviour.
								</div>

							</td></tr></tbody></table></div></div></div><div class="chapter" id="upgrade-instructions"><div class="titlepage"><div><div><h1 class="title">Chapter 4. Upgrade Instructions for 4.2.1</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="#upgrade-from-4.2-to-4.2.1">4.1. Upgrade from 4.2.0 to 4.2.1</a></span></dt><dt><span class="section"><a href="#upgrade-from-4.1-to-4.2.1">4.2. Upgrade from 4.1.x to 4.2.1</a></span></dt><dt><span class="section"><a href="#upgrade-from-4.0-to-4.2.1">4.3. Upgrade from 4.0.x to 4.2.1</a></span></dt><dt><span class="section"><a href="#upgrade-from-3.0.x-to-4.2.1">4.4. Upgrade from 3.0.x to 4.2.1</a></span></dt><dt><span class="section"><a href="#upgrade-from-2.2.x-to-4.2.1">4.5. Upgrade from 2.2.14 to 4.2.1</a></span></dt></dl></div><div class="para">
			This section contains upgrade instructions from prior versions of CloudStack to Apache CloudStack 4.2.1. We include instructions on upgrading to Apache CloudStack from pre-Apache versions of Citrix CloudStack (last version prior to Apache is 3.0.2) and from the releases made while CloudStack was in the Apache Incubator.
		</div><div class="para">
			If you run into any issues during upgrades, please feel free to ask questions on users@cloudstack.apache.org or dev@cloudstack.apache.org.
		</div><div class="section" id="upgrade-from-4.2-to-4.2.1"><div class="titlepage"><div><div><h2 class="title">4.1. Upgrade from 4.2.0 to 4.2.1</h2></div></div></div><div class="para">
				This section will guide you from CloudStack 4.2 to CloudStack 4.2.1.
			</div><div class="para">
				Any steps that are hypervisor-specific will be called out with a note.
			</div><div class="para">
				We recommend reading through this section once or twice before beginning your upgrade procedure, and working through it on a test system before working on a production system.
			</div><div class="orderedlist"><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
						The following upgrade instructions should be performed regardless of hypervisor type.
					</div></div></div><ol><li class="listitem"><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								While running the existing 4.2.0 system, log in to the UI as root administrator.
							</div></li><li class="listitem"><div class="para">
								In the left navigation bar, click Templates.
							</div></li><li class="listitem"><div class="para">
								In Select view, click Templates.
							</div></li><li class="listitem"><div class="para">
								Click Register template.
							</div><div class="para">
								The Register template dialog box is displayed.
							</div></li><li class="listitem"><div class="para">
								In the Register template dialog box, specify the following values (do not change these):
							</div><div class="informaltable"><table border="1"><colgroup><col width="33%" align="left" class="1" /><col width="67%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
												<div class="para">
													Hypervisor
												</div>
											</th><th class="" align="left">
												<div class="para">
													Description
												</div>
											</th></tr></thead><tbody><tr><td class="" align="left">
												<div class="para">
													XenServer
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													Description: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: XenServer
												</div>
												 <div class="para">
													Format: VHD
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													KVM
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-kvm-4.2
												</div>
												 <div class="para">
													Description: systemvm-kvm-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: KVM
												</div>
												 <div class="para">
													Format: QCOW2
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													VMware
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-vmware-4.2
												</div>
												 <div class="para">
													Description: systemvm-vmware-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: VMware
												</div>
												 <div class="para">
													Format: OVA
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr></tbody></table></div></li></ol></div></li><li class="listitem"><div class="para">
						Most users of CloudStack manage the installation and upgrades of CloudStack with one of Linux's predominant package systems, RPM or APT. This guide assumes you'll be using RPM and Yum (for Red Hat Enterprise Linux or CentOS), or APT and Debian packages (for Ubuntu).
					</div></li><li class="listitem"><div class="para">
						Create RPM or Debian packages (as appropriate) and a repository from the 4.2.1 source, or check the Apache CloudStack downloads page at <a href="http://cloudstack.apache.org/downloads.html">http://cloudstack.apache.org/downloads.html</a> for package repositories supplied by community members. You will need them for step <a class="xref" href="#upgrade-deb-packages-4.2.1">9</a> or step <a class="xref" href="#upgrade-rpm-packages-4.2.1">12</a>.
					</div><div class="para">
						Instructions for creating packages from the CloudStack source are in the <a href="http://cloudstack.apache.org/docs/en-US/index.html">Installation Guide</a>.
					</div></li><li class="listitem"><div class="para">
						Stop your management server or servers. Run this on all management server hosts:
					</div><pre class="programlisting"><code class="prompt">#</code> service cloudstack-management stop</pre></li><li class="listitem"><div class="para">
						If you are running a usage server or usage servers, stop those as well:
					</div><pre class="programlisting"><code class="prompt">#</code> service cloudstack-usage stop</pre></li><li class="listitem"><div class="para">
						Make a backup of your MySQL database. If you run into any issues or need to roll back the upgrade, this will assist in debugging or restoring your existing environment. You'll be prompted for your password.
					</div><pre class="programlisting"><code class="prompt">#</code> mysqldump -u root -p cloud &gt; cloudstack-backup.sql</pre></li><li class="listitem"><div class="para">
						Perform the following to verify the artifacts:
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								(optional) Install GPG keys if needed:
							</div><pre class="programlisting">sudo apt-get install gpg</pre></li><li class="listitem"><div class="para">
								Import the GPG keys stored in the source distribution's KEYS file
							</div><pre class="programlisting">gpg --import KEYS</pre><div class="para">
								Alternatively, download the signing keys, the IDs found in the KEYS file, individually by using a keyserver.
							</div><div class="para">
								For example:
							</div><pre class="programlisting">gpg --recv-keys CC56CEA8</pre></li><li class="listitem"><div class="para">
								Verify signatures and hash files:
							</div><pre class="programlisting">#gpg --verify apache-cloudstack-4.2.1-src.tar.bz2.asc
#gpg --print-md MD5 apache-cloudstack-4.2.1-src.tar.bz2 | diff - apache-cloudstack-4.2.1-src.tar.bz2.md5
#gpg --print-md SHA512 apache-cloudstack-4.2.1-src.tar.bz2 | diff - apache-cloudstack-4.2.1-src.tar.bz2.sha</pre><div class="para">
								Each of these commands should return no output. Any output from them implies that there is a difference between the hash you generated locally and the hash that has been pulled from the server.
							</div></li><li class="listitem"><div class="para">
								Get the commit hash from the VOTE email.
							</div><div class="para">
								For example: <code class="code">4cd60f3d1683a3445c3248f48ae064fb573db2a1</code>. The value changes between releases.
							</div></li><li class="listitem"><div class="para">
								Create two new temporary directories:
							</div><pre class="programlisting">#mkdir /tmp/cloudstack/git
#mkdir /tmp/cloudstack/tree</pre></li><li class="listitem"><div class="para">
								Check out the 4.2.1 branch:
							</div><pre class="programlisting">#git clone https://git-wip-us.apache.org/repos/asf/cloudstack.git /tmp/cloudstack/git
#cd /tmp/cloudstack/git
#git archive --format=tar --prefix=/tmp/cloudstack/tree/ &lt;commit-hash&gt; | tar Pxf -</pre></li><li class="listitem"><div class="para">
								Unpack the release artifact:
							</div><pre class="programlisting">#cd /tmp/cloudstack
#tar xvfj apache-cloudstack-4.2.1-src.tar.bz2</pre></li><li class="listitem"><div class="para">
								Compare the contents of the release artifact with the contents pulled from the repo:
							</div><pre class="programlisting">#diff -r /tmp/cloudstack/apache-cloudstack-4.2.1-src /tmp/cloudstack/tree</pre><div class="para">
								Ensure that content is the same.
							</div></li><li class="listitem"><div class="para">
								Verify the Code License Headers:
							</div><pre class="programlisting">#cd /tmp/cloudstack/apache-cloudstack-4.2.1-src
#mvn --projects='org.apache.cloudstack:cloudstack' org.apache.rat:apache-rat-plugin:0.8:check</pre><div class="para">
								The build fails if any non-compliant files are present that are not specifically excluded from the ASF license header requirement. You can optionally review the target/rat.txt file after the run completes. Passing the build implies that RAT certifies that the files are compliant and this test is passed.
							</div></li></ol></div></li><li class="listitem"><div class="para">
						(KVM Only) If primary storage of type local storage is in use, the path for this storage needs to be verified to ensure it passes new validation. Check local storage by querying the cloud.storage_pool table:
					</div><pre class="programlisting"><code class="prompt">#</code>mysql -u cloud -p -e "select id,name,path from cloud.storage_pool where pool_type='Filesystem'"</pre><div class="para">
						If local storage paths are found to have a trailing forward slash, remove it: 
<pre class="programlisting"><code class="prompt">#</code>mysql -u cloud -p -e 'update cloud.storage_pool set path="/var/lib/libvirt/images" where path="/var/lib/libvirt/images/"';</pre>

					</div></li><li class="listitem" id="upgrade-deb-packages-4.2.1"><div class="para">
						If you are using Ubuntu, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#upgrade-rpm-packages-4.2.1">12</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and APT repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="debsteps-4.2.1"><ol class="loweralpha"><li class="listitem"><div class="para">
								The first order of business will be to change the sources list for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/apt/sources.list.d/cloudstack.list</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have one line, which contains:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</pre><div class="para">
								We'll change it to point to the new package repository:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</pre><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.1 repository.
							</div></li><li class="listitem"><div class="para">
								Now update your apt package list:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get update</pre></li><li class="listitem" id="deb-master-4.2.1"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package. This will pull in any other dependencies you need.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-management</pre></li><li class="listitem" id="kvm-agent-deb-4.2.1"><div class="para">
								You will need to manually install the <code class="filename">cloudstack-agent</code> package:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-agent</pre><div class="para">
								During the installation of <code class="filename">cloudstack-agent</code>, APT will copy your <code class="filename">agent.properties</code>, <code class="filename">log4j-cloud.xml</code>, and <code class="filename">environment.properties</code> from <code class="filename">/etc/cloud/agent</code> to <code class="filename">/etc/cloudstack/agent</code>.
							</div><div class="para">
								When prompted whether you wish to keep your configuration, say Yes.
							</div></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
service cloudstack-agent stop
<span class="perl_BString">killall</span> jsvc
service cloudstack-agent start
</pre></li></ol></div></li><li class="listitem"><div class="para">
						(VMware only) Additional steps are required for each VMware cluster. These steps will not affect running guests in the cloud. These steps are required only for clouds using VMware clusters:
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Stop the Management Server:
							</div><pre class="programlisting">service cloudstack-management stop</pre></li><li class="listitem"><div class="para">
								Generate the encrypted equivalent of your vCenter password:
							</div><pre class="programlisting">java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.0.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI encrypt.sh input="_your_vCenter_password_" password="`cat /etc/cloudstack/management/key`" verbose=false</pre><div class="para">
								Store the output from this step, we need to add this in cluster_details table and vmware_data_center tables in place of the plain text password
							</div></li><li class="listitem"><div class="para">
								Find the ID of the row of cluster_details table that you have to update:
							</div><pre class="programlisting">mysql -u &lt;username&gt; -p&lt;password&gt;</pre><pre class="programlisting">select * from cloud.cluster_details;</pre></li><li class="listitem"><div class="para">
								Update the plain text password with the encrypted one
							</div><pre class="programlisting">update cloud.cluster_details set value = '_ciphertext_from_step_1_' where id = _id_from_step_2_;</pre></li><li class="listitem"><div class="para">
								Confirm that the table is updated:
							</div><pre class="programlisting">select * from cloud.cluster_details;</pre></li><li class="listitem"><div class="para">
								Find the ID of the correct row of vmware_data_center that you want to update
							</div><pre class="programlisting">select * from cloud.vmware_data_center;</pre></li><li class="listitem"><div class="para">
								update the plain text password with the encrypted one:
							</div><pre class="programlisting">update cloud.vmware_data_center set password = '_ciphertext_from_step_1_' where id = _id_from_step_5_;</pre></li><li class="listitem"><div class="para">
								Confirm that the table is updated:
							</div><pre class="programlisting">select * from cloud.vmware_data_center;</pre></li><li class="listitem"><div class="para">
								Start the CloudStack Management server
							</div><pre class="programlisting">service cloudstack-management start</pre></li></ol></div></li><li class="listitem"><div class="para">
						(KVM only) Additional steps are required for each KVM host. These steps will not affect running guests in the cloud. These steps are required only for clouds using KVM as hosts and only on the KVM hosts.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Configure the CloudStack yum repository as detailed above.
							</div></li><li class="listitem"><div class="para">
								Stop the running agent.
							</div><pre class="programlisting"># service cloud-agent stop</pre></li><li class="listitem"><div class="para">
								Update the agent software.
							</div><pre class="programlisting"># yum update cloudstack-agent</pre></li><li class="listitem"><div class="para">
								Start the agent.
							</div><pre class="programlisting"># service cloudstack-agent start</pre></li></ol></div></li><li class="listitem" id="upgrade-rpm-packages-4.2.1"><div class="para">
						If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#restart-system-vms-4.2.1">14</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and yum repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="rpmsteps-4.2.1"><ol class="loweralpha"><li class="listitem"><div class="para">
								The first order of business will be to change the yum repository for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent.
							</div><div class="para">
								(No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/yum.repos.d/cloudstack.repo</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have content similar to the following:
							</div><pre class="programlisting">
[apache-cloudstack]
<span class="perl_Others">name=</span>Apache CloudStack
<span class="perl_Others">baseurl=</span>http://cloudstack.apt-get.eu/rhel/4.0/
<span class="perl_Others">enabled=</span>1
<span class="perl_Others">gpgcheck=</span>0
</pre><div class="para">
								If you are using the community provided package repository, change the base url to http://cloudstack.apt-get.eu/rhel/4.2/
							</div><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.1 repository.
							</div></li><li class="listitem" id="rpm-master-4.2.1"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package by upgrading the older <code class="filename">cloudstack-management</code> package.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloudstack-management</pre></li><li class="listitem" id="kvm-agent-rpm-4.2.1"><div class="para">
								For KVM hosts, you will need to upgrade the <code class="filename">cloud-agent</code> package, similarly installing the new version as <code class="filename">cloudstack-agent</code>.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloudstack-agent</pre></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
service cloudstack-agent stop
<span class="perl_BString">killall</span> jsvc
service cloudstack-agent start
</pre></li></ol></div></li><li class="listitem" id="restart-mgmt-server-4.2.1"><div class="para">
						Now it's time to restart the management server
					</div><pre class="programlisting"><span class="perl_Comment"># service cloudstack-management start</span></pre></li><li class="listitem" id="restart-system-vms-4.2.1"><div class="para">
						Once you've upgraded the packages on your management servers, you'll need to restart the system VMs. Ensure that the admin port is set to 8096 by using the "integration.api.port" global parameter. This port is used by the cloud-sysvmadm script at the end of the upgrade procedure. For information about how to set this parameter, see "Setting Global Configuration Parameters" in the Installation Guide. Changing this parameter will require management server restart. Also make sure port 8096 is open in your local host firewall to do this.
					</div><div class="para">
						There is a script that will do this for you, all you need to do is run the script and supply the IP address for your MySQL instance and your MySQL credentials:
					</div><pre class="programlisting"><span class="perl_Comment"># nohup cloudstack-sysvmadm -d IP address -u cloud -p -a &gt; sysvm.log 2&gt;&amp;1 &amp;</span></pre><div class="para">
						You can monitor the log for progress. The process of restarting the system VMs can take an hour or more.
					</div><pre class="programlisting"><span class="perl_Comment"># tail -f sysvm.log</span></pre><div class="para">
						The output to <code class="filename">sysvm.log</code> will look something like this:
					</div><pre class="programlisting">
Stopping and starting 1 secondary storage vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
Done stopping and starting secondary storage vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>
Stopping and starting 1 console proxy vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
Done stopping and starting console proxy vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>.
Stopping and starting 4 running routing vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
Done restarting router<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>.
</pre></li><li class="listitem"><div class="note"><div class="admonition_header"><h2>For Xen Hosts: Copy vhd-utils</h2></div><div class="admonition"><div class="para">
							This step is only for CloudStack installs that are using Xen hosts.
						</div></div></div><div class="para">
						Copy the file <code class="filename">vhd-utils</code> to <code class="filename">/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver</code>.
					</div></li></ol></div></div><div class="section" id="upgrade-from-4.1-to-4.2.1"><div class="titlepage"><div><div><h2 class="title">4.2. Upgrade from 4.1.x to 4.2.1</h2></div></div></div><div class="para">
				This section will guide you from CloudStack 4.1.x versions to CloudStack 4.2.1.
			</div><div class="para">
				Any steps that are hypervisor-specific will be called out with a note.
			</div><div class="para">
				We recommend reading through this section once or twice before beginning your upgrade procedure, and working through it on a test system before working on a production system.
			</div><div class="orderedlist"><ol><li class="listitem"><div class="para">
						Most users of CloudStack manage the installation and upgrades of CloudStack with one of Linux's predominant package systems, RPM or APT. This guide assumes you'll be using RPM and Yum (for Red Hat Enterprise Linux or CentOS), or APT and Debian packages (for Ubuntu).
					</div></li><li class="listitem"><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
							The following upgrade instructions should be performed regardless of hypervisor type.
						</div></div></div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								While running the existing 4.1.x system, log in to the UI as root administrator.
							</div></li><li class="listitem"><div class="para">
								In the left navigation bar, click Templates.
							</div></li><li class="listitem"><div class="para">
								In Select view, click Templates.
							</div></li><li class="listitem"><div class="para">
								Click Register template.
							</div><div class="para">
								The Register template dialog box is displayed.
							</div></li><li class="listitem"><div class="para">
								In the Register template dialog box, specify the following values (do not change these):
							</div><div class="informaltable"><table border="1"><colgroup><col width="33%" align="left" class="1" /><col width="67%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
												<div class="para">
													Hypervisor
												</div>
											</th><th class="" align="left">
												<div class="para">
													Description
												</div>
											</th></tr></thead><tbody><tr><td class="" align="left">
												<div class="para">
													XenServer
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													Description: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: XenServer
												</div>
												 <div class="para">
													Format: VHD
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													KVM
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-kvm-4.2
												</div>
												 <div class="para">
													Description: systemvm-kvm-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: KVM
												</div>
												 <div class="para">
													Format: QCOW2
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													VMware
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-vmware-4.2
												</div>
												 <div class="para">
													Description: systemvm-vmware-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: VMware
												</div>
												 <div class="para">
													Format: OVA
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr></tbody></table></div></li></ol></div></li><li class="listitem"><div class="para">
						Create RPM or Debian packages (as appropriate) and a repository from the 4.2.1 source, or check the Apache CloudStack downloads page at <a href="http://cloudstack.apache.org/downloads.html">http://cloudstack.apache.org/downloads.html</a> for package repositories supplied by community members. You will need them for step <a class="xref" href="#upgrade-deb-packages-41to42">8</a> or step <a class="xref" href="#upgrade-rpm-packages-41to42">11</a>.
					</div><div class="para">
						Instructions for creating packages from the CloudStack source are in the <a href="http://cloudstack.apache.org/docs/en-US/index.html">Installation Guide</a>.
					</div></li><li class="listitem"><div class="para">
						Stop your management server or servers. Run this on all management server hosts:
					</div><pre class="programlisting"><code class="prompt">#</code> service cloudstack-management stop</pre></li><li class="listitem"><div class="para">
						If you are running a usage server or usage servers, stop those as well:
					</div><pre class="programlisting"><code class="prompt">#</code> service cloudstack-usage stop</pre></li><li class="listitem"><div class="para">
						Make a backup of your MySQL database. If you run into any issues or need to roll back the upgrade, this will assist in debugging or restoring your existing environment. You'll be prompted for your password.
					</div><pre class="programlisting"><code class="prompt">#</code> mysqldump -u root -p cloud &gt; cloudstack-backup.sql</pre></li><li class="listitem"><div class="para">
						(KVM Only) If primary storage of type local storage is in use, the path for this storage needs to be verified to ensure it passes new validation. Check local storage by querying the cloud.storage_pool table:
					</div><pre class="programlisting"><code class="prompt">#</code>mysql -u cloud -p -e "select id,name,path from cloud.storage_pool where pool_type='Filesystem'"</pre><div class="para">
						If local storage paths are found to have a trailing forward slash, remove it: 
<pre class="programlisting"><code class="prompt">#</code>mysql -u cloud -p -e 'update cloud.storage_pool set path="/var/lib/libvirt/images" where path="/var/lib/libvirt/images/"';</pre>

					</div></li><li class="listitem" id="upgrade-deb-packages-41to42"><div class="para">
						If you are using Ubuntu, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#upgrade-rpm-packages-41to42">11</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and APT repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="debsteps-41to42"><ol class="loweralpha"><li class="listitem"><div class="para">
								The first order of business will be to change the sources list for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/apt/sources.list.d/cloudstack.list</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have one line, which contains:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</pre><div class="para">
								We'll change it to point to the new package repository:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</pre><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.1 repository.
							</div></li><li class="listitem"><div class="para">
								Now update your apt package list:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get update</pre></li><li class="listitem" id="deb-master-41to42"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package. This will pull in any other dependencies you need.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-management</pre></li><li class="listitem" id="kvm-agent-deb-41to42"><div class="para">
								You will need to manually install the <code class="filename">cloudstack-agent</code> package:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-agent</pre><div class="para">
								During the installation of <code class="filename">cloudstack-agent</code>, APT will copy your <code class="filename">agent.properties</code>, <code class="filename">log4j-cloud.xml</code>, and <code class="filename">environment.properties</code> from <code class="filename">/etc/cloud/agent</code> to <code class="filename">/etc/cloudstack/agent</code>.
							</div><div class="para">
								When prompted whether you wish to keep your configuration, say Yes.
							</div></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
service cloudstack-agent stop
<span class="perl_BString">killall</span> jsvc
service cloudstack-agent start
</pre></li></ol></div></li><li class="listitem"><div class="para">
						(VMware only) Additional steps are required for each VMware cluster. These steps will not affect running guests in the cloud. These steps are required only for clouds using VMware clusters:
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Stop the Management Server:
							</div><pre class="programlisting">service cloudstack-management stop</pre></li><li class="listitem"><div class="para">
								Generate the encrypted equivalent of your vCenter password:
							</div><pre class="programlisting">java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.0.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI encrypt.sh input="_your_vCenter_password_" password="`cat /etc/cloudstack/management/key`" verbose=false</pre><div class="para">
								Store the output from this step, we need to add this in cluster_details table and vmware_data_center tables in place of the plain text password
							</div></li><li class="listitem"><div class="para">
								Find the ID of the row of cluster_details table that you have to update:
							</div><pre class="programlisting">mysql -u &lt;username&gt; -p&lt;password&gt;</pre><pre class="programlisting">select * from cloud.cluster_details;</pre></li><li class="listitem"><div class="para">
								Update the plain text password with the encrypted one
							</div><pre class="programlisting">update cloud.cluster_details set value = '_ciphertext_from_step_1_' where id = _id_from_step_2_;</pre></li><li class="listitem"><div class="para">
								Confirm that the table is updated:
							</div><pre class="programlisting">select * from cloud.cluster_details;</pre></li><li class="listitem"><div class="para">
								Find the ID of the correct row of vmware_data_center that you want to update
							</div><pre class="programlisting">select * from cloud.vmware_data_center;</pre></li><li class="listitem"><div class="para">
								update the plain text password with the encrypted one:
							</div><pre class="programlisting">update cloud.vmware_data_center set password = '_ciphertext_from_step_1_' where id = _id_from_step_5_;</pre></li><li class="listitem"><div class="para">
								Confirm that the table is updated:
							</div><pre class="programlisting">select * from cloud.vmware_data_center;</pre></li><li class="listitem"><div class="para">
								Start the CloudStack Management server
							</div><pre class="programlisting">service cloudstack-management start</pre></li></ol></div></li><li class="listitem"><div class="para">
						(KVM only) Additional steps are required for each KVM host. These steps will not affect running guests in the cloud. These steps are required only for clouds using KVM as hosts and only on the KVM hosts.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Configure the CloudStack yum repository as detailed above.
							</div></li><li class="listitem"><div class="para">
								Stop the running agent.
							</div><pre class="programlisting"># service cloud-agent stop</pre></li><li class="listitem"><div class="para">
								Update the agent software.
							</div><pre class="programlisting"># yum update cloudstack-agent</pre></li><li class="listitem"><div class="para">
								Start the agent.
							</div><pre class="programlisting"># service cloudstack-agent start</pre></li></ol></div></li><li class="listitem" id="upgrade-rpm-packages-41to42"><div class="para">
						If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#restart-system-vms-41to42">13</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and yum repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="rpmsteps-41to42"><ol class="loweralpha"><li class="listitem"><div class="para">
								The first order of business will be to change the yum repository for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent.
							</div><div class="para">
								(No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/yum.repos.d/cloudstack.repo</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have content similar to the following:
							</div><pre class="programlisting">
[apache-cloudstack]
<span class="perl_Others">name=</span>Apache CloudStack
<span class="perl_Others">baseurl=</span>http://cloudstack.apt-get.eu/rhel/4.0/
<span class="perl_Others">enabled=</span>1
<span class="perl_Others">gpgcheck=</span>0
</pre><div class="para">
								If you are using the community provided package repository, change the base url to http://cloudstack.apt-get.eu/rhel/4.2/
							</div><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.1 repository.
							</div></li><li class="listitem" id="rpm-master-41to42"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package by upgrading the older <code class="filename">cloudstack-management</code> package.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloudstack-management</pre></li><li class="listitem" id="kvm-agent-rpm-41to42"><div class="para">
								For KVM hosts, you will need to upgrade the <code class="filename">cloud-agent</code> package, similarly installing the new version as <code class="filename">cloudstack-agent</code>.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloudstack-agent</pre></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
service cloudstack-agent stop
<span class="perl_BString">killall</span> jsvc
service cloudstack-agent start
</pre></li></ol></div></li><li class="listitem" id="restart-mgmt-server-41to42"><div class="para">
						Now it's time to restart the management server
					</div><pre class="programlisting"><span class="perl_Comment"># service cloudstack-management start</span></pre></li><li class="listitem" id="restart-system-vms-41to42"><div class="para">
						Once you've upgraded the packages on your management servers, you'll need to restart the system VMs. Ensure that the admin port is set to 8096 by using the "integration.api.port" global parameter. This port is used by the cloud-sysvmadm script at the end of the upgrade procedure. For information about how to set this parameter, see "Setting Global Configuration Parameters" in the Installation Guide. Changing this parameter will require management server restart. Also make sure port 8096 is open in your local host firewall to do this.
					</div><div class="para">
						There is a script that will do this for you, all you need to do is run the script and supply the IP address for your MySQL instance and your MySQL credentials:
					</div><pre class="programlisting"><span class="perl_Comment"># nohup cloudstack-sysvmadm -d IP address -u cloud -p -a &gt; sysvm.log 2&gt;&amp;1 &amp;</span></pre><div class="para">
						You can monitor the log for progress. The process of restarting the system VMs can take an hour or more.
					</div><pre class="programlisting"><span class="perl_Comment"># tail -f sysvm.log</span></pre><div class="para">
						The output to <code class="filename">sysvm.log</code> will look something like this:
					</div><pre class="programlisting">
Stopping and starting 1 secondary storage vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
Done stopping and starting secondary storage vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>
Stopping and starting 1 console proxy vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
Done stopping and starting console proxy vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>.
Stopping and starting 4 running routing vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
Done restarting router<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>.
</pre></li><li class="listitem"><div class="note"><div class="admonition_header"><h2>For Xen Hosts: Copy vhd-utils</h2></div><div class="admonition"><div class="para">
							This step is only for CloudStack installs that are using Xen hosts.
						</div></div></div><div class="para">
						Copy the file <code class="filename">vhd-utils</code> to <code class="filename">/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver</code>.
					</div></li></ol></div></div><div class="section" id="upgrade-from-4.0-to-4.2.1"><div class="titlepage"><div><div><h2 class="title">4.3. Upgrade from 4.0.x to 4.2.1</h2></div></div></div><div class="para">
				This section will guide you from CloudStack 4.0.x versions to CloudStack 4.2.1.
			</div><div class="para">
				Any steps that are hypervisor-specific will be called out with a note.
			</div><div class="warning"><div class="admonition_header"><h2>Package Structure Changes</h2></div><div class="admonition"><div class="para">
					The package structure for CloudStack has changed significantly since the 4.0.x releases. If you've compiled your own packages, you'll notice that the package names and the number of packages has changed. This is <span class="emphasis"><em>not</em></span> a bug.
				</div><div class="para">
					However, this <span class="emphasis"><em>does</em></span> mean that the procedure is not as simple as an <code class="command">apt-get upgrade</code> or <code class="command">yum update</code>, so please follow this section carefully.
				</div></div></div><div class="para">
				We recommend reading through this section once or twice before beginning your upgrade procedure, and working through it on a test system before working on a production system.
			</div><div class="orderedlist"><ol><li class="listitem"><div class="para">
						Most users of CloudStack manage the installation and upgrades of CloudStack with one of Linux's predominant package systems, RPM or APT. This guide assumes you'll be using RPM and Yum (for Red Hat Enterprise Linux or CentOS), or APT and Debian packages (for Ubuntu).
					</div><div class="para">
						Create RPM or Debian packages (as appropriate) and a repository from the 4.1.0 source, or check the Apache CloudStack downloads page at <a href="http://cloudstack.apache.org/downloads.html">http://cloudstack.apache.org/downloads.html</a> for package repositories supplied by community members. You will need them for step <a class="xref" href="#upgrade-deb-packages-40to41">9</a> or step <a class="xref" href="#upgrade-rpm-packages-40to41">10</a>.
					</div><div class="para">
						Instructions for creating packages from the CloudStack source are in the <a href="http://cloudstack.apache.org/docs/en-US/index.html">Installation Guide</a>.
					</div></li><li class="listitem"><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
							The following upgrade instructions should be performed regardless of hypervisor type.
						</div></div></div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								While running the existing 4.0.0 system, log in to the UI as root administrator.
							</div></li><li class="listitem"><div class="para">
								In the left navigation bar, click Templates.
							</div></li><li class="listitem"><div class="para">
								In Select view, click Templates.
							</div></li><li class="listitem"><div class="para">
								Click Register template.
							</div><div class="para">
								The Register template dialog box is displayed.
							</div></li><li class="listitem"><div class="para">
								In the Register template dialog box, specify the following values (do not change these):
							</div><div class="informaltable"><table border="1"><colgroup><col width="33%" align="left" class="1" /><col width="67%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
												<div class="para">
													Hypervisor
												</div>
											</th><th class="" align="left">
												<div class="para">
													Description
												</div>
											</th></tr></thead><tbody><tr><td class="" align="left">
												<div class="para">
													XenServer
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													Description: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: XenServer
												</div>
												 <div class="para">
													Format: VHD
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													KVM
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-kvm-4.2
												</div>
												 <div class="para">
													Description: systemvm-kvm-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: KVM
												</div>
												 <div class="para">
													Format: QCOW2
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													VMware
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-vmware-4.2
												</div>
												 <div class="para">
													Description: systemvm-vmware-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: VMware
												</div>
												 <div class="para">
													Format: OVA
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr></tbody></table></div></li></ol></div></li><li class="listitem"><div class="para">
						Stop your management server or servers. Run this on all management server hosts:
					</div><pre class="programlisting"><code class="prompt">#</code> service cloud-management stop</pre></li><li class="listitem"><div class="para">
						If you are running a usage server or usage servers, stop those as well:
					</div><pre class="programlisting"><code class="prompt">#</code> service cloud-usage stop</pre></li><li class="listitem"><div class="para">
						Make a backup of your MySQL database. If you run into any issues or need to roll back the upgrade, this will assist in debugging or restoring your existing environment. You'll be prompted for your password.
					</div><pre class="programlisting"><code class="prompt">#</code> mysqldump -u root -p cloud &gt; cloudstack-backup.sql</pre></li><li class="listitem"><div class="para">
						Whether you're upgrading a Red Hat/CentOS based system or Ubuntu based system, you're going to need to stop the CloudStack management server before proceeding.
					</div><pre class="programlisting"><span class="perl_Comment"># service cloud-management stop</span></pre></li><li class="listitem"><div class="para">
						If you have made changes to <code class="filename">/etc/cloud/management/components.xml</code>, you'll need to carry these over manually to the new file, <code class="filename">/etc/cloudstack/management/componentContext.xml</code>. This is not done automatically. (If you're unsure, we recommend making a backup of the original <code class="filename">components.xml</code> to be on the safe side.
					</div></li><li class="listitem"><div class="para">
						After upgrading to 4.2.1, API clients are expected to send plain text passwords for login and user creation, instead of MD5 hash. Incase, api client changes are not acceptable, following changes are to be made for backward compatibility:
					</div><div class="para">
						Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default authenticator (1st entry in the userAuthenticators adapter list is default)
					</div><pre class="programlisting">
<span class="perl_Comment">&lt;!-- Security adapters --&gt;</span>
<span class="perl_Keyword">&lt;bean</span><span class="perl_Others"> id=</span><span class="perl_String">"userAuthenticators"</span><span class="perl_Others"> class=</span><span class="perl_String">"com.cloud.utils.component.AdapterList"</span><span class="perl_Keyword">&gt;</span>
  <span class="perl_Keyword">&lt;property</span><span class="perl_Others"> name=</span><span class="perl_String">"Adapters"</span><span class="perl_Keyword">&gt;</span>
    <span class="perl_Keyword">&lt;list&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"PlainTextUserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"MD5UserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"LDAPUserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
    <span class="perl_Keyword">&lt;/list&gt;</span>
  <span class="perl_Keyword">&lt;/property&gt;</span>
<span class="perl_Keyword">&lt;/bean&gt;</span>
</pre><div class="para">
						PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to 4.2.1.
					</div></li><li class="listitem" id="upgrade-deb-packages-40to41"><div class="para">
						If you are using Ubuntu, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#upgrade-rpm-packages-40to41">10</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and APT repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="debsteps-40to41"><ol><li class="listitem"><div class="para">
								The first order of business will be to change the sources list for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/apt/sources.list.d/cloudstack.list</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have one line, which contains:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</pre><div class="para">
								We'll change it to point to the new package repository:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.1</pre><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.1.0 repository.
							</div></li><li class="listitem"><div class="para">
								Now update your apt package list:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get update</pre></li><li class="listitem" id="deb-master-40to41"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package. This will pull in any other dependencies you need.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-management</pre></li><li class="listitem" id="kvm-agent-deb-40to41"><div class="para">
								You will need to manually install the <code class="filename">cloudstack-agent</code> package:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-agent</pre><div class="para">
								During the installation of <code class="filename">cloudstack-agent</code>, APT will copy your <code class="filename">agent.properties</code>, <code class="filename">log4j-cloud.xml</code>, and <code class="filename">environment.properties</code> from <code class="filename">/etc/cloud/agent</code> to <code class="filename">/etc/cloudstack/agent</code>.
							</div><div class="para">
								When prompted whether you wish to keep your configuration, say Yes.
							</div></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
                                service cloud-agent stop
                                <span class="perl_BString">killall</span> jsvc
                                service cloudstack-agent start
</pre></li><li class="listitem"><div class="para">
								During the upgrade, <code class="filename">log4j-cloud.xml</code> was simply copied over, so the logs will continue to be added to <code class="filename">/var/log/cloud/agent/agent.log</code>. There's nothing <span class="emphasis"><em>wrong</em></span> with this, but if you prefer to be consistent, you can change this by copying over the sample configuration file:
							</div><pre class="programlisting">
                                <span class="perl_Reserved">cd</span> /etc/cloudstack/agent
                                <span class="perl_BString">mv</span> log4j-cloud.xml.dpkg-dist log4j-cloud.xml
                                service cloudstack-agent restart
</pre></li><li class="listitem"><div class="para">
								Once the agent is running, you can uninstall the old cloud-* packages from your system:
							</div><pre class="programlisting"><span class="perl_BString">sudo</span> dpkg --purge cloud-agent</pre></li></ol></div></li><li class="listitem" id="upgrade-rpm-packages-40to41"><div class="para">
						If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#restart-system-vms-40to41">11</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and yum repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="rpmsteps-40to41"><ol><li class="listitem"><div class="para">
								The first order of business will be to change the yum repository for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/yum.repos.d/cloudstack.repo</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have content similar to the following:
							</div><pre class="programlisting">
                                [apache-cloudstack]
                                <span class="perl_Others">name=</span>Apache CloudStack
                                <span class="perl_Others">baseurl=</span>http://cloudstack.apt-get.eu/rhel/4.0/
                                <span class="perl_Others">enabled=</span>1
                                <span class="perl_Others">gpgcheck=</span>0
</pre><div class="para">
								If you are using the community provided package repository, change the baseurl to http://cloudstack.apt-get.eu/rhel/4.1/
							</div><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.1 repository.
							</div></li><li class="listitem" id="rpm-master-40to41"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package by upgrading the older <code class="filename">cloud-client</code> package.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloud-client</pre></li><li class="listitem" id="kvm-agent-rpm-40to41"><div class="para">
								For KVM hosts, you will need to upgrade the <code class="filename">cloud-agent</code> package, similarly installing the new version as <code class="filename">cloudstack-agent</code>.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloud-agent</pre><div class="para">
								During the installation of <code class="filename">cloudstack-agent</code>, the RPM will copy your <code class="filename">agent.properties</code>, <code class="filename">log4j-cloud.xml</code>, and <code class="filename">environment.properties</code> from <code class="filename">/etc/cloud/agent</code> to <code class="filename">/etc/cloudstack/agent</code>.
							</div></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
                                service cloud-agent stop
                                <span class="perl_BString">killall</span> jsvc
                                service cloudstack-agent start
</pre></li></ol></div></li><li class="listitem" id="restart-system-vms-40to41"><div class="para">
						Once you've upgraded the packages on your management servers, you'll need to restart the system VMs. Make sure port 8096 is open in your local host firewall to do this.
					</div><div class="para">
						There is a script that will do this for you, all you need to do is run the script and supply the IP address for your MySQL instance and your MySQL credentials:
					</div><pre class="programlisting"><span class="perl_Comment"># nohup cloudstack-sysvmadm -d IP address -u cloud -p -a &gt; sysvm.log 2&gt;&amp;1 &amp;</span></pre><div class="para">
						You can monitor the log for progress. The process of restarting the system VMs can take an hour or more.
					</div><pre class="programlisting"><span class="perl_Comment"># tail -f sysvm.log</span></pre><div class="para">
						The output to <code class="filename">sysvm.log</code> will look something like this:
					</div><pre class="programlisting">
                        Stopping and starting 1 secondary storage vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
                        Done stopping and starting secondary storage vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>
                        Stopping and starting 1 console proxy vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
                        Done stopping and starting console proxy vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>.
                        Stopping and starting 4 running routing vm<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>...
                        Done restarting router<span class="perl_Keyword">(</span>s<span class="perl_Keyword">)</span>.
</pre></li><li class="listitem"><div class="note"><div class="admonition_header"><h2>For Xen Hosts: Copy vhd-utils</h2></div><div class="admonition"><div class="para">
							This step is only for CloudStack installs that are using Xen hosts.
						</div></div></div><div class="para">
						Copy the file <code class="filename">vhd-utils</code> to <code class="filename">/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver</code>.
					</div></li></ol></div></div><div class="section" id="upgrade-from-3.0.x-to-4.2.1"><div class="titlepage"><div><div><h2 class="title">4.4. Upgrade from 3.0.x to 4.2.1</h2></div></div></div><div class="para">
				This section will guide you from Citrix CloudStack 3.0.x to Apache CloudStack 4.2.1. Sections that are hypervisor-specific will be called out with a note.
			</div><div class="orderedlist"><ol><li class="listitem"><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
							The following upgrade instructions should be performed regardless of hypervisor type.
						</div></div></div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								While running the existing 3.0.x system, log in to the UI as root administrator.
							</div></li><li class="listitem"><div class="para">
								In the left navigation bar, click Templates.
							</div></li><li class="listitem"><div class="para">
								In Select view, click Templates.
							</div></li><li class="listitem"><div class="para">
								Click Register template.
							</div><div class="para">
								The Register template dialog box is displayed.
							</div></li><li class="listitem"><div class="para">
								In the Register template dialog box, specify the following values (do not change these):
							</div><div class="informaltable"><table border="1"><colgroup><col width="33%" align="left" class="1" /><col width="67%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
												<div class="para">
													Hypervisor
												</div>
											</th><th class="" align="left">
												<div class="para">
													Description
												</div>
											</th></tr></thead><tbody><tr><td class="" align="left">
												<div class="para">
													XenServer
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													Description: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: XenServer
												</div>
												 <div class="para">
													Format: VHD
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													KVM
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-kvm-4.2
												</div>
												 <div class="para">
													Description: systemvm-kvm-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: KVM
												</div>
												 <div class="para">
													Format: QCOW2
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													VMware
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-vmware-4.2
												</div>
												 <div class="para">
													Description: systemvm-vmware-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: VMware
												</div>
												 <div class="para">
													Format: OVA
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr></tbody></table></div></li><li class="listitem"><div class="para">
								Watch the screen to be sure that the template downloads successfully and enters the READY state. Do not proceed until this is successful.
							</div></li></ol></div></li><li class="listitem"><div class="para">
						(KVM on RHEL 6.0/6.1 only) If your existing CloudStack deployment includes one or more clusters of KVM hosts running RHEL 6.0 or RHEL 6.1, perform the following:
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Ensure that you upgrade the operating system version on those hosts before upgrading CloudStack
							</div><div class="para">
								To do that, change the yum repository for each system with CloudStack packages, that implies that all the Management Servers and any hosts that have the KVM agent.
							</div></li><li class="listitem"><div class="para">
								Open <code class="filename">/etc/yum.repos.d/cloudstack.repo</code> on any systems that have CloudStack packages installed.
							</div></li><li class="listitem"><div class="para">
								Edit as follows:
							</div><pre class="programlisting">
            [upgrade]
            name=rhel63
            baseurl=url-of-your-rhel6.3-repo
            enabled=1
            gpgcheck=0
            [apache CloudStack]
            name= Apache CloudStack
            baseurl= http://cloudstack.apt-get.eu/rhel/4.0/
            enabled=1
            gpgcheck=0</pre><div class="para">
								If you are using the community provided package repository, change the baseurl to http:// cloudstack.apt-get.eu/rhel/4.2/
							</div><div class="para">
								If you are using your own package repository, change this line to read as appropriate for your 4.2.0 repository.
							</div></li><li class="listitem"><div class="para">
								Now that you have the repository configured, upgrade the host operating system from RHEL 6.0 to 6.3:
							</div><pre class="programlisting"># yum upgrade</pre></li></ol></div></li><li class="listitem" id="stopping-usage-servers"><div class="para">
						Stop all Usage Servers if running. Run this on all Usage Server hosts.
					</div><pre class="programlisting"><span class="perl_Comment"># service cloud-usage stop</span></pre></li><li class="listitem"><div class="para">
						Stop the Management Servers. Run this on all Management Server hosts.
					</div><pre class="programlisting"><span class="perl_Comment"># service cloud-management stop</span></pre></li><li class="listitem"><div class="para">
						On the MySQL master, take a backup of the MySQL databases. We recommend performing this step even in test upgrades. If there is an issue, this will assist with debugging.
					</div><div class="para">
						In the following commands, it is assumed that you have set the root password on the database, which is a CloudStack recommended best practice. Substitute your own MySQL root password.
					</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">mysqldump</code> -u root -p<em class="replaceable"><code>mysql_password</code></em> cloud &gt; <code class="filename">cloud-backup.dmp</code>
                        <code class="prompt">#</code> <code class="command">mysqldump</code> -u root -p<em class="replaceable"><code>mysql_password</code></em> cloud_usage &gt; <code class="filename">cloud-usage-backup.dmp</code></pre></li><li class="listitem"><div class="para">
						Either build RPM/DEB packages as detailed in the Installation Guide, or use one of the community provided yum/apt repositories to gain access to the CloudStack binaries.
					</div></li><li class="listitem" id="upgrade-deb-packages-302"><div class="para">
						If you are using Ubuntu, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#upgrade-rpm-packages-302">8</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and APT repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="debsteps-302"><ol class="loweralpha"><li class="listitem"><div class="para">
								The first order of business will be to change the sources list for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/apt/sources.list.d/cloudstack.list</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have one line, which contains:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</pre><div class="para">
								We'll change it to point to the new package repository:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</pre><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.1 repository.
							</div></li><li class="listitem"><div class="para">
								Now update your apt package list:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get update</pre></li><li class="listitem" id="deb-master-302"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package. This will pull in any other dependencies you need.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-management</pre></li><li class="listitem" id="kvm-agent-deb-302"><div class="para">
								You will need to manually install the <code class="filename">cloudstack-agent</code> package:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-agent</pre><div class="para">
								During the installation of <code class="filename">cloudstack-agent</code>, APT will copy your <code class="filename">agent.properties</code>, <code class="filename">log4j-cloud.xml</code>, and <code class="filename">environment.properties</code> from <code class="filename">/etc/cloud/agent</code> to <code class="filename">/etc/cloudstack/agent</code>.
							</div><div class="para">
								When prompted whether you wish to keep your configuration, say Yes.
							</div></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
service cloud-agent stop
<span class="perl_BString">killall</span> jsvc
service cloudstack-agent start
</pre></li><li class="listitem"><div class="para">
								During the upgrade, <code class="filename">log4j-cloud.xml</code> was simply copied over, so the logs will continue to be added to <code class="filename">/var/log/cloud/agent/agent.log</code>. There's nothing <span class="emphasis"><em>wrong</em></span> with this, but if you prefer to be consistent, you can change this by copying over the sample configuration file:
							</div><pre class="programlisting">
<span class="perl_Reserved">cd</span> /etc/cloudstack/agent
<span class="perl_BString">mv</span> log4j-cloud.xml.dpkg-dist log4j-cloud.xml
service cloudstack-agent restart
</pre></li><li class="listitem"><div class="para">
								Once the agent is running, you can uninstall the old cloud-* packages from your system:
							</div><pre class="programlisting"><span class="perl_BString">sudo</span> dpkg --purge cloud-agent</pre></li></ol></div></li><li class="listitem" id="upgrade-rpm-packages-302"><div class="para">
						If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#correct-components-xml-302">9</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and yum repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="rpmsteps-302"><ol class="loweralpha"><li class="listitem"><div class="para">
								The first order of business will be to change the yum repository for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/yum.repos.d/cloudstack.repo</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have content similar to the following:
							</div><pre class="programlisting">
[apache-cloudstack]
<span class="perl_Others">name=</span>Apache CloudStack
<span class="perl_Others">baseurl=</span>http://cloudstack.apt-get.eu/rhel/4.0/
<span class="perl_Others">enabled=</span>1
<span class="perl_Others">gpgcheck=</span>0
</pre><div class="para">
								If you are using the community provided package repository, change the baseurl to http://cloudstack.apt-get.eu/rhel/4.2/
							</div><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.0 repository.
							</div></li><li class="listitem" id="rpm-master-302"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package by upgrading the older <code class="filename">cloud-client</code> package.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloud-client</pre></li><li class="listitem" id="kvm-agent-rpm-302"><div class="para">
								For KVM hosts, you will need to upgrade the <code class="filename">cloud-agent</code> package, similarly installing the new version as <code class="filename">cloudstack-agent</code>.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloud-agent</pre><div class="para">
								During the installation of <code class="filename">cloudstack-agent</code>, the RPM will copy your <code class="filename">agent.properties</code>, <code class="filename">log4j-cloud.xml</code>, and <code class="filename">environment.properties</code> from <code class="filename">/etc/cloud/agent</code> to <code class="filename">/etc/cloudstack/agent</code>.
							</div></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
service cloud-agent stop
<span class="perl_BString">killall</span> jsvc
service cloudstack-agent start
</pre></li></ol></div></li><li class="listitem" id="correct-components-xml-302"><div class="para">
						If you have made changes to your copy of <code class="filename">/etc/cloud/management/components.xml</code> the changes will be preserved in the upgrade. However, you need to do the following steps to place these changes in a new version of the file which is compatible with version 4.2.0.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Make a backup copy of <code class="filename">/etc/cloud/management/components.xml</code>. For example:
							</div><pre class="programlisting"># mv /etc/cloud/management/components.xml /etc/cloud/management/components.xml-backup</pre></li><li class="listitem"><div class="para">
								Copy <code class="filename">/etc/cloud/management/components.xml.rpmnew</code> to create a new <code class="filename">/etc/cloud/management/components.xml</code>:
							</div><pre class="programlisting"># cp -ap /etc/cloud/management/components.xml.rpmnew /etc/cloud/management/components.xml</pre></li><li class="listitem"><div class="para">
								Merge your changes from the backup file into the new <code class="filename">components.xml</code>.
							</div><pre class="programlisting"># vi /etc/cloudstack/management/components.xml</pre></li></ol></div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
							If you have more than one management server node, repeat the upgrade steps on each node.
						</div></div></div></li><li class="listitem"><div class="para">
						After upgrading to 4.2.1, API clients are expected to send plain text passwords for login and user creation, instead of MD5 hash. Incase, api client changes are not acceptable, following changes are to be made for backward compatibility:
					</div><div class="para">
						Modify componentContext.xml, and make PlainTextUserAuthenticator as the default authenticator (1st entry in the userAuthenticators adapter list is default)
					</div><pre class="programlisting">
<span class="perl_Comment">&lt;!-- Security adapters --&gt;</span>
<span class="perl_Keyword">&lt;bean</span><span class="perl_Others"> id=</span><span class="perl_String">"userAuthenticators"</span><span class="perl_Others"> class=</span><span class="perl_String">"com.cloud.utils.component.AdapterList"</span><span class="perl_Keyword">&gt;</span>
  <span class="perl_Keyword">&lt;property</span><span class="perl_Others"> name=</span><span class="perl_String">"Adapters"</span><span class="perl_Keyword">&gt;</span>
    <span class="perl_Keyword">&lt;list&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"PlainTextUserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"MD5UserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"LDAPUserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
    <span class="perl_Keyword">&lt;/list&gt;</span>
  <span class="perl_Keyword">&lt;/property&gt;</span>
<span class="perl_Keyword">&lt;/bean&gt;</span>
</pre><div class="para">
						PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to 4.2.1
					</div></li><li class="listitem"><div class="para">
						Start the first Management Server. Do not start any other Management Server nodes yet.
					</div><pre class="programlisting"><span class="perl_Comment"># service cloudstack-management start</span></pre><div class="para">
						Wait until the databases are upgraded. Ensure that the database upgrade is complete. After confirmation, start the other Management Servers one at a time by running the same command on each node.
					</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
							Failing to restart the Management Server indicates a problem in the upgrade. Having the Management Server restarted without any issues indicates that the upgrade is successfully completed.
						</div></div></div></li><li class="listitem"><div class="para">
						Start all Usage Servers (if they were running on your previous version). Perform this on each Usage Server host.
					</div><div class="para">
						<code class="command"># service cloudstack-usage start</code>
					</div></li><li class="listitem"><div class="para">
						Additional steps are required for each KVM host. These steps will not affect running guests in the cloud. These steps are required only for clouds using KVM as hosts and only on the KVM hosts.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Configure a yum or apt repository containing the CloudStack packages as outlined in the Installation Guide.
							</div></li><li class="listitem"><div class="para">
								Stop the running agent.
							</div><div class="para">
								<code class="command"># service cloud-agent stop</code>
							</div></li><li class="listitem"><div class="para">
								Update the agent software with one of the following command sets as appropriate for your environment.
							</div><div class="para">
								<code class="command"># yum update cloud-*</code>
							</div><div class="para">
								<code class="command"># apt-get update</code>
							</div><div class="para">
								<code class="command"># apt-get upgrade cloud-*</code>
							</div></li><li class="listitem"><div class="para">
								Edit <code class="filename">/etc/cloudstack/agent/agent.properties</code> to change the resource parameter from "com.cloud.agent.resource.computing.LibvirtComputingResource" to "com.cloud.hypervisor.kvm.resource.LibvirtComputingResource".
							</div></li><li class="listitem"><div class="para">
								Upgrade all the existing bridge names to new bridge names by running this script:
							</div><pre class="programlisting"> # cloudstack-agent-upgrade</pre></li><li class="listitem"><div class="para">
								Install a libvirt hook with the following commands:
							</div><pre class="programlisting"> # mkdir /etc/libvirt/hooks
 # cp /usr/share/cloudstack-agent/lib/libvirtqemuhook /etc/libvirt/hooks/qemu
 # chmod +x /etc/libvirt/hooks/qemu</pre></li><li class="listitem"><div class="para">
								Restart libvirtd.
							</div><pre class="programlisting"># service libvirtd restart</pre></li><li class="listitem"><div class="para">
								Start the agent.
							</div><pre class="programlisting"># service cloudstack-agent start</pre></li><li class="listitem"><div class="para">
								When the Management Server is up and running, log in to the CloudStack UI and restart the virtual router for proper functioning of all the features.
							</div></li></ol></div></li><li class="listitem"><div class="para">
						Log in to the CloudStack UI as administrator, and check the status of the hosts. All hosts should come to Up state (except those that you know to be offline). You may need to wait 20 or 30 minutes, depending on the number of hosts.
					</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
							Troubleshooting: If login fails, clear your browser cache and reload the page.
						</div></div></div><div class="para">
						Do not proceed to the next step until the hosts show in Up state.
					</div></li><li class="listitem"><div class="para">
						If you are upgrading from 3.0.x, perform the following:
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Ensure that the admin port is set to 8096 by using the "integration.api.port" global parameter.
							</div><div class="para">
								This port is used by the cloud-sysvmadm script at the end of the upgrade procedure. For information about how to set this parameter, see "Setting Global Configuration Parameters" in the Installation Guide.
							</div></li><li class="listitem"><div class="para">
								Restart the Management Server.
							</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
									If you don't want the admin port to remain open, you can set it to null after the upgrade is done and restart the management server.
								</div></div></div></li></ol></div></li><li class="listitem"><div class="para">
						Run the <code class="command">cloudstack-sysvmadm</code> script to stop, then start, all Secondary Storage VMs, Console Proxy VMs, and virtual routers. Run the script once on each management server. Substitute your own IP address of the MySQL instance, the MySQL user to connect as, and the password to use for that user. In addition to those parameters, provide the <code class="command">-c</code> and <code class="command">-r</code> arguments. For example:
					</div><div class="para">
						<code class="command"># nohup cloudstack-sysvmadm -d 192.168.1.5 -u cloud -p password -c -r &gt; sysvm.log 2&gt;&amp;1 &amp;</code>
					</div><div class="para">
						<code class="command"># tail -f sysvm.log</code>
					</div><div class="para">
						This might take up to an hour or more to run, depending on the number of accounts in the system.
					</div></li><li class="listitem"><div class="para">
						If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version supported by CloudStack 4.2.1. The supported versions are XenServer 5.6 SP2 and 6.0.2. Instructions for upgrade can be found in the CloudStack 4.2.1 Installation Guide under "Upgrading XenServer Versions."
					</div></li><li class="listitem"><div class="para">
						Now apply the XenServer hotfix XS602E003 (and any other needed hotfixes) to XenServer v6.0.2 hypervisor hosts.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Disconnect the XenServer cluster from CloudStack.
							</div><div class="para">
								In the left navigation bar of the CloudStack UI, select Infrastructure. Under Clusters, click View All. Select the XenServer cluster and click Actions - Unmanage.
							</div><div class="para">
								This may fail if there are hosts not in one of the states Up, Down, Disconnected, or Alert. You may need to fix that before unmanaging this cluster.
							</div><div class="para">
								Wait until the status of the cluster has reached Unmanaged. Use the CloudStack UI to check on the status. When the cluster is in the unmanaged state, there is no connection to the hosts in the cluster.
							</div></li><li class="listitem"><div class="para">
								To clean up the VLAN, log in to one XenServer host and run:
							</div><div class="para">
								<code class="command">/opt/xensource/bin/cloud-clean-vlan.sh</code>
							</div></li><li class="listitem"><div class="para">
								Now prepare the upgrade by running the following on one XenServer host:
							</div><div class="para">
								<code class="command">/opt/xensource/bin/cloud-prepare-upgrade.sh</code>
							</div><div class="para">
								If you see a message like "can't eject CD", log in to the VM and unmount the CD, then run this script again.
							</div></li><li class="listitem"><div class="para">
								Upload the hotfix to the XenServer hosts. Always start with the Xen pool master, then the slaves. Using your favorite file copy utility (e.g. WinSCP), copy the hotfixes to the host. Place them in a temporary folder such as /tmp.
							</div><div class="para">
								On the Xen pool master, upload the hotfix with this command:
							</div><div class="para">
								<code class="command">xe patch-upload file-name=XS602E003.xsupdate</code>
							</div><div class="para">
								Make a note of the output from this command, which is a UUID for the hotfix file. You'll need it in another step later.
							</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
									(Optional) If you are applying other hotfixes as well, you can repeat the commands in this section with the appropriate hotfix number. For example, XS602E004.xsupdate.
								</div></div></div></li><li class="listitem"><div class="para">
								Manually live migrate all VMs on this host to another host. First, get a list of the VMs on this host:
							</div><div class="para">
								<code class="command"># xe vm-list</code>
							</div><div class="para">
								Then use this command to migrate each VM. Replace the example host name and VM name with your own:
							</div><div class="para">
								<code class="command"># xe vm-migrate live=true host=<em class="replaceable"><code>host-name</code></em> vm=<em class="replaceable"><code>VM-name</code></em></code>
							</div><div class="note"><div class="admonition_header"><h2>Troubleshooting</h2></div><div class="admonition"><div class="para">
									If you see a message like "You attempted an operation on a VM which requires PV drivers to be installed but the drivers were not detected," run:
								</div><div class="para">
									<code class="command">/opt/xensource/bin/make_migratable.sh b6cf79c8-02ee-050b-922f-49583d9f1a14</code>.
								</div></div></div></li><li class="listitem"><div class="para">
								Apply the hotfix. First, get the UUID of this host:
							</div><pre class="programlisting"># xe host-list</pre><div class="para">
								Then use the following command to apply the hotfix. Replace the example host UUID with the current host ID, and replace the hotfix UUID with the output from the patch-upload command you ran on this machine earlier. You can also get the hotfix UUID by running xe patch-list.
							</div><pre class="programlisting"><code class="command">xe</code> patch-apply host-uuid=<em class="replaceable"><code>host-uuid</code></em> uuid=<em class="replaceable"><code>hotfix-uuid</code></em></pre></li><li class="listitem"><div class="para">
								Copy the following files from the CloudStack Management Server to the host.
							</div><div class="informaltable"><table border="1"><colgroup><col width="33%" align="left" class="1" /><col width="67%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
												<div class="para">
													Copy from here...
												</div>
											</th><th class="" align="left">
												<div class="para">
													...to here
												</div>
											</th></tr></thead><tbody><tr><td class="" align="left">
												<div class="para">
													/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py
												</div>
											</td><td class="" align="left">
												<div class="para">
													/opt/xensource/sm/NFSSR.py
												</div>
											</td></tr><tr><td class="" align="left">
												<div class="para">
													/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/setupxenserver.sh
												</div>
											</td><td class="" align="left">
												<div class="para">
													/opt/xensource/bin/setupxenserver.sh
												</div>
											</td></tr><tr><td class="" align="left">
												<div class="para">
													/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/make_migratable.sh
												</div>
											</td><td class="" align="left">
												<div class="para">
													/opt/xensource/bin/make_migratable.sh
												</div>
											</td></tr></tbody></table></div></li><li class="listitem"><div class="para">
								(Only for hotfixes XS602E005 and XS602E007) You need to apply a new Cloud Support Pack.
							</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
										Download the CSP software onto the XenServer host from one of the following links:
									</div><div class="para">
										For hotfix XS602E005: <a href="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz">http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz</a>
									</div><div class="para">
										For hotfix XS602E007: <a href="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz">http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz</a>
									</div></li><li class="listitem"><div class="para">
										Extract the file:
									</div><pre class="programlisting"># tar xf xenserver-cloud-supp.tgz</pre></li><li class="listitem"><div class="para">
										Run the following script:
									</div><pre class="programlisting"># xe-install-supplemental-pack xenserver-cloud-supp.iso</pre></li><li class="listitem"><div class="para">
										If the XenServer host is part of a zone that uses basic networking, disable Open vSwitch (OVS):
									</div><pre class="programlisting"># xe-switch-network-backend  bridge</pre></li></ul></div></li><li class="listitem"><div class="para">
								Reboot this XenServer host.
							</div></li><li class="listitem"><div class="para">
								Run the following:
							</div><pre class="programlisting">/opt/xensource/bin/setupxenserver.sh</pre><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
									If the message "mv: cannot stat `/etc/cron.daily/logrotate': No such file or directory" appears, you can safely ignore it.
								</div></div></div></li><li class="listitem"><div class="para">
								Run the following:
							</div><pre class="programlisting">for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ;</pre></li><li class="listitem"><div class="para">
								On each slave host in the Xen pool, repeat these steps, starting from "manually live migrate VMs."
							</div></li></ol></div></li></ol></div><div class="note"><div class="admonition_header"><h2>Troubleshooting Tip</h2></div><div class="admonition"><div class="para">
					If passwords which you know to be valid appear not to work after upgrade, or other UI issues are seen, try clearing your browser cache and reloading the UI page.
				</div></div></div></div><div class="section" id="upgrade-from-2.2.x-to-4.2.1"><div class="titlepage"><div><div><h2 class="title">4.5. Upgrade from 2.2.14 to 4.2.1</h2></div></div></div><div class="orderedlist"><ol><li class="listitem"><div class="para">
						Ensure that you query your IPaddress usage records and process them; for example, issue invoices for any usage that you have not yet billed users for.
					</div><div class="para">
						Starting in 3.0.2, the usage record format for IP addresses is the same as the rest of the usage types. Instead of a single record with the assignment and release dates, separate records are generated per aggregation period with start and end dates. After upgrading to 4.2.1, any existing IP address usage records in the old format will no longer be available.
					</div></li><li class="listitem"><div class="para">
						If you are using version 2.2.0 - 2.2.13, first upgrade to 2.2.14 by using the instructions in the <a href="http://download.cloud.com/releases/2.2.0/CloudStack2.2.14ReleaseNotes.pdf">2.2.14 Release Notes</a>.
					</div><div class="warning"><div class="admonition_header"><h2>KVM Hosts</h2></div><div class="admonition"><div class="para">
							If KVM hypervisor is used in your cloud, be sure you completed the step to insert a valid username and password into the host_details table on each KVM node as described in the 2.2.14 Release Notes. This step is critical, as the database will be encrypted after the upgrade to 4.2.1.
						</div></div></div></li><li class="listitem"><div class="para">
						While running the 2.2.14 system, log in to the UI as root administrator.
					</div></li><li class="listitem"><div class="para">
						Using the UI, add a new System VM template for each hypervisor type that is used in your cloud. In each zone, add a system VM template for each hypervisor used in that zone
					</div><div class="orderedlist"><ol><li class="listitem"><div class="para">
								In the left navigation bar, click Templates.
							</div></li><li class="listitem"><div class="para">
								In Select view, click Templates.
							</div></li><li class="listitem"><div class="para">
								Click Register template.
							</div><div class="para">
								The Register template dialog box is displayed.
							</div></li><li class="listitem"><div class="para">
								In the Register template dialog box, specify the following values depending on the hypervisor type (do not change these):
							</div><div class="informaltable"><table border="1"><colgroup><col width="33%" align="left" class="1" /><col width="67%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
												<div class="para">
													Hypervisor
												</div>
											</th><th class="" align="left">
												<div class="para">
													Description
												</div>
											</th></tr></thead><tbody><tr><td class="" align="left">
												<div class="para">
													XenServer
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													Description: systemvm-xenserver-4.2
												</div>
												 <div class="para">
													URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: XenServer
												</div>
												 <div class="para">
													Format: VHD
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													KVM
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-kvm-4.2
												</div>
												 <div class="para">
													Description: systemvm-kvm-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: KVM
												</div>
												 <div class="para">
													Format: QCOW2
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr><tr><td class="" align="left">
												<div class="para">
													VMware
												</div>
											</td><td class="" align="left">
												<div class="para">
													Name: systemvm-vmware-4.2
												</div>
												 <div class="para">
													Description: systemvm-vmware-4.2
												</div>
												 <div class="para">
													URL: http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova
												</div>
												 <div class="para">
													Zone: Choose the zone where this hypervisor is used
												</div>
												 <div class="para">
													Hypervisor: VMware
												</div>
												 <div class="para">
													Format: OVA
												</div>
												 <div class="para">
													OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release number available in the dropdown)
												</div>
												 <div class="para">
													Extractable: no
												</div>
												 <div class="para">
													Password Enabled: no
												</div>
												 <div class="para">
													Public: no
												</div>
												 <div class="para">
													Featured: no
												</div>

											</td></tr></tbody></table></div></li></ol></div></li><li class="listitem"><div class="para">
						Watch the screen to be sure that the template downloads successfully and enters the READY state. Do not proceed until this is successful
					</div></li><li class="listitem"><div class="para">
						<span class="bold bold"><strong>WARNING</strong></span>: If you use more than one type of hypervisor in your cloud, be sure you have repeated these steps to download the system VM template for each hypervisor type. Otherwise, the upgrade will fail.
					</div></li><li class="listitem"><div class="para">
						(KVM on RHEL 6.0/6.1 only) If your existing CloudStack deployment includes one or more clusters of KVM hosts running RHEL 6.0 or RHEL 6.1, perform the following:
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Ensure that you upgrade the operating system version on those hosts before upgrading CloudStack
							</div><div class="para">
								To do that, change the yum repository for each system with CloudStack packages, that implies that all the Management Servers and any hosts that have the KVM agent.
							</div></li><li class="listitem"><div class="para">
								Open <code class="filename">/etc/yum.repos.d/cloudstack.repo</code> on any systems that have CloudStack packages installed.
							</div></li><li class="listitem"><div class="para">
								Edit as follows:
							</div><pre class="programlisting">
            [upgrade]
            name=rhel63
            baseurl=url-of-your-rhel6.3-repo
            enabled=1
            gpgcheck=0
            [apache CloudStack]
            name= Apache CloudStack
            baseurl= http://cloudstack.apt-get.eu/rhel/4.2/
            enabled=1
            gpgcheck=0</pre><div class="para">
								If you are using the community provided package repository, change the baseurl to http:// cloudstack.apt-get.eu/rhel/4.2/
							</div><div class="para">
								If you are using your own package repository, change this line to read as appropriate for your 4.2.0 repository.
							</div></li><li class="listitem"><div class="para">
								Now that you have the repository configured, upgrade the host operating system from RHEL 6.0 to 6.3:
							</div><pre class="programlisting"># yum upgrade</pre></li></ol></div></li><li class="listitem"><div class="para">
						Stop all Usage Servers if running. Run this on all Usage Server hosts.
					</div><pre class="programlisting"># service cloud-usage stop</pre></li><li class="listitem"><div class="para">
						Stop the Management Servers. Run this on all Management Server hosts.
					</div><pre class="programlisting"><span class="perl_Comment"># service cloud-management stop</span></pre></li><li class="listitem"><div class="para">
						On the MySQL master, take a backup of the MySQL databases. We recommend performing this step even in test upgrades. If there is an issue, this will assist with debugging.
					</div><div class="para">
						In the following commands, it is assumed that you have set the root password on the database, which is a CloudStack recommended best practice. Substitute your own MySQL root password.
					</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">mysqldump</code> -u root -p<em class="replaceable"><code>mysql_password</code></em> cloud &gt; <code class="filename">cloud-backup.dmp</code>
                        <code class="prompt">#</code> <code class="command">mysqldump</code> -u root -p<em class="replaceable"><code>mysql_password</code></em> cloud_usage &gt; <code class="filename">cloud-usage-backup.dmp</code>
</pre></li><li class="listitem"><div class="para">
						Either build RPM/DEB packages as detailed in the Installation Guide, or use one of the community provided yum/apt repositories to gain access to the CloudStack binaries.
					</div></li><li class="listitem" id="upgrade-deb-packages-22"><div class="para">
						If you are using Ubuntu, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#upgrade-rpm-packages-22">13</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and APT repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="debsteps-22"><ol class="loweralpha"><li class="listitem"><div class="para">
								The first order of business will be to change the sources list for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/apt/sources.list.d/cloudstack.list</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have one line, which contains:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</pre><div class="para">
								We'll change it to point to the new package repository:
							</div><pre class="programlisting">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</pre><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.0 repository.
							</div></li><li class="listitem"><div class="para">
								Now update your apt package list:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get update</pre></li><li class="listitem" id="deb-master-22"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package. This will pull in any other dependencies you need.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-management</pre></li><li class="listitem" id="kvm-agent-deb-22"><div class="para">
								On KVM hosts, you will need to manually install the <code class="filename">cloudstack-agent</code> package:
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> apt-get <span class="perl_BString">install</span> cloudstack-agent</pre><div class="para">
								During the installation of <code class="filename">cloudstack-agent</code>, APT will copy your <code class="filename">agent.properties</code>, <code class="filename">log4j-cloud.xml</code>, and <code class="filename">environment.properties</code> from <code class="filename">/etc/cloud/agent</code> to <code class="filename">/etc/cloudstack/agent</code>.
							</div><div class="para">
								When prompted whether you wish to keep your configuration, say Yes.
							</div></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
service cloud-agent stop
<span class="perl_BString">killall</span> jsvc
service cloudstack-agent start
</pre></li><li class="listitem"><div class="para">
								During the upgrade, <code class="filename">log4j-cloud.xml</code> was simply copied over, so the logs will continue to be added to <code class="filename">/var/log/cloud/agent/agent.log</code>. There's nothing <span class="emphasis"><em>wrong</em></span> with this, but if you prefer to be consistent, you can change this by copying over the sample configuration file:
							</div><pre class="programlisting">
<span class="perl_Reserved">cd</span> /etc/cloudstack/agent
<span class="perl_BString">mv</span> log4j-cloud.xml.dpkg-dist log4j-cloud.xml
service cloudstack-agent restart
</pre></li><li class="listitem"><div class="para">
								Once the agent is running, you can uninstall the old cloud-* packages from your system:
							</div><pre class="programlisting"><span class="perl_BString">sudo</span> dpkg --purge cloud-agent</pre></li></ol></div></li><li class="listitem" id="upgrade-rpm-packages-22"><div class="para">
						If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If not, skip to step <a class="xref" href="#correct-components-xml-22">14</a>.
					</div><div class="note"><div class="admonition_header"><h2>Community Packages</h2></div><div class="admonition"><div class="para">
							This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and yum repository, substitute your own URL for the ones used in these examples.
						</div></div></div><div class="orderedlist" id="rpmsteps-22"><ol class="loweralpha"><li class="listitem"><div class="para">
								The first order of business will be to change the yum repository for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)
							</div><div class="para">
								Start by opening <code class="filename">/etc/yum.repos.d/cloudstack.repo</code> on any systems that have CloudStack packages installed.
							</div><div class="para">
								This file should have content similar to the following:
							</div><pre class="programlisting">
[apache-cloudstack]
<span class="perl_Others">name=</span>Apache CloudStack
<span class="perl_Others">baseurl=</span>http://cloudstack.apt-get.eu/rhel/4.0/
<span class="perl_Others">enabled=</span>1
<span class="perl_Others">gpgcheck=</span>0
</pre><div class="para">
								If you are using the community provided package repository, change the baseurl to http://cloudstack.apt-get.eu/rhel/4.2/
							</div><div class="para">
								If you're using your own package repository, change this line to read as appropriate for your 4.2.1 repository.
							</div></li><li class="listitem" id="rpm-master-22"><div class="para">
								Now that you have the repository configured, it's time to install the <code class="filename">cloudstack-management</code> package by upgrading the older <code class="filename">cloud-client</code> package.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloud-client</pre></li><li class="listitem" id="kvm-agent-rpm-22"><div class="para">
								For KVM hosts, you will need to upgrade the <code class="filename">cloud-agent</code> package, similarly installing the new version as <code class="filename">cloudstack-agent</code>.
							</div><pre class="programlisting">$ <span class="perl_BString">sudo</span> yum upgrade cloud-agent</pre><div class="para">
								During the installation of <code class="filename">cloudstack-agent</code>, the RPM will copy your <code class="filename">agent.properties</code>, <code class="filename">log4j-cloud.xml</code>, and <code class="filename">environment.properties</code> from <code class="filename">/etc/cloud/agent</code> to <code class="filename">/etc/cloudstack/agent</code>.
							</div></li><li class="listitem"><div class="para">
								Verify that the file <code class="filename">/etc/cloudstack/agent/environment.properties</code> has a line that reads:
							</div><pre class="programlisting">paths.<span class="perl_Others">script=</span>/usr/share/cloudstack-common</pre><div class="para">
								If not, add the line.
							</div></li><li class="listitem"><div class="para">
								Restart the agent:
							</div><pre class="programlisting">
service cloud-agent stop
<span class="perl_BString">killall</span> jsvc
service cloudstack-agent start
</pre></li></ol></div></li><li class="listitem" id="correct-components-xml-22"><div class="para">
						If you have made changes to your existing copy of the file components.xml in your previous-version CloudStack installation, the changes will be preserved in the upgrade. However, you need to do the following steps to place these changes in a new version of the file which is compatible with version 4.0.0-incubating.
					</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
							How will you know whether you need to do this? If the upgrade output in the previous step included a message like the following, then some custom content was found in your old components.xml, and you need to merge the two files:
						</div></div></div><pre class="programlisting">warning: /etc/cloud/management/components.xml created as /etc/cloud/management/components.xml.rpmnew</pre><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Make a backup copy of your <code class="filename">/etc/cloud/management/components.xml</code> file. For example:
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">mv</code> <code class="filename">/etc/cloud/management/components.xml</code> <code class="filename">/etc/cloud/management/components.xml-backup</code></pre></li><li class="listitem"><div class="para">
								Copy <code class="filename">/etc/cloud/management/components.xml.rpmnew</code> to create a new <code class="filename">/etc/cloud/management/components.xml</code>:
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">cp</code> -ap <code class="filename">/etc/cloud/management/components.xml.rpmnew</code> <code class="filename">/etc/cloud/management/components.xml</code></pre></li><li class="listitem"><div class="para">
								Merge your changes from the backup file into the new components.xml file.
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">vi</code> <code class="filename">/etc/cloudstack/management/components.xml</code>
</pre></li></ol></div></li><li class="listitem"><div class="para">
						After upgrading to 4.2.1, API clients are expected to send plain text passwords for login and user creation, instead of MD5 hash. If API client changes are not acceptable, following changes are to be made for backward compatibility:
					</div><div class="para">
						Modify componentContext.xml, and make PlainTextUserAuthenticator as the default authenticator (1st entry in the userAuthenticators adapter list is default)
					</div><pre class="programlisting">
<span class="perl_Comment">&lt;!-- Security adapters --&gt;</span>
<span class="perl_Keyword">&lt;bean</span><span class="perl_Others"> id=</span><span class="perl_String">"userAuthenticators"</span><span class="perl_Others"> class=</span><span class="perl_String">"com.cloud.utils.component.AdapterList"</span><span class="perl_Keyword">&gt;</span>
  <span class="perl_Keyword">&lt;property</span><span class="perl_Others"> name=</span><span class="perl_String">"Adapters"</span><span class="perl_Keyword">&gt;</span>
    <span class="perl_Keyword">&lt;list&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"PlainTextUserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"MD5UserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
      <span class="perl_Keyword">&lt;ref</span><span class="perl_Others"> bean=</span><span class="perl_String">"LDAPUserAuthenticator"</span><span class="perl_Keyword">/&gt;</span>
    <span class="perl_Keyword">&lt;/list&gt;</span>
  <span class="perl_Keyword">&lt;/property&gt;</span>
<span class="perl_Keyword">&lt;/bean&gt;</span>
</pre><div class="para">
						PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to 4.2.
					</div></li><li class="listitem"><div class="para">
						If you have made changes to your existing copy of the <code class="filename">/etc/cloud/management/db.properties</code> file in your previous-version CloudStack installation, the changes will be preserved in the upgrade. However, you need to do the following steps to place these changes in a new version of the file which is compatible with this version.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Make a backup copy of your file <code class="filename">/etc/cloud/management/db.properties</code>. For example:
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">mv</code> <code class="filename">/etc/cloud/management/db.properties</code> <code class="filename">/etc/cloud/management/db.properties-backup</code></pre></li><li class="listitem"><div class="para">
								Copy <code class="filename">/etc/cloud/management/db.properties.rpmnew</code> to create a new <code class="filename">/etc/cloud/management/db.properties</code>:
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">cp</code> -ap <code class="filename">/etc/cloud/management/db.properties.rpmnew</code> <code class="filename">etc/cloud/management/db.properties</code></pre></li><li class="listitem"><div class="para">
								Merge your changes from the backup file into the new db.properties file.
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">vi</code> <code class="filename">/etc/cloudstack/management/db.properties</code></pre></li></ol></div></li><li class="listitem"><div class="para">
						On the management server node, run the following command. It is recommended that you use the command-line flags to provide your own encryption keys. See Password and Key Encryption in the Installation Guide.
					</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">cloudstack-setup-encryption</code> -e <em class="replaceable"><code>encryption_type</code></em> -m <em class="replaceable"><code>management_server_key</code></em> -k <em class="replaceable"><code>database_key</code></em></pre><div class="para">
						When used without arguments, as in the following example, the default encryption type and keys will be used:
					</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
								(Optional) For encryption_type, use file or web to indicate the technique used to pass in the database encryption password. Default: file.
							</div></li><li class="listitem"><div class="para">
								(Optional) For management_server_key, substitute the default key that is used to encrypt confidential parameters in the properties file. Default: password. It is highly recommended that you replace this with a more secure value
							</div></li><li class="listitem"><div class="para">
								(Optional) For database_key, substitute the default key that is used to encrypt confidential parameters in the CloudStack database. Default: password. It is highly recommended that you replace this with a more secure value.
							</div></li></ul></div></li><li class="listitem"><div class="para">
						Repeat steps 10 - 14 on every management server node. If you provided your own encryption key in step 14, use the same key on all other management servers.
					</div></li><li class="listitem"><div class="para">
						Start the first Management Server. Do not start any other Management Server nodes yet.
					</div><pre class="programlisting"><span class="perl_Comment"># service cloudstack-management start</span></pre><div class="para">
						Wait until the databases are upgraded. Ensure that the database upgrade is complete. You should see a message like "Complete! Done." After confirmation, start the other Management Servers one at a time by running the same command on each node.
					</div></li><li class="listitem"><div class="para">
						Start all Usage Servers (if they were running on your previous version). Perform this on each Usage Server host.
					</div><pre class="programlisting"><span class="perl_Comment"># service cloudstack-usage start</span></pre></li><li class="listitem"><div class="para">
						(KVM only) Perform the following additional steps on each KVM host.
					</div><div class="para">
						These steps will not affect running guests in the cloud. These steps are required only for clouds using KVM as hosts and only on the KVM hosts.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Configure your CloudStack package repositories as outlined in the Installation Guide
							</div></li><li class="listitem"><div class="para">
								Stop the running agent.
							</div><pre class="programlisting"># service cloud-agent stop</pre></li><li class="listitem"><div class="para">
								Update the agent software with one of the following command sets as appropriate.
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">yum</code> update cloud-*</pre><pre class="programlisting">
 <code class="prompt">#</code> <code class="command">apt-get</code> update
 <code class="prompt">#</code> <code class="command">apt-get</code> upgrade cloud-*
</pre></li><li class="listitem"><div class="para">
								Copy the contents of the <code class="filename">agent.properties</code> file to the new <code class="filename">agent.properties</code> file by using the following command
							</div><pre class="programlisting"><code class="command">sed</code> -i 's/com.cloud.agent.resource.computing.LibvirtComputingResource/com.cloud.hypervisor.kvm.resource.LibvirtComputingResource/g' <code class="filename">/etc/cloudstack/agent/agent.properties</code></pre></li><li class="listitem"><div class="para">
								Upgrade all the existing bridge names to new bridge names by running this script:
							</div><pre class="programlisting"> # cloudstack-agent-upgrade</pre></li><li class="listitem"><div class="para">
								Install a libvirt hook with the following commands:
							</div><pre class="programlisting"> # mkdir /etc/libvirt/hooks
 # cp /usr/share/cloudstack-agent/lib/libvirtqemuhook /etc/libvirt/hooks/qemu
 # chmod +x /etc/libvirt/hooks/qemu</pre></li><li class="listitem"><div class="para">
								Restart libvirtd.
							</div><pre class="programlisting"># service libvirtd restart</pre></li><li class="listitem"><div class="para">
								Start the agent.
							</div><pre class="programlisting"># service cloudstack-agent start</pre></li><li class="listitem"><div class="para">
								When the Management Server is up and running, log in to the CloudStack UI and restart the virtual router for proper functioning of all the features.
							</div></li></ol></div></li><li class="listitem"><div class="para">
						Log in to the CloudStack UI as admin, and check the status of the hosts. All hosts should come to Up state (except those that you know to be offline). You may need to wait 20 or 30 minutes, depending on the number of hosts.
					</div><div class="para">
						Do not proceed to the next step until the hosts show in the Up state. If the hosts do not come to the Up state, contact support.
					</div></li><li class="listitem"><div class="para">
						Run the following script to stop, then start, all Secondary Storage VMs, Console Proxy VMs, and virtual routers.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Run the command once on one management server. Substitute your own IP address of the MySQL instance, the MySQL user to connect as, and the password to use for that user. In addition to those parameters, provide the "-c" and "-r" arguments. For example:
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">nohup cloudstack-sysvmadm</code> -d <em class="replaceable"><code>192.168.1.5</code></em> -u cloud -p <em class="replaceable"><code>password</code></em> -c -r &gt; sysvm.log 2&gt;&amp;1 &amp;
<code class="prompt">#</code> <code class="command">tail</code> -f <code class="filename">sysvm.log</code></pre><div class="para">
								This might take up to an hour or more to run, depending on the number of accounts in the system.
							</div></li><li class="listitem"><div class="para">
								After the script terminates, check the log to verify correct execution:
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">tail</code> -f <code class="filename">sysvm.log</code></pre><div class="para">
								The content should be like the following:
							</div><pre class="programlisting">
                                Stopping and starting 1 secondary storage vm(s)...
                                Done stopping and starting secondary storage vm(s)
                                Stopping and starting 1 console proxy vm(s)...
                                Done stopping and starting console proxy vm(s).
                                Stopping and starting 4 running routing vm(s)...
                                Done restarting router(s).
</pre></li></ol></div></li><li class="listitem"><div class="para">
						If you would like additional confirmation that the new system VM templates were correctly applied when these system VMs were rebooted, SSH into the System VM and check the version.
					</div><div class="para">
						Use one of the following techniques, depending on the hypervisor.
					</div><div class="formalpara"><h5 class="formalpara" id="idm39009456">XenServer or KVM:</h5>
							SSH in by using the link local IP address of the system VM. For example, in the command below, substitute your own path to the private key used to log in to the system VM and your own link local IP.
						</div><div class="para">
						Run the following commands on the XenServer or KVM host on which the system VM is present:
					</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">ssh</code> -i <em class="replaceable"><code>private-key-path</code></em> <em class="replaceable"><code>link-local-ip</code></em> -p 3922
                        # cat /etc/cloudstack-release</pre><div class="para">
						The output should be like the following:
					</div><pre class="programlisting">Cloudstack Release 4.0.0-incubating Mon Oct 9 15:10:04 PST 2012</pre><div class="formalpara"><h5 class="formalpara" id="idp6953328">ESXi</h5>
							SSH in using the private IP address of the system VM. For example, in the command below, substitute your own path to the private key used to log in to the system VM and your own private IP.
						</div><div class="para">
						Run the following commands on the Management Server:
					</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">ssh</code> -i <em class="replaceable"><code>private-key-path</code></em> <em class="replaceable"><code>private-ip</code></em> -p 3922
                        <code class="prompt">#</code> <code class="command">cat</code> <code class="filename">/etc/cloudstack-release</code>
</pre><div class="para">
						The output should be like the following:
					</div><pre class="programlisting">Cloudstack Release 4.0.0-incubating Mon Oct 9 15:10:04 PST 2012</pre></li><li class="listitem"><div class="para">
						If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version supported by CloudStack 4.0.0-incubating. The supported versions are XenServer 5.6 SP2 and 6.0.2. Instructions for upgrade can be found in the CloudStack 4.0.0-incubating Installation Guide.
					</div></li><li class="listitem"><div class="para">
						Apply the XenServer hotfix XS602E003 (and any other needed hotfixes) to XenServer v6.0.2 hypervisor hosts.
					</div><div class="orderedlist"><ol class="loweralpha"><li class="listitem"><div class="para">
								Disconnect the XenServer cluster from CloudStack.
							</div><div class="para">
								In the left navigation bar of the CloudStack UI, select Infrastructure. Under Clusters, click View All. Select the XenServer cluster and click Actions - Unmanage.
							</div><div class="para">
								This may fail if there are hosts not in one of the states Up, Down, Disconnected, or Alert. You may need to fix that before unmanaging this cluster.
							</div><div class="para">
								Wait until the status of the cluster has reached Unmanaged. Use the CloudStack UI to check on the status. When the cluster is in the unmanaged state, there is no connection to the hosts in the cluster.
							</div></li><li class="listitem"><div class="para">
								To clean up the VLAN, log in to one XenServer host and run:
							</div><pre class="programlisting">/opt/xensource/bin/cloud-clean-vlan.sh</pre></li><li class="listitem"><div class="para">
								Prepare the upgrade by running the following on one XenServer host:
							</div><pre class="programlisting">/opt/xensource/bin/cloud-prepare-upgrade.sh</pre><div class="para">
								If you see a message like "can't eject CD", log in to the VM and umount the CD, then run this script again.
							</div></li><li class="listitem"><div class="para">
								Upload the hotfix to the XenServer hosts. Always start with the Xen pool master, then the slaves. Using your favorite file copy utility (e.g. WinSCP), copy the hotfixes to the host. Place them in a temporary folder such as /root or /tmp.
							</div><div class="para">
								On the Xen pool master, upload the hotfix with this command:
							</div><pre class="programlisting">xe patch-upload file-name=XS602E003.xsupdate</pre><div class="para">
								Make a note of the output from this command, which is a UUID for the hotfix file. You'll need it in another step later.
							</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
									(Optional) If you are applying other hotfixes as well, you can repeat the commands in this section with the appropriate hotfix number. For example, XS602E004.xsupdate.
								</div></div></div></li><li class="listitem"><div class="para">
								Manually live migrate all VMs on this host to another host. First, get a list of the VMs on this host:
							</div><pre class="programlisting"># xe vm-list</pre><div class="para">
								Then use this command to migrate each VM. Replace the example host name and VM name with your own:
							</div><pre class="programlisting"><code class="prompt">#</code> <code class="command">xe</code> vm-migrate live=true host=<em class="replaceable"><code>host-name</code></em> vm=<em class="replaceable"><code>VM-name</code></em></pre><div class="note"><div class="admonition_header"><h2>Troubleshooting</h2></div><div class="admonition"><div class="para">
									If you see a message like "You attempted an operation on a VM which requires PV drivers to be installed but the drivers were not detected," run:
								</div><div class="para">
									<code class="command">/opt/xensource/bin/make_migratable.sh b6cf79c8-02ee-050b-922f-49583d9f1a14</code>.
								</div></div></div></li><li class="listitem"><div class="para">
								Apply the hotfix. First, get the UUID of this host:
							</div><div class="para">
								<code class="command"># xe host-list</code>
							</div><div class="para">
								Then use the following command to apply the hotfix. Replace the example host UUID with the current host ID, and replace the hotfix UUID with the output from the patch-upload command you ran on this machine earlier. You can also get the hotfix UUID by running xe patch-list.
							</div><div class="para">
								<code class="command">xe patch-apply host-uuid=<em class="replaceable"><code>host-uuid</code></em> uuid=<em class="replaceable"><code>hotfix-uuid</code></em></code>
							</div></li><li class="listitem"><div class="para">
								Copy the following files from the CloudStack Management Server to the host.
							</div><div class="informaltable"><table border="1"><colgroup><col width="33%" align="left" class="1" /><col width="67%" align="left" class="2" /></colgroup><thead><tr><th class="" align="left">
												<div class="para">
													Copy from here...
												</div>
											</th><th class="" align="left">
												<div class="para">
													...to here
												</div>
											</th></tr></thead><tbody><tr><td class="" align="left">
												<div class="para">
													<code class="filename">/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py</code>
												</div>
											</td><td class="" align="left">
												<div class="para">
													<code class="filename">/opt/xensource/sm/NFSSR.py</code>
												</div>
											</td></tr><tr><td class="" align="left">
												<div class="para">
													<code class="filename">/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/setupxenserver.sh</code>
												</div>
											</td><td class="" align="left">
												<div class="para">
													<code class="filename">/opt/xensource/bin/setupxenserver.sh</code>
												</div>
											</td></tr><tr><td class="" align="left">
												<div class="para">
													<code class="filename">/usr/lib64/cloudstack-common/scripts/vm/hypervisor/xenserver/make_migratable.sh</code>
												</div>
											</td><td class="" align="left">
												<div class="para">
													<code class="filename">/opt/xensource/bin/make_migratable.sh</code>
												</div>
											</td></tr></tbody></table></div></li><li class="listitem"><div class="para">
								(Only for hotfixes XS602E005 and XS602E007) You need to apply a new Cloud Support Pack.
							</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
										Download the CSP software onto the XenServer host from one of the following links:
									</div><div class="para">
										For hotfix XS602E005: <a href="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz">http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz</a>
									</div><div class="para">
										For hotfix XS602E007: <a href="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz">http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz</a>
									</div></li><li class="listitem"><div class="para">
										Extract the file:
									</div><div class="para">
										<code class="command"># tar xf xenserver-cloud-supp.tgz</code>
									</div></li><li class="listitem"><div class="para">
										Run the following script:
									</div><div class="para">
										<code class="command"># xe-install-supplemental-pack xenserver-cloud-supp.iso</code>
									</div></li><li class="listitem"><div class="para">
										If the XenServer host is part of a zone that uses basic networking, disable Open vSwitch (OVS):
									</div><div class="para">
										<code class="command"># xe-switch-network-backend bridge</code>
									</div></li></ul></div></li><li class="listitem"><div class="para">
								Reboot this XenServer host.
							</div></li><li class="listitem"><div class="para">
								Run the following:
							</div><div class="para">
								<code class="command">/opt/xensource/bin/setupxenserver.sh</code>
							</div><div class="note"><div class="admonition_header"><h2>Note</h2></div><div class="admonition"><div class="para">
									If the message "mv: cannot stat `/etc/cron.daily/logrotate': No such file or directory" appears, you can safely ignore it.
								</div></div></div></li><li class="listitem"><div class="para">
								Run the following:
							</div><div class="para">
								<code class="command">for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ; </code>
							</div></li><li class="listitem"><div class="para">
								On each slave host in the Xen pool, repeat these steps, starting from "manually live migrate VMs."
							</div></li></ol></div></li></ol></div></div></div><div class="chapter" id="api-changes"><div class="titlepage"><div><div><h1 class="title">Chapter 5. API Changes from 4.2 to 4.2.1</h1></div></div></div><div class="para">
			Due to the <a class="xref" href="#ucs-enhancements">Section 3.1.3, “Cisco UCS Enhancements”</a>, the following API changes have been introduced:
		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
					listUcsProfiles is deprecated.
				</div></li><li class="listitem"><div class="para">
					listUcsTemplates is added. This is to replace listUcsProfiles. Retrieve pre-created UCS templates from UCS Manager. Typically used when preparing to create a profile from the template and associate the profile to a selected blade.
				</div></li><li class="listitem"><div class="para">
					instantiateUcsTemplateAndAssocaciateToBlade is added. Associates a profile to a blade, using a given profile template. First call listUcsTemplates to get the template and listUcsBlade to get the blade.
				</div></li><li class="listitem"><div class="para">
					refreshUcsBlades is added. Syncs CloudStack with any changes that have been made on the UCS Manager side.
				</div></li></ul></div></div></div></body></html>
