<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!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>5.4.2. Secondary Storage</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-qig-4.1.1-en-US-0-0" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
              addID('Apache_CloudStack');
              
	      addID('Apache_CloudStack.4.1.1');
              
              addID('Apache_CloudStack.4.1.1.books');
	      addID('Apache_CloudStack.4.1.1.qig');
              </script><link rel="home" href="index.html" title="Quick Install Guide" /><link rel="up" href="Runbook-config-cluster.html" title="5.4. Cluster" /><link rel="prev" href="Runbook-config-cluster.html" title="5.4. Cluster" /><link rel="next" href="appe-qig-Revision_History.html" title="Appendix A. Revision History" /></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><ul class="docnav"><li class="previous"><a accesskey="p" href="Runbook-config-cluster.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="appe-qig-Revision_History.html"><strong>Next</strong></a></li></ul><div class="section" id="Runbook-config-cluster-secstorage"><div class="titlepage"><div><div><h3 class="title">5.4.2. Secondary Storage</h3></div></div></div><div class="para">
				If this is a new zone, you'll be prompted for secondary storage information - populate it as follows: 
				<div class="orderedlist"><ol><li class="listitem"><div class="para">
							NFS server - We'll use the IP address <em class="replaceable"><code>172.16.10.</code></em>2
						</div></li><li class="listitem"><div class="para">
							Path - We'll use /secondary
						</div></li></ol></div>

			</div><div class="para">
				Now, click Launch and your cloud should begin setup - it may take several minutes depending on your internet connection speed for setup to finalize.
			</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="Runbook-config-cluster.html"><strong>Prev</strong>5.4. Cluster</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="appe-qig-Revision_History.html"><strong>Next</strong>Appendix A. Revision History</a></li></ul></body></html>
