/usr/share/doc/ganeti/html/design-plain-redundancy.html is in ganeti-doc 2.16.0~rc2-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Redundancy for the plain disk template — Ganeti 2.16.0~rc2 documentation</title>
<link rel="stylesheet" href="_static/style.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '2.16.0~rc2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Query version 2 design" href="design-query2.html" />
<link rel="prev" title="Performance tests for QA" href="design-performance-tests.html" />
</head>
<body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="design-query2.html" title="Query version 2 design"
accesskey="N">next</a></li>
<li class="right" >
<a href="design-performance-tests.html" title="Performance tests for QA"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Ganeti 2.16.0~rc2 documentation</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="redundancy-for-the-plain-disk-template">
<h1><a class="toc-backref" href="#id1">Redundancy for the plain disk template</a><a class="headerlink" href="#redundancy-for-the-plain-disk-template" title="Permalink to this headline">¶</a></h1>
<div class="contents topic" id="contents">
<p class="topic-title first">Contents</p>
<ul class="simple">
<li><a class="reference internal" href="#redundancy-for-the-plain-disk-template" id="id1">Redundancy for the plain disk template</a><ul>
<li><a class="reference internal" href="#current-state-and-shortcomings" id="id2">Current state and shortcomings</a></li>
<li><a class="reference internal" href="#proposed-changes" id="id3">Proposed changes</a><ul>
<li><a class="reference internal" href="#definition-of-n-1-redundancy-in-the-presence-of-shared-and-plain-storage" id="id4">Definition of N+1 redundancy in the presence of shared and plain storage</a></li>
<li><a class="reference internal" href="#modifications-to-existing-tools" id="id5">Modifications to existing tools</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<p>This document describes how N+1 redundancy is achieved
for instanes using the plain disk template.</p>
<div class="section" id="current-state-and-shortcomings">
<h2><a class="toc-backref" href="#id2">Current state and shortcomings</a><a class="headerlink" href="#current-state-and-shortcomings" title="Permalink to this headline">¶</a></h2>
<p>Ganeti has long considered N+1 redundancy for DRBD, making sure that
on the secondary nodes enough memory is reserved to host the instances,
should one node fail. Recently, <code class="docutils literal"><span class="pre">htools</span></code> have been extended to
also take <a class="reference internal" href="design-shared-storage-redundancy.html"><span class="doc">N+1 redundancy for shared storage</span></a> into account.</p>
<p>For plain instances, there is no direct notion of redundancy: if the
node the instance is running on dies, the instance is lost. However,
if the instance can be reinstalled (e.g, because it is providing a
stateless service), it does make sense to ask if the remaining nodes
have enough free capacity for the instances to be recreated. This
form of capacity planning is currently not addressed by current
Ganeti.</p>
</div>
<div class="section" id="proposed-changes">
<h2><a class="toc-backref" href="#id3">Proposed changes</a><a class="headerlink" href="#proposed-changes" title="Permalink to this headline">¶</a></h2>
<p>The basic considerations follow those of <a class="reference internal" href="design-shared-storage-redundancy.html"><span class="doc">N+1 redundancy for shared storage</span></a>.
Also, the changes to the tools follow the same pattern.</p>
<div class="section" id="definition-of-n-1-redundancy-in-the-presence-of-shared-and-plain-storage">
<h3><a class="toc-backref" href="#id4">Definition of N+1 redundancy in the presence of shared and plain storage</a><a class="headerlink" href="#definition-of-n-1-redundancy-in-the-presence-of-shared-and-plain-storage" title="Permalink to this headline">¶</a></h3>
<p>A cluster is considered N+1 redundant, if, for every node, the following
steps can be carried out. First all DRBD instances are migrated out. Then,
all shared-storage instances of that node are relocated to another node in
the same node group. Finally, all plain instances of that node are reinstalled
on a different node in the same node group; in the search for a new nodes for
the plain instances, they will be recreated in order of decreasing memory
size.</p>
<p>Note that the first two setps are those in the definition of N+1 redundancy
for shared storage. In particular, this notion of redundancy strictly extends
the one for shared storage. Again, checking this notion of redundancy is
computationally expensive and the non-DRBD part is mainly a capacity property
in the sense that we expect the majority of instance moves that are fine
from a DRBD point of view will not lead from a redundant to a non-redundant
situation.</p>
</div>
<div class="section" id="modifications-to-existing-tools">
<h3><a class="toc-backref" href="#id5">Modifications to existing tools</a><a class="headerlink" href="#modifications-to-existing-tools" title="Permalink to this headline">¶</a></h3>
<p>The changes to the exisiting tools are literally the same as
for <a class="reference internal" href="design-shared-storage-redundancy.html"><span class="doc">N+1 redundancy for shared storage</span></a> with the above definition of
N+1 redundancy substituted in for that of redundancy for shared storage.
In particular, <code class="docutils literal"><span class="pre">gnt-cluster</span> <span class="pre">verify</span></code> will not be changed and <code class="docutils literal"><span class="pre">hbal</span></code>
will use N+1 redundancy as a final filter step to disallow moves
that lead from a redundant to a non-redundant situation.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Redundancy for the plain disk template</a><ul>
<li><a class="reference internal" href="#current-state-and-shortcomings">Current state and shortcomings</a></li>
<li><a class="reference internal" href="#proposed-changes">Proposed changes</a><ul>
<li><a class="reference internal" href="#definition-of-n-1-redundancy-in-the-presence-of-shared-and-plain-storage">Definition of N+1 redundancy in the presence of shared and plain storage</a></li>
<li><a class="reference internal" href="#modifications-to-existing-tools">Modifications to existing tools</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="design-performance-tests.html"
title="previous chapter">Performance tests for QA</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="design-query2.html"
title="next chapter">Query version 2 design</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/design-plain-redundancy.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<div><input type="text" name="q" /></div>
<div><input type="submit" value="Go" /></div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="design-query2.html" title="Query version 2 design"
>next</a></li>
<li class="right" >
<a href="design-performance-tests.html" title="Performance tests for QA"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Ganeti 2.16.0~rc2 documentation</a> »</li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 2018, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Google Inc..
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.7.
</div>
</body>
</html>
|