Revision c2e818b6

/dev/null
1
  <refsect1>
2
    <title>REPORTING BUGS</title>
3
    <para>
4
      Report bugs to <ulink
5
      url="http://code.google.com/p/ganeti/"></ulink> or contact the
6
      developers using the Ganeti mailing list
7
      &lt;ganeti@googlegroups.com&gt;.
8
    </para>
9
  </refsect1>
10

  
11
  <refsect1>
12
    <title>SEE ALSO</title>
13

  
14
    <para>
15
      Ganeti overview and specifications:
16
      <citerefentry>
17
        <refentrytitle>ganeti</refentrytitle>
18
        <manvolnum>7</manvolnum>
19
      </citerefentry> (general overview),
20
      <citerefentry>
21
        <refentrytitle>ganeti-os-interface</refentrytitle>
22
        <manvolnum>7</manvolnum>
23
      </citerefentry> (guest OS definitions).
24

  
25
    </para>
26
    <para>Ganeti commands:
27
      <citerefentry>
28
        <refentrytitle>gnt-cluster</refentrytitle>
29
        <manvolnum>8</manvolnum>
30
      </citerefentry> (cluster-wide commands),
31
      <citerefentry>
32
        <refentrytitle>gnt-job</refentrytitle>
33
        <manvolnum>8</manvolnum>
34
      </citerefentry> (job-related commands),
35
      <citerefentry>
36
        <refentrytitle>gnt-node</refentrytitle>
37
        <manvolnum>8</manvolnum>
38
      </citerefentry> (node-related commands),
39
      <citerefentry>
40
        <refentrytitle>gnt-instance</refentrytitle>
41
        <manvolnum>8</manvolnum>
42
      </citerefentry> (instance commands),
43
      <citerefentry>
44
        <refentrytitle>gnt-os</refentrytitle>
45
        <manvolnum>8</manvolnum>
46
      </citerefentry> (guest OS commands),
47
      <citerefentry>
48
        <refentrytitle>gnt-backup</refentrytitle>
49
        <manvolnum>8</manvolnum>
50
      </citerefentry> (instance import/export commands),
51
      <citerefentry>
52
        <refentrytitle>gnt-debug</refentrytitle>
53
        <manvolnum>8</manvolnum>
54
      </citerefentry> (debug commands).
55
    </para>
56

  
57
    <para>Ganeti daemons:
58
      <citerefentry>
59
        <refentrytitle>ganeti-watcher</refentrytitle>
60
        <manvolnum>8</manvolnum>
61
      </citerefentry> (automatic instance restarter),
62
      <citerefentry>
63
        <refentrytitle>ganeti-cleaner</refentrytitle>
64
        <manvolnum>8</manvolnum>
65
      </citerefentry> (job queue cleaner),
66
      <citerefentry>
67
        <refentrytitle>ganeti-noded</refentrytitle>
68
        <manvolnum>8</manvolnum>
69
      </citerefentry> (node daemon),
70
      <citerefentry>
71
        <refentrytitle>ganeti-masterd</refentrytitle>
72
        <manvolnum>8</manvolnum>
73
      </citerefentry> (master daemon),
74
      <citerefentry>
75
        <refentrytitle>ganeti-rapi</refentrytitle>
76
        <manvolnum>8</manvolnum>
77
      </citerefentry> (remote API daemon).
78
    </para>
79

  
80
  </refsect1>
81

  
82
  <refsect1>
83
    <title>COPYRIGHT</title>
84

  
85
    <para>
86
      Copyright (C) 2006, 2007, 2008, 2009, 2010 Google Inc. Permission is
87
      granted to copy, distribute and/or modify under the terms of the
88
      &gnu; General Public License as published by the Free Software
89
      Foundation; either version 2 of the License, or (at your option)
90
      any later version.
91
    </para>
92

  
93
    <para>
94
      On Debian systems, the complete text of the GNU General Public
95
      License can be found in /usr/share/common-licenses/GPL.
96
    </para>
97

  
98
  </refsect1>
/dev/null
1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

  
3
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4
  <!-- Please adjust the date whenever revising the manpage. -->
5
  <!ENTITY dhdate      "<date>June 08, 2010</date>">
6
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7
       allowed: see man(7), man(1). -->
8
  <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
9
  <!ENTITY dhucpackage "<refentrytitle>ganeti-cleaner</refentrytitle>">
10
  <!ENTITY dhpackage   "ganeti-cleaner">
11

  
12
  <!ENTITY debian      "<productname>Debian</productname>">
13
  <!ENTITY gnu         "<acronym>GNU</acronym>">
14
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15
  <!ENTITY footer SYSTEM "footer.sgml">
16
]>
17

  
18
<refentry>
19
  <refentryinfo>
20
    <copyright>
21
      <year>2009</year>
22
      <year>2010</year>
23
      <holder>Google Inc.</holder>
24
    </copyright>
25
    &dhdate;
26
  </refentryinfo>
27
  <refmeta>
28
    &dhucpackage;
29

  
30
    &dhsection;
31
    <refmiscinfo>Ganeti 2.2</refmiscinfo>
32
  </refmeta>
33
  <refnamediv>
34
    <refname>&dhpackage;</refname>
35

  
36
    <refpurpose>Ganeti job queue cleaner</refpurpose>
37
  </refnamediv>
38
  <refsynopsisdiv>
39
    <cmdsynopsis>
40
      <command>&dhpackage;</command>
41

  
42
    </cmdsynopsis>
43
  </refsynopsisdiv>
44
  <refsect1>
45
    <title>DESCRIPTION</title>
46

  
47
    <para>
48
      The <command>&dhpackage;</command> is a periodically run script to clean
49
      old job files from the job queue archive and to remove expired X509
50
      certificates and keys.
51
    </para>
52

  
53
    <para>
54
      <command>&dhpackage;</command> automatically removes all files older than
55
      21 days from
56
      <filename>@LOCALSTATEDIR@/lib/ganeti/queue/archive</filename> and all
57
      expired certificates and keys from
58
      <filename>@LOCALSTATEDIR@/run/ganeti/crypto</filename>
59
    </para>
60

  
61
  </refsect1>
62

  
63
  &footer;
64

  
65
</refentry>
66

  
67
<!-- Keep this comment at the end of the file
68
Local variables:
69
mode: sgml
70
sgml-omittag:t
71
sgml-shorttag:t
72
sgml-minimize-attributes:nil
73
sgml-always-quote-attributes:t
74
sgml-indent-step:2
75
sgml-indent-data:t
76
sgml-parent-document:nil
77
sgml-default-dtd-file:nil
78
sgml-exposed-tags:nil
79
sgml-local-catalogs:nil
80
sgml-local-ecat-files:nil
81
End:
82
-->
/dev/null
1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

  
3
  <!-- Please adjust the date whenever revising the manpage. -->
4
  <!ENTITY dhdate      "<date>June 08, 2010</date>">
5
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
6
       allowed: see man(7), man(1). -->
7
  <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
8
  <!ENTITY dhucpackage "<refentrytitle>ganeti-confd</refentrytitle>">
9
  <!ENTITY dhpackage   "ganeti-confd">
10

  
11
  <!ENTITY debian      "<productname>Debian</productname>">
12
  <!ENTITY gnu         "<acronym>GNU</acronym>">
13
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
14
  <!ENTITY footer SYSTEM "footer.sgml">
15
]>
16

  
17
<refentry>
18
  <refentryinfo>
19
    <copyright>
20
      <year>2009</year>
21
      <holder>Google Inc.</holder>
22
    </copyright>
23
    &dhdate;
24
  </refentryinfo>
25
  <refmeta>
26
    &dhucpackage;
27

  
28
    &dhsection;
29
    <refmiscinfo>Ganeti 2.2</refmiscinfo>
30
  </refmeta>
31
  <refnamediv>
32
    <refname>&dhpackage;</refname>
33

  
34
    <refpurpose>Ganeti conf daemon</refpurpose>
35
  </refnamediv>
36
  <refsynopsisdiv>
37
    <cmdsynopsis>
38
      <command>&dhpackage; </command>
39
      <arg>-f</arg>
40
      <arg>-d</arg>
41

  
42
    </cmdsynopsis>
43
  </refsynopsisdiv>
44
  <refsect1>
45
    <title>DESCRIPTION</title>
46

  
47
    <para>
48
      <command>&dhpackage;</command> is a daemon used to answer queries related
49
      to the configuration of a Ganeti cluster.
50
    </para>
51

  
52
    <para>
53
      For testing purposes, you can give the <option>-f</option>
54
      option and the program won't detach from the running terminal.
55
    </para>
56

  
57
    <para>
58
      Debug-level message can be activated by giving the
59
      <option>-d</option> option.
60
    </para>
61
    <refsect2>
62
      <title>ROLE</title>
63
      <para>
64
        The role of the conf daemon is to make sure we have a highly available
65
        and very fast way to query cluster configuration values. This daemon is
66
        automatically active on all master candidates, and so has no single
67
        point of failure. It communicates via UDP so each query can easily be
68
        sent to multiple servers, and it answers queries from a cached copy of
69
        the config it keeps in memory, so no disk access is required to get an
70
        answer.
71
      </para>
72

  
73
      <para>
74
        The config is reloaded from disk automatically when it changes, with a
75
        rate limit of once per second.
76
      </para>
77

  
78
      <para>
79
        If the conf daemon is stopped on all nodes, its clients won't be able
80
        to get query answers.
81
      </para>
82
    </refsect2>
83

  
84
    <refsect2>
85
      <title>COMMUNICATION PROTOCOL</title>
86
      <para>
87
        The confd protocol is an HMAC authenticated json-encoded custom format,
88
        over UDP. A client library is provided to make it easy to write
89
        software to query confd. More information can be found in the Ganeti
90
        2.1 design doc, and an example usage can be seen in the (external) NBMA
91
        daemon for Ganeti.
92
      </para>
93
    </refsect2>
94

  
95
  </refsect1>
96

  
97
  &footer;
98

  
99
</refentry>
100

  
101
<!-- Keep this comment at the end of the file
102
Local variables:
103
mode: sgml
104
sgml-omittag:t
105
sgml-shorttag:t
106
sgml-minimize-attributes:nil
107
sgml-always-quote-attributes:t
108
sgml-indent-step:2
109
sgml-indent-data:t
110
sgml-parent-document:nil
111
sgml-default-dtd-file:nil
112
sgml-exposed-tags:nil
113
sgml-local-catalogs:nil
114
sgml-local-ecat-files:nil
115
End:
116
-->
/dev/null
1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

  
3
  <!-- Please adjust the date whenever revising the manpage. -->
4
  <!ENTITY dhdate      "<date>June 08, 2010</date>">
5
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
6
       allowed: see man(7), man(1). -->
7
  <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
8
  <!ENTITY dhucpackage "<refentrytitle>ganeti-masterd</refentrytitle>">
9
  <!ENTITY dhpackage   "ganeti-masterd">
10

  
11
  <!ENTITY debian      "<productname>Debian</productname>">
12
  <!ENTITY gnu         "<acronym>GNU</acronym>">
13
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
14
  <!ENTITY footer SYSTEM "footer.sgml">
15
]>
16

  
17
<refentry>
18
  <refentryinfo>
19
    <copyright>
20
      <year>2008</year>
21
      <year>2009</year>
22
      <year>2010</year>
23
      <holder>Google Inc.</holder>
24
    </copyright>
25
    &dhdate;
26
  </refentryinfo>
27
  <refmeta>
28
    &dhucpackage;
29

  
30
    &dhsection;
31
    <refmiscinfo>Ganeti 2.2</refmiscinfo>
32
  </refmeta>
33
  <refnamediv>
34
    <refname>&dhpackage;</refname>
35

  
36
    <refpurpose>Ganeti master daemon</refpurpose>
37
  </refnamediv>
38
  <refsynopsisdiv>
39
    <cmdsynopsis>
40
      <command>&dhpackage; </command>
41
      <arg>-f</arg>
42
      <arg>-d</arg>
43
      <arg>--no-voting</arg>
44

  
45
    </cmdsynopsis>
46
  </refsynopsisdiv>
47
  <refsect1>
48
    <title>DESCRIPTION</title>
49

  
50
    <para>
51
      The <command>&dhpackage;</command> is the daemon which is
52
      responsible for the overall cluster coordination. Without it, no
53
      change can be performed on the cluster.
54
    </para>
55

  
56
    <para>
57
      For testing purposes, you can give the <option>-f</option>
58
      option and the program won't detach from the running terminal.
59
    </para>
60

  
61
    <para>
62
      Debug-level message can be activated by giving the
63
      <option>-d</option> option.
64
    </para>
65
    <refsect2>
66
      <title>ROLE</title>
67
      <para>
68
        The role of the master daemon is to coordinate all the actions
69
        that change the state of the cluster. Things like accepting
70
        new jobs, coordinating the changes on nodes (via RPC calls to
71
        the respective node daemons), maintaining the configuration
72
        and so on are done via this daemon.
73
      </para>
74

  
75
      <para>
76
        The only action that can be done without the master daemon is
77
        the failover of the master role to another node in the
78
        cluster, via the <command>gnt-cluster
79
        master-failover</command> command.
80
      </para>
81

  
82
      <para>
83
        If the master daemon is stopped, the instances are not
84
        affected, but they won't be restarted automatically in case of
85
        failure.
86
      </para>
87
    </refsect2>
88

  
89
    <refsect2>
90
      <title>STARTUP</title>
91
      <para>
92
        At startup, the master daemon will confirm with the node
93
        daemons that the node it is running is indeed the master node
94
        of the cluster. It will abort if it doesn't get half plus one
95
        positive answers (offline nodes are queried too, just in case
96
        our configuration is stale).
97
      </para>
98

  
99
      <para>
100
        For small clusters with a number of nodes down, and especially
101
        for two-node clusters where the other has gone done, this
102
        creates a problem. In this case the
103
        <option>--no-voting</option> option can be used to skip this
104
        process. The option requires interactive confirmation, as
105
        having two masters on the same cluster is a very dangerous
106
        situation and will most likely lead to data loss.
107
      </para>
108
    </refsect2>
109

  
110
    <refsect2>
111
      <title>JOB QUEUE</title>
112
      <para>
113
        The master daemon maintains a job queue (located under
114
        <filename
115
        class="directory">@LOCALSTATEDIR@/lib/ganeti/queue</filename>) in
116
        which all current jobs are stored, one job per file serialized
117
        in JSON format; in this directory a subdirectory called
118
        <filename class="directory">archive</filename> holds archived
119
        job files.
120
      </para>
121

  
122
      <para>
123
        The moving of jobs from the current to the queue directory is
124
        done via a request to the master; this can be accomplished
125
        from the command line with the <command>gnt-job
126
        archive</command> or <command>gnt-job autoarchive</command>
127
        commands. In case of problems with the master, a job file can
128
        simply be moved away or deleted (but this might leave the
129
        cluster inconsistent).
130
      </para>
131

  
132
    </refsect2>
133

  
134
    <refsect2>
135
      <title>COMMUNICATION PROTOCOL</title>
136
      <para>
137
        The master accepts commands over a Unix socket, using JSON
138
        serialized messages separated by a specific byte sequence. For
139
        more details, see the design documentation supplied with
140
        Ganeti.
141
      </para>
142
    </refsect2>
143

  
144
  </refsect1>
145

  
146
  &footer;
147

  
148
</refentry>
149

  
150
<!-- Keep this comment at the end of the file
151
Local variables:
152
mode: sgml
153
sgml-omittag:t
154
sgml-shorttag:t
155
sgml-minimize-attributes:nil
156
sgml-always-quote-attributes:t
157
sgml-indent-step:2
158
sgml-indent-data:t
159
sgml-parent-document:nil
160
sgml-default-dtd-file:nil
161
sgml-exposed-tags:nil
162
sgml-local-catalogs:nil
163
sgml-local-ecat-files:nil
164
End:
165
-->
/dev/null
1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

  
3
  <!-- Please adjust the date whenever revising the manpage. -->
4
  <!ENTITY dhdate      "<date>June 08, 2010</date>">
5
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
6
       allowed: see man(7), man(1). -->
7
  <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
8
  <!ENTITY dhucpackage "<refentrytitle>ganeti-noded</refentrytitle>">
9
  <!ENTITY dhpackage   "ganeti-noded">
10

  
11
  <!ENTITY debian      "<productname>Debian</productname>">
12
  <!ENTITY gnu         "<acronym>GNU</acronym>">
13
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
14
  <!ENTITY footer SYSTEM "footer.sgml">
15
]>
16

  
17
<refentry>
18
  <refentryinfo>
19
    <copyright>
20
      <year>2006</year>
21
      <year>2007</year>
22
      <year>2008</year>
23
      <year>2009</year>
24
      <year>2010</year>
25
      <holder>Google Inc.</holder>
26
    </copyright>
27
    &dhdate;
28
  </refentryinfo>
29
  <refmeta>
30
    &dhucpackage;
31

  
32
    &dhsection;
33
    <refmiscinfo>Ganeti 2.2</refmiscinfo>
34
  </refmeta>
35
  <refnamediv>
36
    <refname>&dhpackage;</refname>
37

  
38
    <refpurpose>Ganeti node daemon</refpurpose>
39
  </refnamediv>
40
  <refsynopsisdiv>
41
    <cmdsynopsis>
42
      <command>&dhpackage; </command>
43
      <arg>-f</arg>
44
      <arg>-d</arg>
45

  
46
    </cmdsynopsis>
47
  </refsynopsisdiv>
48
  <refsect1>
49
    <title>DESCRIPTION</title>
50

  
51
    <para>
52
      The <command>&dhpackage;</command> is the daemon which is
53
      responsible for the node functions in the Ganeti system.
54
    </para>
55

  
56
    <para>
57
      By default, in order to be able to support features such as node
58
      powercycling even on systems with a very damaged root disk,
59
      <command>ganeti-noded</command> locks itself in RAM using
60
      <citerefentry>
61
        <refentrytitle>mlockall</refentrytitle>
62
        <manvolnum>2</manvolnum>
63
      </citerefentry>. You can disable this feature by passing in the
64
      <option>--no-mlock</option> to the daemon.
65
    </para>
66

  
67
    <para>
68
      For testing purposes, you can give the <option>-f</option>
69
      option and the program won't detach from the running terminal.
70
    </para>
71

  
72
    <para>
73
      Debug-level message can be activated by giving the
74
      <option>-d</option> option.
75
    </para>
76

  
77
    <para>
78
      Logging to syslog, rather than its own log file, can be enabled by
79
      passing in the <option>--syslog</option> option.
80
    </para>
81

  
82
    <para>
83
      The <command>ganeti-noded</command> daemon listens to port 1811 TCP, on
84
      all interfaces, by default. This can be overridden by an entry the
85
      services database (<filename>/etc/services</filename>) or by passing the
86
      <option>-p</option> option. The <option>-b</option> option can be used to
87
      specify the address to bind to (defaults to 0.0.0.0).
88
    </para>
89

  
90
    <para>
91
      Ganeti noded communication is protected via SSL, with a key generated at
92
      cluster init time. This can be disabled with the
93
      <option>--no-ssl</option> option, or a different SSL key and certificate
94
      can be specified using the <option>-K</option> and <option>-C</option>
95
      options.
96
    </para>
97

  
98
    <refsect2>
99
      <title>ROLE</title>
100
      <para>
101
        The role of the node daemon is to do almost all the actions
102
        that change the state of the node. Things like creating disks
103
        for instances, activating disks, starting/stopping instance
104
        and so on are done via the node daemon.
105
      </para>
106

  
107
      <para>
108
        Also, in some cases the startup/shutdown of the master daemon
109
        are done via the node daemon, and the cluster IP address is
110
        also added/removed to the master node via it.
111
      </para>
112

  
113
      <para>
114
        If the node daemon is stopped, the instances are not affected,
115
        but the master won't be able to talk to that node.
116
      </para>
117
    </refsect2>
118

  
119
    <refsect2>
120
      <title>COMMUNICATION PROTOCOL</title>
121
      <para>
122
        Currently the master-node RPC is done using a simple RPC protocol built
123
        using JSON over HTTP(S).
124
      </para>
125
    </refsect2>
126

  
127
  </refsect1>
128

  
129
  &footer;
130

  
131
</refentry>
132

  
133
<!-- Keep this comment at the end of the file
134
Local variables:
135
mode: sgml
136
sgml-omittag:t
137
sgml-shorttag:t
138
sgml-minimize-attributes:nil
139
sgml-always-quote-attributes:t
140
sgml-indent-step:2
141
sgml-indent-data:t
142
sgml-parent-document:nil
143
sgml-default-dtd-file:nil
144
sgml-exposed-tags:nil
145
sgml-local-catalogs:nil
146
sgml-local-ecat-files:nil
147
End:
148
-->
/dev/null
1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

  
3
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4
  <!-- Please adjust the date whenever revising the manpage. -->
5
  <!ENTITY dhdate      "<date>June 08, 2010</date>">
6
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7
       allowed: see man(7), man(1). -->
8
  <!ENTITY dhsection   "<manvolnum>7</manvolnum>">
9
  <!ENTITY dhucpackage "<refentrytitle>ganeti-os-interface</refentrytitle>">
10
  <!ENTITY dhpackage   "ganeti">
11

  
12
  <!ENTITY debian      "<productname>Debian</productname>">
13
  <!ENTITY gnu         "<acronym>GNU</acronym>">
14
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15
  <!ENTITY footer SYSTEM "footer.sgml">
16
]>
17

  
18
<refentry>
19
  <refentryinfo>
20
    <copyright>
21
      <year>2006</year>
22
      <year>2007</year>
23
      <year>2008</year>
24
      <year>2009</year>
25
      <year>2010</year>
26
      <holder>Google Inc.</holder>
27
    </copyright>
28
    &dhdate;
29
  </refentryinfo>
30
  <refmeta>
31
    &dhucpackage;
32

  
33
    &dhsection;
34
    <refmiscinfo>Ganeti 2.2</refmiscinfo>
35
  </refmeta>
36
  <refnamediv>
37
    <refname>ganeti-os-interface</refname>
38

  
39
    <refpurpose>Specifications for guest OS types</refpurpose>
40
  </refnamediv>
41

  
42
  <refsect1>
43
    <title>DESCRIPTION</title>
44

  
45
    <para>
46
      The method of supporting guest operating systems in Ganeti is to
47
      have, for each guest OS type, a directory containing a number of
48
      required files.
49
    </para>
50

  
51

  
52
  </refsect1>
53
  <refsect1>
54
    <title>REFERENCE</title>
55

  
56
    <para>
57
      There are six required files: <filename>create</filename>,
58
      <filename>import</filename>, <filename>export</filename>,
59
      <filename>rename</filename> (executables),
60
      <filename>ganeti_api_version</filename> and
61
      <filename>variants.list</filename> (text file).
62
    </para>
63

  
64
    <refsect2>
65
      <title>Common environment</title>
66
      <para>
67
        All commands will get their input via environment variables. A
68
        common set of variables will be exported for all commands, and
69
        some of them might have extra ones. Note that all counts are
70
        zero-based.
71
      </para>
72
      <variablelist>
73
        <varlistentry>
74
          <term>OS_API_VERSION</term>
75
          <listitem>
76
            <simpara>The OS API version that the rest of the
77
            environment conforms to.</simpara>
78
          </listitem>
79
        </varlistentry>
80
        <varlistentry>
81
          <term>INSTANCE_NAME</term>
82
          <listitem>
83
            <simpara>The instance name the script should operate
84
            on.</simpara>
85
          </listitem>
86
        </varlistentry>
87
        <varlistentry>
88
          <term>INSTANCE_OS</term>
89
          <term>OS_NAME</term>
90
          <listitem>
91
            <simpara>Both names point to the name of the instance's OS
92
            as Ganeti knows it. This can simplify the OS scripts by
93
            providing the same scripts under multiple names, and then
94
            the scripts can use this name to alter their
95
            behaviour.</simpara> <simpara>With OS API 15 changing the
96
            script behavior based on this variable is deprecated:
97
            OS_VARIANT should be used instead (see below).</simpara>
98
          </listitem>
99
        </varlistentry>
100
        <varlistentry>
101
          <term>OS_VARIANT</term>
102
          <listitem>
103
            <simpara>The variant of the OS which should be installed. Each OS
104
            must support all variants listed under its
105
            <filename>variants.list</filename> file, and may support more.
106
            Any more supported variants should be properly documented in the
107
            per-OS  documentation.</simpara>
108
          </listitem>
109
        </varlistentry>
110
        <varlistentry>
111
          <term>HYPERVISOR</term>
112
          <listitem>
113
            <simpara>The hypervisor of this instance.</simpara>
114
          </listitem>
115
        </varlistentry>
116
        <varlistentry>
117
          <term>DISK_COUNT</term>
118
          <listitem>
119
            <simpara>The number of disks the instance has. The actual
120
            disk defitions are in a set of additional variables. The
121
            instance's disk will be numbered from 0 to this value
122
            minus one.</simpara>
123
          </listitem>
124
        </varlistentry>
125
        <varlistentry>
126
          <term>DISK_%N_PATH</term>
127
          <listitem>
128
            <simpara>The path to the storage for disk N of the
129
            instance. This might be either a block device or a regular
130
            file, in which case the OS scripts should use
131
            <emphasis>losetup</emphasis> (if they need to mount
132
            it). E.g. the first disk of the instance might be exported
133
            as <envar>DISK_0_PATH=/dev/drbd0</envar>.</simpara>
134
          </listitem>
135
        </varlistentry>
136
        <varlistentry>
137
          <term>DISK_%N_ACCESS</term>
138
          <listitem>
139
            <simpara>This is how the hypervisor will export the
140
            instance disks: either read-write (<emphasis>rw</emphasis>) or
141
            read-only (<emphasis>ro</emphasis>).</simpara>
142
          </listitem>
143
        </varlistentry>
144
        <varlistentry>
145
          <term>DISK_%N_FRONTEND_TYPE</term>
146
          <listitem>
147
            <simpara>(Optional) If applicable to the current
148
            hypervisor type: the type of the device exported by the
149
            hypervisor. For example, the Xen HVM hypervisor can export
150
            disks as either <emphasis>paravirtual</emphasis> or
151
            <emphasis>ioemu</emphasis>.</simpara>
152
          </listitem>
153
        </varlistentry>
154
        <varlistentry>
155
          <term>DISK_%N_BACKEND_TYPE</term>
156
          <listitem>
157
            <simpara>How files are visible on the node side. This can
158
            be either <emphasis>block</emphasis> (when using block
159
            devices) or <emphasis>file:type</emphasis>, where
160
            <emphasis>type</emphasis> is either
161
            <emphasis>loop</emphasis> <emphasis>blktap</emphasis>
162
            depending on how the hypervisor will be configured. Note
163
            that not all backend types apply to all
164
            hypervisors.</simpara>
165
          </listitem>
166
        </varlistentry>
167
        <varlistentry>
168
          <term>NIC_COUNT</term>
169
          <listitem>
170
            <simpara>Similar to the <envar>DISK_COUNT</envar>, this
171
            represents the number of NICs of the instance.</simpara>
172
          </listitem>
173
        </varlistentry>
174
        <varlistentry>
175
          <term>NIC_%N_MAC</term>
176
          <listitem>
177
            <simpara>The MAC address associated with this
178
            interface.</simpara>
179
          </listitem>
180
        </varlistentry>
181
        <varlistentry>
182
          <term>NIC_%N_IP</term>
183
          <listitem>
184
            <simpara>The IP address, if any, associated with the N-th
185
            NIC of the instance.</simpara>
186
          </listitem>
187
        </varlistentry>
188
        <varlistentry>
189
          <term>NIC_%N_MODE</term>
190
          <listitem>
191
            <simpara>The NIC mode, either routed or bridged</simpara>
192
          </listitem>
193
        </varlistentry>
194
        <varlistentry>
195
          <term>NIC_%N_BRIDGE</term>
196
          <listitem>
197
            <simpara>The bridge to which this NIC will be attached. This
198
            variable is defined only when the NIC is in bridged mode.</simpara>
199
          </listitem>
200
        </varlistentry>
201
        <varlistentry>
202
          <term>NIC_%N_LINK</term>
203
          <listitem>
204
           <simpara>If the NIC is in bridged mode, this is the same as
205
            NIC_%N_BRIDGE. If it is in routed mode, the routing table
206
            which will be used by the hypervisor to insert the appropriate
207
            routes.</simpara> </listitem>
208
        </varlistentry>
209
        <varlistentry>
210
          <term>NIC_%N_FRONTEND_TYPE</term>
211
          <listitem>
212
            <para>(Optional) If applicable, the type of the exported
213
            NIC to the instance, this can be one of of: <simplelist
214
            type="inline"> <member>rtl8139</member>
215
            <member>ne2k_pci</member> <member>ne2k_isa</member>
216
            <member>paravirtual</member> </simplelist>.
217
              </para>
218
          </listitem>
219
        </varlistentry>
220
        <varlistentry>
221
          <term>DEBUG_LEVEL</term>
222
          <listitem>
223
            <simpara>If non-zero, this should cause the OS script to
224
            generate verbose logs of its execution, for
225
            troubleshooting purposes. Currently only
226
            <emphasis>0</emphasis> and <emphasis>1</emphasis> are
227
            valid values.</simpara>
228
          </listitem>
229
        </varlistentry>
230
      </variablelist>
231
    </refsect2>
232

  
233
    <refsect2>
234
      <title>create</title>
235

  
236
      <para>The <command>create</command> command is used for creating
237
      a new instance from scratch. It has no additional environment
238
      variables bside the common ones.</para>
239

  
240
      <para>The <envar>INSTANCE_NAME</envar> variable denotes the name
241
      of the instance, which is guaranteed to resolve to an IP
242
      address. The create script should configure the instance
243
      according to this name. It can configure the IP statically or
244
      not, depending on the deployment environment.</para>
245

  
246
      <para>The <envar>INSTANCE_REINSTALL</envar> variable is set to '1' when
247
      this create request is reinstalling and existing instance, rather than
248
      creating one anew. This can be used, for example, to preserve some
249
      data in the old instance in an OS-specific way.</para>
250

  
251
    </refsect2>
252

  
253
    <refsect2>
254
      <title>export</title>
255

  
256
      <para>
257
        This command is used in order to make a backup of a given disk
258
        of the instance. The command should write to stdout a dump of
259
        the given block device. The output of this program will be
260
        passed during restore to the <command>import</command>
261
        command.
262
      </para>
263

  
264
      <para>
265
        The specific disk to backup is denoted by two additional
266
        environment variables: <envar>EXPORT_INDEX</envar> which
267
        denotes the index in the instance disks structure (and could
268
        be used for example to skip the second disk if not needed for
269
        backup) and <envar>EXPORT_PATH</envar> which has the same
270
        value as <emphasis>DISK_N_PATH</emphasis> but is duplicate
271
        here for easier usage by shell scripts (rather than parse the
272
        DISK_... variables).
273
      </para>
274

  
275
      <para>
276
        To provide the user with an estimate on how long the export will take,
277
        a predicted size can be written to the file descriptor passed in the
278
        variable <envar>EXP_SIZE_FD</envar>. The value is in bytes and must be
279
        terminated by a newline character (\n). Older versions of Ganeti don't
280
        support this feature, hence the variable should be checked before use.
281
        Example: <screen>
282
if test -n "$EXP_SIZE_FD"; then
283
  blockdev --getsize64 $blockdev >&amp;$EXP_SIZE_FD
284
fi
285
</screen>
286
      </para>
287

  
288
    </refsect2>
289

  
290
    <refsect2>
291
      <title>import</title>
292

  
293
      <para>
294
        The <command>import</command> command is used for restoring an
295
        instance from a backup as done by
296
        <command>export</command>. The arguments are the similar to
297
        those passed to <command>export</command>, whose output will
298
        be provided on <acronym>stdin</acronym>.
299
      </para>
300

  
301
      <para>
302
        The difference in variables is that the current disk is called
303
        by <envar>IMPORT_DEVICE</envar> and <envar>IMPORT_INDEX</envar>
304
        (instead of <emphasis>EXPORT_</emphasis>).
305
      </para>
306

  
307
    </refsect2>
308

  
309
    <refsect2>
310
      <title>rename</title>
311

  
312
      <para>
313
        This command is used in order to perform a rename at the
314
        instance OS level, after the instance has been renamed in
315
        Ganeti. The command should do whatever steps are required to
316
        ensure that the instance is updated to use the new name, if
317
        the operating system supports it.
318
      </para>
319

  
320
      <para>
321
        Note that it is acceptable for the rename script to do nothing
322
        at all, however be warned that in this case, there will be a
323
        desynchronization between what <computeroutput>gnt-instance
324
        list</computeroutput> shows you and the actual hostname of the
325
        instance.
326
      </para>
327

  
328
      <para>The script will be passed one additional environment
329
      variable called <envar>OLD_INSTANCE_NAME</envar> which holds the
330
      old instance name. The <envar>INSTANCE_NAME</envar> variable
331
      holds the new instance name.</para>
332

  
333
      <para>
334
        A very simple rename script should at least change the
335
        hostname and IP address of the instance, leaving the
336
        administrator to update the other services.
337
      </para>
338
    </refsect2>
339

  
340
    <refsect2>
341
      <title>ganeti_api_version</title>
342
      <para>
343
        The <filename>ganeti_api_version</filename> file is a plain
344
        text file containing the version(s) of the guest OS API that
345
        this OS definition complies with, one per line. The version
346
        documented by this man page is 15, so this file must contain
347
        the number 15 followed by a newline if only this version is
348
        supported. A script compatible with more than one Ganeti version
349
        should contain the most recent version first (i.e. 15),
350
        followed by the old version(s) (in this case 10 and/or 5).
351
      </para>
352
    </refsect2>
353

  
354
    <refsect2>
355
      <title>variants.list</title>
356
      <para>
357
        <filename>variants.list</filename> is a plain text file
358
        containing all the declared supported variants for this
359
        OS, one per line. At least one variant must be supported.
360
      </para>
361
    </refsect2>
362

  
363
  </refsect1>
364

  
365
  <refsect1>
366
    <title>NOTES</title>
367

  
368
    <refsect2>
369
      <title>Backwards compatibility</title>
370

  
371
      <para>
372
        Ganeti 2.2 is compatible with both API version 10, and 15.
373
        In API version 10 the <filename>variants.list</filename>
374
        file is ignored and no OS_VARIANT environment variable is
375
        passed.
376
      </para>
377
    </refsect2>
378

  
379
    <refsect2>
380
      <title>Common behaviour</title>
381

  
382
      <para>All the scripts should display an usage message when
383
      called with a wrong number of arguments or when the first
384
      argument is <option>-h</option> or
385
      <option>--help</option>.</para>
386

  
387
    </refsect2>
388

  
389
    <refsect2>
390
      <title>Upgrading from old versions</title>
391
      <refsect3>
392

  
393
        <title>Version 10 to 15</title>
394

  
395
        <para>
396
          The <filename>variants.list</filename> file has been
397
          added, so OSes should support at least one variant,
398
          declaring it in that file and must be prepared to parse
399
          the OS_VARIANT environment variable. OSes are free to
400
          support more variants than just the declared ones.
401
        </para>
402

  
403
      </refsect3>
404

  
405
      <refsect3>
406

  
407
        <title>Version 5 to 10</title>
408

  
409
        <para>
410
          The method for passing data has changed from command line
411
          options to environment variables, so scripts should be
412
          modified to use these. For an example of how this can be
413
          done in a way compatible with both versions, feel free to
414
          look at the debootstrap instance's
415
          <filename>common.sh</filename> auxiliary script.
416
        </para>
417

  
418
        <para>
419
          Also, instances can have now a variable number of disks, not
420
          only two, and a variable number of NICs (instead of fixed
421
          one), so the scripts should deal with this. The biggest
422
          change is in the import/export, which are called once per
423
          disk, instead of once per instance.
424
        </para>
425

  
426
      </refsect3>
427

  
428
      <refsect3>
429
        <title>Version 4 to 5</title>
430
        <para>
431
          The <filename>rename</filename> script has been added. If
432
          you don't want to do any changes on the instances after a
433
          rename, you can migrate the OS definition to version 5 by
434
          creating the <filename>rename</filename> script simply as:
435
          <screen>
436
#!/bin/sh
437

  
438
exit 0
439
          </screen>
440
        </para>
441

  
442
        <para>Note that the script must be executable.</para>
443
      </refsect3>
444
    </refsect2>
445

  
446
    <!--
447
    <refsect2>
448

  
449
      <title>Export/import format</title>
450

  
451
      <para>
452
        It is up to the export and import scripts to define the format
453
        they use. It is only required for these two to work
454
        together. It is not recommended that
455
      </para>
456

  
457
    </refsect2>
458
    -->
459

  
460
  </refsect1>
461

  
462
  &footer;
463

  
464
</refentry>
465

  
466
<!-- Keep this comment at the end of the file
467
Local variables:
468
mode: sgml
469
sgml-omittag:t
470
sgml-shorttag:t
471
sgml-minimize-attributes:nil
472
sgml-always-quote-attributes:t
473
sgml-indent-step:2
474
sgml-indent-data:t
475
sgml-parent-document:nil
476
sgml-default-dtd-file:nil
477
sgml-exposed-tags:nil
478
sgml-local-catalogs:nil
479
sgml-local-ecat-files:nil
480
End:
481
-->
/dev/null
1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

  
3
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4
  <!-- Please adjust the date whenever revising the manpage. -->
5
  <!ENTITY dhdate      "<date>June 08, 2010</date>">
6
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7
       allowed: see man(7), man(1). -->
8
  <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
9
  <!ENTITY dhucpackage "<refentrytitle>ganeti-rapi</refentrytitle>">
10
  <!ENTITY dhpackage   "ganeti-rapi">
11

  
12
  <!ENTITY debian      "<productname>Debian</productname>">
13
  <!ENTITY gnu         "<acronym>GNU</acronym>">
14
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15
  <!ENTITY footer SYSTEM "footer.sgml">
16
]>
17

  
18
<refentry>
19
  <refentryinfo>
20
    <copyright>
21
      <year>2008</year>
22
      <year>2009</year>
23
      <year>2010</year>
24
      <holder>Google Inc.</holder>
25
    </copyright>
26
    &dhdate;
27
  </refentryinfo>
28
  <refmeta>
29
    &dhucpackage;
30

  
31
    &dhsection;
32
    <refmiscinfo>Ganeti 2.2</refmiscinfo>
33
  </refmeta>
34
  <refnamediv>
35
    <refname>&dhpackage;</refname>
36

  
37
    <refpurpose>Ganeti remote API daemon</refpurpose>
38
  </refnamediv>
39
  <refsynopsisdiv>
40
    <cmdsynopsis>
41
      <command>&dhpackage; </command>
42
      <arg>-d</arg>
43
      <arg>-f</arg>
44
      <arg>--no-ssl</arg>
45
      <arg>-K <replaceable>SSL_KEY_FILE</replaceable></arg>
46
      <arg>-C <replaceable>SSL_CERT_FILE</replaceable></arg>
47

  
48
    </cmdsynopsis>
49
  </refsynopsisdiv>
50

  
51
  <refsect1>
52
    <title>DESCRIPTION</title>
53

  
54
    <para>
55
      <command>&dhpackage;</command> is the daemon providing a remote
56
      API for Ganeti clusters.
57
    </para>
58

  
59
    <para>
60
      It is automatically started on the master node, and by default
61
      it uses SSL encryption. This can be disabled by passing the
62
      <option>--no-ssl</option> option, or alternatively the
63
      certificate used can be changed via the <option>-C</option>
64
      option and the key via the <option>-K</option> option.
65
    </para>
66

  
67
    <para>
68
      The daemon will listen to the "ganeti-rapi" tcp port, as listed in the
69
      system services database, or to port 5080 by default.
70
    </para>
71

  
72
    <para>
73
      See the <emphasis>Ganeti remote API</emphasis> documentation for
74
      further information.
75
    </para>
76

  
77
    <para>
78
      Requests are logged to
79
      <filename>@LOCALSTATEDIR@/log/ganeti/rapi-daemon.log</filename>,
80
      in the same format as for the node and master daemon.
81
    </para>
82

  
83
  </refsect1>
84

  
85
  <refsect1>
86
    <title>ACCESS CONTROLS</title>
87

  
88
    <para>
89
      All query operations are allowed without authentication. Only
90
      the modification operations require authentication, in the form
91
      of basic authentication.
92
    </para>
93

  
94
    <para>
95
      The users and their rights are defined in a file named
96
      <filename>rapi_users</filename>, located in the <filename
97
      class="directory">@LOCALSTATEDIR@/lib/ganeti</filename>
98
      directory. The users should be listed one per line, in the
99
      following format:
100
    </para>
101

  
102
    <screen>username password options</screen>
103

  
104
    <para>
105
      Currently the <replaceable>options</replaceable> field should
106
      equal the string <emphasis>write</emphasis> in order to actually
107
      give write permission for the given users. Example:
108
    </para>
109
    <screen>rclient   secret    write
110
guest   tespw
111
</screen>
112
    <para>The first user (<userinput>rclient</userinput>) will have
113
    read-write rights, whereas the second user does only have read
114
    (query) rights, and as such is no different than not using
115
    authentication at all.</para>
116

  
117
    <para>More details (including on how to use hashed passwords) can be found
118
      in the Ganeti documentation.</para>
119

  
120
  </refsect1>
121
  &footer;
122

  
123
</refentry>
124

  
125
<!-- Keep this comment at the end of the file
126
Local variables:
127
mode: sgml
128
sgml-omittag:t
129
sgml-shorttag:t
130
sgml-minimize-attributes:nil
131
sgml-always-quote-attributes:t
132
sgml-indent-step:2
133
sgml-indent-data:t
134
sgml-parent-document:nil
135
sgml-default-dtd-file:nil
136
sgml-exposed-tags:nil
137
sgml-local-catalogs:nil
138
sgml-local-ecat-files:nil
139
End:
140
-->
/dev/null
1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

  
3
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4
  <!-- Please adjust the date whenever revising the manpage. -->
5
  <!ENTITY dhdate      "<date>June 08, 2010</date>">
6
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7
       allowed: see man(7), man(1). -->
8
  <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
9
  <!ENTITY dhucpackage "<refentrytitle>ganeti-watcher</refentrytitle>">
10
  <!ENTITY dhpackage   "ganeti-watcher">
11

  
12
  <!ENTITY debian      "<productname>Debian</productname>">
13
  <!ENTITY gnu         "<acronym>GNU</acronym>">
14
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15
  <!ENTITY footer SYSTEM "footer.sgml">
16
]>
17

  
18
<refentry>
19
  <refentryinfo>
20
    <copyright>
21
      <year>2007</year>
22
      <year>2008</year>
23
      <year>2009</year>
24
      <year>2010</year>
25
      <holder>Google Inc.</holder>
26
    </copyright>
27
    &dhdate;
28
  </refentryinfo>
29
  <refmeta>
30
    &dhucpackage;
31

  
32
    &dhsection;
33
    <refmiscinfo>Ganeti 2.2</refmiscinfo>
34
  </refmeta>
35
  <refnamediv>
36
    <refname>&dhpackage;</refname>
37

  
38
    <refpurpose>Ganeti cluster watcher</refpurpose>
39
  </refnamediv>
40
  <refsynopsisdiv>
41
    <cmdsynopsis>
42
      <command>&dhpackage; </command>
43

  
44
      <arg><option>--debug</option></arg>
45
      <arg><option>--job-age=<replaceable>age</replaceable></option></arg>
46
      <arg><option>--ignore-pause</option></arg>
47

  
48
    </cmdsynopsis>
49
  </refsynopsisdiv>
50
  <refsect1>
51
    <title>DESCRIPTION</title>
52

  
53
    <para>
54
      The <command>&dhpackage;</command> is a periodically run script
55
      which is responsible for keeping the instances in the correct
56
      status. It has two separate functions, one for the master node
57
      and another one that runs on every node.
58
    </para>
59

  
60
    <para>
61
      If the watcher is disabled at cluster level (via
62
      the <command>gnt-cluster watcher pause</command> command), it
63
      will exit without doing anything. The cluster-level pause can be
64
      overriden via the <option>--ignore-pause</option> option, for
65
      example if during a maintenance the watcher needs to be disabled
66
      in general, but the administrator wants to run it just once.
67
    </para>
68

  
69
    <para>
70
      The <option>--debug</option> option will increase the verbosity
71
      of the watcher and also activate logging to the standard error.
72
    </para>
73

  
74
    <refsect2>
75
      <title>Master operations</title>
76

  
77
      <para>
78
        Its primary function is to try to keep running all instances
79
        which are marked as <emphasis>up</emphasis> in the configuration
80
        file, by trying to start them a limited number of times.
81
      </para>
82

  
83
      <para>
84
        Another function is to <quote>repair</quote> DRBD links by
85
        reactivating the block devices of instances which have
86
        secondaries on nodes that have been rebooted.
87
      </para>
88

  
89
      <para>
90
        The watcher will also archive old jobs (older than the age
91
        given via the <option>--job-age</option> option, which
92
        defaults to 6 hours), in order to keep the job queue
93
        manageable.
94
      </para>
95

  
96
    </refsect2>
97

  
98
    <refsect2>
99

  
100
      <title>Node operations</title>
101

  
102
      <para>
103
        The watcher will restart any down daemons that are appropriate
104
        for the current node.
105
      </para>
106

  
107
      <para>
108
        In addition, it will execute any scripts which exist under the
109
        <quote>watcher</quote> directory in the Ganeti hooks directory
110
        (@SYSCONFDIR@/ganeti/hooks). This should be used for
111
        lightweight actions, like starting any extra daemons.
112
      </para>
113

  
114
      <para>
115
        If the cluster
116
        parameter <literal>maintain_node_health</literal> is enabled,
117
        then the watcher will also shutdown instances and DRBD devices
118
        if the node is declared as offline by known master candidates.
119
      </para>
120

  
121
      <para>
122
        The watcher does synchronous queries but will submit jobs for
123
        executing the changes. Due to locking, it could be that the jobs
124
        execute much later than the watcher submits them.
125
      </para>
126

  
127
    </refsect2>
128

  
129

  
130
  </refsect1>
131

  
132
  <refsect1>
133
    <title>FILES</title>
134

  
135
    <para>
136
      The command has a state file located at
137
      <filename>@LOCALSTATEDIR@/lib/ganeti/watcher.data</filename>
138
      (only used on the master) and a log file at
139
      <filename>@LOCALSTATEDIR@/log/ganeti/watcher.log</filename>. Removal of
140
      either file will not affect correct operation; the removal of
141
      the state file will just cause the restart counters for the
142
      instances to reset to zero.
143
    </para>
144

  
145
  </refsect1>
146

  
147
  &footer;
148

  
149
</refentry>
150

  
151
<!-- Keep this comment at the end of the file
152
Local variables:
153
mode: sgml
154
sgml-omittag:t
155
sgml-shorttag:t
156
sgml-minimize-attributes:nil
157
sgml-always-quote-attributes:t
158
sgml-indent-step:2
159
sgml-indent-data:t
160
sgml-parent-document:nil
161
sgml-default-dtd-file:nil
162
sgml-exposed-tags:nil
163
sgml-local-catalogs:nil
164
sgml-local-ecat-files:nil
165
End:
166
-->
/dev/null
1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

  
3
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4
  <!-- Please adjust the date whenever revising the manpage. -->
5
  <!ENTITY dhdate      "<date>June 08, 2010</date>">
6
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7
       allowed: see man(7), man(1). -->
8
  <!ENTITY dhsection   "<manvolnum>7</manvolnum>">
9
  <!ENTITY dhucpackage "<refentrytitle>ganeti</refentrytitle>">
10
  <!ENTITY dhpackage   "ganeti">
11

  
12
  <!ENTITY debian      "<productname>Debian</productname>">
13
  <!ENTITY gnu         "<acronym>GNU</acronym>">
14
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15
  <!ENTITY footer SYSTEM "footer.sgml">
16
]>
17

  
18
<refentry>
19
  <refentryinfo>
20
    <copyright>
21
      <year>2006</year>
22
      <year>2007</year>
23
      <year>2008</year>
24
      <year>2009</year>
25
      <year>2010</year>
26
      <holder>Google Inc.</holder>
27
    </copyright>
28
    &dhdate;
29
  </refentryinfo>
30
  <refmeta>
31
    &dhucpackage;
32

  
33
    &dhsection;
34
    <refmiscinfo>Ganeti 2.2</refmiscinfo>
35
  </refmeta>
36
  <refnamediv>
37
    <refname>&dhpackage;</refname>
38

  
39
    <refpurpose>cluster-based virtualization management</refpurpose>
40

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff