Revision d3b1075f README
b/README | ||
---|---|---|
5 | 5 |
problems on Ganeti 2.0 clusters. |
6 | 6 |
|
7 | 7 |
Note that these tools are most useful for bigger cluster sizes |
8 |
(e.g. more than five or ten machines); at lower sizes, the |
|
9 |
computations they do can also be done manually.
|
|
8 |
(e.g. more than five or ten machines); at lower sizes, the computations
|
|
9 |
they do can also be done manually. |
|
10 | 10 |
|
11 |
Most of the tools revolve around the concept of keeping the cluster |
|
12 |
N+1 compliant: this means that in case of failure of any node, the
|
|
13 |
instances affected can be failed over (via ``gnt-node failover`` or
|
|
14 |
``gnt-instance failover``) to their secondary node, and there is
|
|
15 |
enough memory reserved for this operation without needing to shutdown
|
|
16 |
other instances or rebalance the cluster.
|
|
11 |
Most of the tools revolve around the concept of keeping the cluster N+1
|
|
12 |
compliant: this means that in case of failure of any node, the instances
|
|
13 |
affected can be failed over (via ``gnt-node failover`` or ``gnt-instance
|
|
14 |
failover``) to their secondary node, and there is enough memory reserved
|
|
15 |
for this operation without needing to shutdown other instances or
|
|
16 |
rebalance the cluster. |
|
17 | 17 |
|
18 | 18 |
**Quick start** (see the installation section for more details): |
19 | 19 |
|
... | ... | |
41 | 41 |
~~~~~~~~~~~~~~~~~ |
42 | 42 |
|
43 | 43 |
The ``hail`` iallocator plugin can be used for allocations of mirrored |
44 |
and non-mirrored instances and for relocations of mirrored |
|
45 |
instances. It needs to be installed in Ganeti's iallocator search
|
|
46 |
path—usually ``/usr/lib/ganeti/iallocators`` or
|
|
47 |
``/usr/local/lib/ganeti/iallocators``, and after that it can be used |
|
48 |
via ganeti's ``--iallocator`` option (in various gnt-node/gnt-instance
|
|
44 |
and non-mirrored instances and for relocations of mirrored instances. It
|
|
45 |
needs to be installed in Ganeti's iallocator search path—usually
|
|
46 |
``/usr/lib/ganeti/iallocators`` or |
|
47 |
``/usr/local/lib/ganeti/iallocators``, and after that it can be used via
|
|
48 |
ganeti's ``--iallocator`` option (in various gnt-node/gnt-instance |
|
49 | 49 |
commands). See the man page hail(1) for more details. |
50 | 50 |
|
51 | 51 |
Cluster capacity estimator |
... | ... | |
61 | 61 |
----------------------- |
62 | 62 |
|
63 | 63 |
The ``hbal`` and ``hspace`` programs can either get their input from |
64 |
text files, locally from the master daemon (when run on the master |
|
65 |
node of a cluster), or remote from a cluster via RAPI. The "-L" |
|
66 |
argument enables local collection (with an optional path to the unix |
|
67 |
socket). For online collection via RAPI, the "-m" argument should |
|
68 |
specify the cluster or master node name. Only ``hbal`` and ``hspace`` |
|
69 |
use these arguments, ``hail`` uses the standard iallocator API and |
|
70 |
thus doesn't need any special setup (just needs to be installed in the |
|
71 |
right directory). |
|
64 |
text files, locally from the master daemon (when run on the master node |
|
65 |
of a cluster), or remote from a cluster via RAPI. The "-L" argument |
|
66 |
enables local collection (with an optional path to the unix socket). For |
|
67 |
online collection via RAPI, the "-m" argument should specify the cluster |
|
68 |
or master node name. Only ``hbal`` and ``hspace`` use these arguments, |
|
69 |
``hail`` uses the standard iallocator API and thus doesn't need any |
|
70 |
special setup (just needs to be installed in the right directory). |
|
72 | 71 |
|
73 | 72 |
For generating the text files, a separate tool (``hscan``) is provided |
74 |
to automate their gathering if RAPI is available, which is better |
|
75 |
since it can extract more precise information. In case RAPI is not
|
|
76 |
usable for whatever reason, the following two commands should be run::
|
|
73 |
to automate their gathering if RAPI is available, which is better since
|
|
74 |
it can extract more precise information. In case RAPI is not usable for
|
|
75 |
whatever reason, the following two commands should be run:: |
|
77 | 76 |
|
78 | 77 |
gnt-node list -oname,mtotal,mnode,mfree,dtotal,dfree,ctotal,offline \ |
79 | 78 |
--separator '|' --no-headers > nodes |
... | ... | |
97 | 96 |
- curl (http://hackage.haskell.org/package/curl) |
98 | 97 |
- network (http://hackage.haskell.org/package/network) |
99 | 98 |
|
100 |
Once these are installed, just typing *make* in the top-level |
|
101 |
directory should be enough.
|
|
99 |
Once these are installed, just typing *make* in the top-level directory
|
|
100 |
should be enough. |
|
102 | 101 |
|
103 |
Only the ``hail`` program needs to be installed in a specific place, |
|
104 |
the other tools are not location-dependent.
|
|
102 |
Only the ``hail`` program needs to be installed in a specific place, the
|
|
103 |
other tools are not location-dependent. |
|
105 | 104 |
|
106 | 105 |
For running the (admittedly small) unittest suite (via *make check*), |
107 | 106 |
the QuickCheck version 1 library is needed. |
... | ... | |
109 | 108 |
Internal (implementation) documentation is available in the ``apidoc`` |
110 | 109 |
directory. |
111 | 110 |
|
111 |
.. vim: set textwidth=72 : |
|
112 | 112 |
.. Local Variables: |
113 | 113 |
.. mode: rst |
114 |
.. fill-column: 72 |
|
114 | 115 |
.. End: |
Also available in: Unified diff