Statistics
| Branch: | Tag: | Revision:

root / doc / design-network.rst @ 4bb02813

History | View | Annotate | Download (10.4 kB)

1 eec83a95 Apollon Oikonomopoulos
==================
2 eec83a95 Apollon Oikonomopoulos
Network management
3 eec83a95 Apollon Oikonomopoulos
==================
4 eec83a95 Apollon Oikonomopoulos
5 eec83a95 Apollon Oikonomopoulos
.. contents:: :depth: 4
6 eec83a95 Apollon Oikonomopoulos
7 eec83a95 Apollon Oikonomopoulos
This is a design document detailing the implementation of network resource
8 eec83a95 Apollon Oikonomopoulos
management in Ganeti.
9 eec83a95 Apollon Oikonomopoulos
10 eec83a95 Apollon Oikonomopoulos
Current state and shortcomings
11 eec83a95 Apollon Oikonomopoulos
==============================
12 eec83a95 Apollon Oikonomopoulos
13 eec83a95 Apollon Oikonomopoulos
Currently Ganeti supports two configuration modes for instance NICs:
14 eec83a95 Apollon Oikonomopoulos
routed and bridged mode. The ``ip`` NIC parameter, which is mandatory
15 eec83a95 Apollon Oikonomopoulos
for routed NICs and optional for bridged ones, holds the given NIC's IP
16 eec83a95 Apollon Oikonomopoulos
address and may be filled either manually, or via a DNS lookup for the
17 eec83a95 Apollon Oikonomopoulos
instance's hostname.
18 eec83a95 Apollon Oikonomopoulos
19 eec83a95 Apollon Oikonomopoulos
This approach presents some shortcomings:
20 eec83a95 Apollon Oikonomopoulos
21 eec83a95 Apollon Oikonomopoulos
a) It relies on external systems to perform network resource
22 eec83a95 Apollon Oikonomopoulos
   management. Although large organizations may already have IP pool
23 eec83a95 Apollon Oikonomopoulos
   management software in place, this is not usually the case with
24 eec83a95 Apollon Oikonomopoulos
   stand-alone deployments. For smaller installations it makes sense to
25 eec83a95 Apollon Oikonomopoulos
   allocate a pool of IP addresses to Ganeti and let it transparently
26 eec83a95 Apollon Oikonomopoulos
   assign these IPs to instances as appropriate.
27 eec83a95 Apollon Oikonomopoulos
28 eec83a95 Apollon Oikonomopoulos
b) The NIC network information is incomplete, lacking netmask and
29 eec83a95 Apollon Oikonomopoulos
   gateway.  Operating system providers could for example use the
30 eec83a95 Apollon Oikonomopoulos
   complete network information to fully configure an instance's
31 eec83a95 Apollon Oikonomopoulos
   network parameters upon its creation.
32 eec83a95 Apollon Oikonomopoulos
33 eec83a95 Apollon Oikonomopoulos
   Furthermore, having full network configuration information would
34 eec83a95 Apollon Oikonomopoulos
   enable Ganeti nodes to become more self-contained and be able to
35 eec83a95 Apollon Oikonomopoulos
   infer system configuration (e.g. /etc/network/interfaces content)
36 eec83a95 Apollon Oikonomopoulos
   from Ganeti configuration. This should make configuration of
37 eec83a95 Apollon Oikonomopoulos
   newly-added nodes a lot easier and less dependant on external
38 eec83a95 Apollon Oikonomopoulos
   tools/procedures.
39 eec83a95 Apollon Oikonomopoulos
40 eec83a95 Apollon Oikonomopoulos
c) Instance placement must explicitly take network availability in
41 eec83a95 Apollon Oikonomopoulos
   different node groups into account; the same ``link`` is implicitly
42 eec83a95 Apollon Oikonomopoulos
   expected to connect to the same network across the whole cluster,
43 eec83a95 Apollon Oikonomopoulos
   which may not always be the case with large clusters with multiple
44 eec83a95 Apollon Oikonomopoulos
   node groups.
45 eec83a95 Apollon Oikonomopoulos
46 eec83a95 Apollon Oikonomopoulos
47 eec83a95 Apollon Oikonomopoulos
Proposed changes
48 eec83a95 Apollon Oikonomopoulos
----------------
49 eec83a95 Apollon Oikonomopoulos
50 eec83a95 Apollon Oikonomopoulos
In order to deal with the above shortcomings, we propose to extend
51 eec83a95 Apollon Oikonomopoulos
Ganeti with high-level network management logic, which consists of a new
52 2ac41278 Dimitris Aragiorgis
NIC slot called ``network``, a new ``Network`` configuration object
53 2ac41278 Dimitris Aragiorgis
(cluster level) and logic to perform IP address pool management, i.e.
54 2ac41278 Dimitris Aragiorgis
maintain a set of available and occupied IP addresses.
55 eec83a95 Apollon Oikonomopoulos
56 eec83a95 Apollon Oikonomopoulos
Configuration changes
57 eec83a95 Apollon Oikonomopoulos
+++++++++++++++++++++
58 eec83a95 Apollon Oikonomopoulos
59 eec83a95 Apollon Oikonomopoulos
We propose the introduction of a new high-level Network object,
60 eec83a95 Apollon Oikonomopoulos
containing (at least) the following data:
61 eec83a95 Apollon Oikonomopoulos
62 eec83a95 Apollon Oikonomopoulos
- Symbolic name
63 eec83a95 Apollon Oikonomopoulos
- UUID
64 eec83a95 Apollon Oikonomopoulos
- Network in CIDR notation (IPv4 + IPv6)
65 eec83a95 Apollon Oikonomopoulos
- Default gateway, if one exists (IPv4 + IPv6)
66 eec83a95 Apollon Oikonomopoulos
- IP pool management data (reservations)
67 eec83a95 Apollon Oikonomopoulos
- Default NIC connectivity mode (bridged, routed). This is the
68 eec83a95 Apollon Oikonomopoulos
  functional equivalent of the current NIC ``mode``.
69 eec83a95 Apollon Oikonomopoulos
- Default host interface (e.g. br0). This is the functional equivalent
70 eec83a95 Apollon Oikonomopoulos
  of the current NIC ``link``.
71 eec83a95 Apollon Oikonomopoulos
- Tags
72 eec83a95 Apollon Oikonomopoulos
73 2ac41278 Dimitris Aragiorgis
Each network will be connected to any number of node groups. During the
74 2ac41278 Dimitris Aragiorgis
connection of a network to a nodegroup, we define the corresponding
75 2ac41278 Dimitris Aragiorgis
connectivity mode (bridged or routed) and the host interface (br100 or
76 2ac41278 Dimitris Aragiorgis
routing_table_200). This is achieved by adding a ``networks`` slot to
77 2ac41278 Dimitris Aragiorgis
the NodeGroup object and using the networks' UUIDs as keys. The value
78 2ac41278 Dimitris Aragiorgis
for each key is a dictionary containing the network's ``mode`` and
79 2ac41278 Dimitris Aragiorgis
``link`` (netparams). Every NIC assigned to the network will eventually
80 2ac41278 Dimitris Aragiorgis
inherit the network's netparams, as its nicparams.
81 2ac41278 Dimitris Aragiorgis
82 eec83a95 Apollon Oikonomopoulos
83 eec83a95 Apollon Oikonomopoulos
IP pool management
84 eec83a95 Apollon Oikonomopoulos
++++++++++++++++++
85 eec83a95 Apollon Oikonomopoulos
86 eec83a95 Apollon Oikonomopoulos
A new helper library is introduced, wrapping around Network objects to
87 eec83a95 Apollon Oikonomopoulos
give IP pool management capabilities. A network's pool is defined by two
88 eec83a95 Apollon Oikonomopoulos
bitfields, the length of the network size each:
89 eec83a95 Apollon Oikonomopoulos
90 eec83a95 Apollon Oikonomopoulos
``reservations``
91 eec83a95 Apollon Oikonomopoulos
  This field holds all IP addresses reserved by Ganeti instances, as
92 eec83a95 Apollon Oikonomopoulos
  well as cluster IP addresses (node addresses + cluster master)
93 eec83a95 Apollon Oikonomopoulos
94 eec83a95 Apollon Oikonomopoulos
``external reservations``
95 eec83a95 Apollon Oikonomopoulos
  This field holds all IP addresses that are manually reserved by the
96 eec83a95 Apollon Oikonomopoulos
  administrator, because some other equipment is using them outside the
97 eec83a95 Apollon Oikonomopoulos
  scope of Ganeti.
98 eec83a95 Apollon Oikonomopoulos
99 eec83a95 Apollon Oikonomopoulos
The bitfields are implemented using the python-bitarray package for
100 eec83a95 Apollon Oikonomopoulos
space efficiency and their binary value stored base64-encoded for JSON
101 eec83a95 Apollon Oikonomopoulos
compatibility. This approach gives relatively compact representations
102 eec83a95 Apollon Oikonomopoulos
even for large IPv4 networks (e.g. /20).
103 eec83a95 Apollon Oikonomopoulos
104 eec83a95 Apollon Oikonomopoulos
Ganeti-owned IP addresses (node + master IPs) are reserved automatically
105 eec83a95 Apollon Oikonomopoulos
if the cluster's data network itself is placed under pool management.
106 eec83a95 Apollon Oikonomopoulos
107 eec83a95 Apollon Oikonomopoulos
Helper ConfigWriter methods provide free IP address generation and
108 eec83a95 Apollon Oikonomopoulos
reservation, using a TemporaryReservationManager.
109 eec83a95 Apollon Oikonomopoulos
110 eec83a95 Apollon Oikonomopoulos
It should be noted that IP pool management is performed only for IPv4
111 eec83a95 Apollon Oikonomopoulos
networks, as they are expected to be densely populated. IPv6 networks
112 eec83a95 Apollon Oikonomopoulos
can use different approaches, e.g. sequential address asignment or
113 eec83a95 Apollon Oikonomopoulos
EUI-64 addresses.
114 eec83a95 Apollon Oikonomopoulos
115 2ac41278 Dimitris Aragiorgis
New NIC parameter: network
116 2ac41278 Dimitris Aragiorgis
++++++++++++++++++++++++++
117 eec83a95 Apollon Oikonomopoulos
118 eec83a95 Apollon Oikonomopoulos
In order to be able to use the new network facility while maintaining
119 2ac41278 Dimitris Aragiorgis
compatibility with the current networking model, a new NIC parameter is
120 2ac41278 Dimitris Aragiorgis
introduced, called ``network`` to reflect the fact that the given NIC
121 2ac41278 Dimitris Aragiorgis
belongs to the given network and its configuration is managed by Ganeti
122 2ac41278 Dimitris Aragiorgis
itself. To keep backwards compatibility, existing code is executed if
123 2ac41278 Dimitris Aragiorgis
the ``network`` value is 'none' or omitted during NIC creation. If we
124 2ac41278 Dimitris Aragiorgis
want our NIC to be assigned to a network, then only the ip (optional)
125 2ac41278 Dimitris Aragiorgis
and the network parameters should be passed. Mode and link are inherited
126 2ac41278 Dimitris Aragiorgis
from the network-nodegroup mapping configuration (netparams). This
127 2ac41278 Dimitris Aragiorgis
provides the desired abstraction between the VM's network and the
128 2ac41278 Dimitris Aragiorgis
node-specific underlying infrastructure.
129 eec83a95 Apollon Oikonomopoulos
130 eec83a95 Apollon Oikonomopoulos
We also introduce a new ``ip`` address value, ``constants.NIC_IP_POOL``,
131 eec83a95 Apollon Oikonomopoulos
that specifies that a given NIC's IP address should be obtained using
132 eec83a95 Apollon Oikonomopoulos
the IP address pool of the specified network. This value is only valid
133 2ac41278 Dimitris Aragiorgis
for NICs belonging to a network. A NIC's IP address can also be
134 2ac41278 Dimitris Aragiorgis
specified manually, as long as it is contained in the network the NIC
135 eec83a95 Apollon Oikonomopoulos
is connected to.
136 eec83a95 Apollon Oikonomopoulos
137 eec83a95 Apollon Oikonomopoulos
138 eec83a95 Apollon Oikonomopoulos
Hooks
139 eec83a95 Apollon Oikonomopoulos
+++++
140 eec83a95 Apollon Oikonomopoulos
141 2ac41278 Dimitris Aragiorgis
Introduce new hooks concerning network operations:
142 2ac41278 Dimitris Aragiorgis
143 eec83a95 Apollon Oikonomopoulos
``OP_NETWORK_ADD``
144 eec83a95 Apollon Oikonomopoulos
  Add a network to Ganeti
145 eec83a95 Apollon Oikonomopoulos
146 eec83a95 Apollon Oikonomopoulos
  :directory: network-add
147 eec83a95 Apollon Oikonomopoulos
  :pre-execution: master node
148 eec83a95 Apollon Oikonomopoulos
  :post-execution: master node
149 eec83a95 Apollon Oikonomopoulos
150 2ac41278 Dimitris Aragiorgis
``OP_NETWORK_REMOVE``
151 2ac41278 Dimitris Aragiorgis
  Remove a network from Ganeti
152 2ac41278 Dimitris Aragiorgis
153 2ac41278 Dimitris Aragiorgis
  :directory: network-remove
154 2ac41278 Dimitris Aragiorgis
  :pre-execution: master node
155 2ac41278 Dimitris Aragiorgis
  :post-execution: master node
156 eec83a95 Apollon Oikonomopoulos
157 2ac41278 Dimitris Aragiorgis
``OP_NETWORK_SET_PARAMS``
158 2ac41278 Dimitris Aragiorgis
  Modify a network
159 eec83a95 Apollon Oikonomopoulos
160 2ac41278 Dimitris Aragiorgis
  :directory: network-modify
161 2ac41278 Dimitris Aragiorgis
  :pre-execution: master node
162 2ac41278 Dimitris Aragiorgis
  :post-execution: master node
163 eec83a95 Apollon Oikonomopoulos
164 2ac41278 Dimitris Aragiorgis
For connect/disconnect operations use existing:
165 eec83a95 Apollon Oikonomopoulos
166 2ac41278 Dimitris Aragiorgis
``OP_GROUP_SET_PARAMS``
167 2ac41278 Dimitris Aragiorgis
  Modify a nodegroup
168 eec83a95 Apollon Oikonomopoulos
169 2ac41278 Dimitris Aragiorgis
  :directory: group-modify
170 2ac41278 Dimitris Aragiorgis
  :pre-execution: master node
171 2ac41278 Dimitris Aragiorgis
  :post-execution: master node
172 eec83a95 Apollon Oikonomopoulos
173 eec83a95 Apollon Oikonomopoulos
Hook variables
174 eec83a95 Apollon Oikonomopoulos
^^^^^^^^^^^^^^
175 eec83a95 Apollon Oikonomopoulos
176 2ac41278 Dimitris Aragiorgis
During instance related operations:
177 eec83a95 Apollon Oikonomopoulos
178 eec83a95 Apollon Oikonomopoulos
``INSTANCE_NICn_NETWORK``
179 eec83a95 Apollon Oikonomopoulos
  The friendly name of the network
180 eec83a95 Apollon Oikonomopoulos
181 2ac41278 Dimitris Aragiorgis
During network related operations:
182 eec83a95 Apollon Oikonomopoulos
183 2ac41278 Dimitris Aragiorgis
``NETWORK_NAME``
184 2ac41278 Dimitris Aragiorgis
  The friendly name of the network
185 2ac41278 Dimitris Aragiorgis
186 2ac41278 Dimitris Aragiorgis
``NETWORK_SUBNET``
187 2ac41278 Dimitris Aragiorgis
  The ip range of the network
188 eec83a95 Apollon Oikonomopoulos
189 2ac41278 Dimitris Aragiorgis
``NETWORK_GATEWAY``
190 2ac41278 Dimitris Aragiorgis
  The gateway of the network
191 eec83a95 Apollon Oikonomopoulos
192 2ac41278 Dimitris Aragiorgis
During nodegroup related operations:
193 2ac41278 Dimitris Aragiorgis
194 2ac41278 Dimitris Aragiorgis
``GROUP_NETWORK``
195 2ac41278 Dimitris Aragiorgis
  The friendly name of the network
196 eec83a95 Apollon Oikonomopoulos
197 2ac41278 Dimitris Aragiorgis
``GROUP_NETWORK_MODE``
198 2ac41278 Dimitris Aragiorgis
  The mode (bridged or routed) of the netparams
199 2ac41278 Dimitris Aragiorgis
200 2ac41278 Dimitris Aragiorgis
``GROUP_NETWORK_LINK``
201 2ac41278 Dimitris Aragiorgis
  The link of the netparams
202 eec83a95 Apollon Oikonomopoulos
203 eec83a95 Apollon Oikonomopoulos
Backend changes
204 eec83a95 Apollon Oikonomopoulos
+++++++++++++++
205 eec83a95 Apollon Oikonomopoulos
206 2ac41278 Dimitris Aragiorgis
To keep the hypervisor-visible changes to a minimum, and maintain
207 2ac41278 Dimitris Aragiorgis
compatibility with the existing network configuration scripts, the
208 2ac41278 Dimitris Aragiorgis
instance's hypervisor configuration will have host-level mode and link
209 2ac41278 Dimitris Aragiorgis
replaced by the *connectivity mode* and *host interface* (netparams) of
210 2ac41278 Dimitris Aragiorgis
the given network on the current node group.
211 eec83a95 Apollon Oikonomopoulos
212 2ac41278 Dimitris Aragiorgis
Network configuration scripts detect if a NIC is assigned to a Network
213 2ac41278 Dimitris Aragiorgis
by the presence of the new environment variable:
214 eec83a95 Apollon Oikonomopoulos
215 eec83a95 Apollon Oikonomopoulos
Network configuration script variables
216 eec83a95 Apollon Oikonomopoulos
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
217 eec83a95 Apollon Oikonomopoulos
218 eec83a95 Apollon Oikonomopoulos
``NETWORK``
219 eec83a95 Apollon Oikonomopoulos
  The friendly name of the network
220 eec83a95 Apollon Oikonomopoulos
221 2ac41278 Dimitris Aragiorgis
Conflicting IPs
222 2ac41278 Dimitris Aragiorgis
+++++++++++++++
223 2ac41278 Dimitris Aragiorgis
224 2ac41278 Dimitris Aragiorgis
To ensure IP uniqueness inside a nodegroup, we introduce the term
225 2ac41278 Dimitris Aragiorgis
``conflicting ips``. Conflicting IPs occur: (a) when creating a
226 2ac41278 Dimitris Aragiorgis
networkless NIC with IP contained in a network already connected to the
227 2ac41278 Dimitris Aragiorgis
instance's nodegroup  (b) when connecting/disconnecting a network
228 2ac41278 Dimitris Aragiorgis
to/from a nodegroup and at the same time instances with IPs inside the
229 2ac41278 Dimitris Aragiorgis
network's range still exist. Conflicting IPs produce prereq errors.
230 eec83a95 Apollon Oikonomopoulos
231 2ac41278 Dimitris Aragiorgis
Handling of conflicting IP with --force option:
232 eec83a95 Apollon Oikonomopoulos
233 2ac41278 Dimitris Aragiorgis
For case (a) reserve the IP and assign the NIC to the Network.
234 2ac41278 Dimitris Aragiorgis
For case (b) during connect same as (a), during disconnect release IP and
235 2ac41278 Dimitris Aragiorgis
reset NIC's network parameter to None
236 eec83a95 Apollon Oikonomopoulos
237 eec83a95 Apollon Oikonomopoulos
238 eec83a95 Apollon Oikonomopoulos
Userland interface
239 eec83a95 Apollon Oikonomopoulos
++++++++++++++++++
240 eec83a95 Apollon Oikonomopoulos
241 eec83a95 Apollon Oikonomopoulos
A new client script is introduced, ``gnt-network``, which handles
242 eec83a95 Apollon Oikonomopoulos
network-related configuration in Ganeti.
243 eec83a95 Apollon Oikonomopoulos
244 eec83a95 Apollon Oikonomopoulos
Network addition/deletion
245 eec83a95 Apollon Oikonomopoulos
^^^^^^^^^^^^^^^^^^^^^^^^^
246 eec83a95 Apollon Oikonomopoulos
::
247 eec83a95 Apollon Oikonomopoulos
248 2ac41278 Dimitris Aragiorgis
 gnt-network add --network=192.168.100.0/28 --gateway=192.168.100.1 \
249 2ac41278 Dimitris Aragiorgis
                 --network6=2001:db8:2ffc::/64 --gateway6=2001:db8:2ffc::1 \
250 4bb02813 Helga Velroyen
                 --add-reserved-ips=192.168.100.10,192.168.100.11 net100
251 2ac41278 Dimitris Aragiorgis
  (Checks for already exising name and valid IP values)
252 2ac41278 Dimitris Aragiorgis
 gnt-network remove network_name
253 2ac41278 Dimitris Aragiorgis
  (Checks if not connected to any nodegroup)
254 eec83a95 Apollon Oikonomopoulos
255 eec83a95 Apollon Oikonomopoulos
256 eec83a95 Apollon Oikonomopoulos
Network modification
257 eec83a95 Apollon Oikonomopoulos
^^^^^^^^^^^^^^^^^^^^
258 eec83a95 Apollon Oikonomopoulos
::
259 eec83a95 Apollon Oikonomopoulos
260 2ac41278 Dimitris Aragiorgis
 gnt-network modify --gateway=192.168.100.5 net100
261 2ac41278 Dimitris Aragiorgis
  (Changes the gateway only if ip is available)
262 4bb02813 Helga Velroyen
 gnt-network modify --add-reserved-ips=192.168.100.11 net100
263 4bb02813 Helga Velroyen
  (Adds externally reserved ip)
264 4bb02813 Helga Velroyen
 gnt-network modify --remove-reserved-ips=192.168.100.11 net100
265 4bb02813 Helga Velroyen
  (Removes externally reserved ip)
266 eec83a95 Apollon Oikonomopoulos
267 eec83a95 Apollon Oikonomopoulos
268 eec83a95 Apollon Oikonomopoulos
Assignment to node groups
269 eec83a95 Apollon Oikonomopoulos
^^^^^^^^^^^^^^^^^^^^^^^^^
270 eec83a95 Apollon Oikonomopoulos
::
271 eec83a95 Apollon Oikonomopoulos
272 2ac41278 Dimitris Aragiorgis
 gnt-network connect net100 nodegroup1 bridged br100
273 2ac41278 Dimitris Aragiorgis
  (Checks for existing bridge among nodegroup)
274 2ac41278 Dimitris Aragiorgis
 gnt-network connect net100 nodegroup2 routed rt_table
275 2ac41278 Dimitris Aragiorgis
  (Checks for conflicting IPs)
276 2ac41278 Dimitris Aragiorgis
 gnt-network disconnect net101 nodegroup1
277 2ac41278 Dimitris Aragiorgis
  (Checks for conflicting IPs)
278 eec83a95 Apollon Oikonomopoulos
279 eec83a95 Apollon Oikonomopoulos
280 eec83a95 Apollon Oikonomopoulos
Network listing
281 eec83a95 Apollon Oikonomopoulos
^^^^^^^^^^^^^^^
282 eec83a95 Apollon Oikonomopoulos
::
283 eec83a95 Apollon Oikonomopoulos
284 eec83a95 Apollon Oikonomopoulos
 gnt-network list
285 2ac41278 Dimitris Aragiorgis
286 2ac41278 Dimitris Aragiorgis
 Network      Subnet           Gateway       NodeGroups GroupList
287 2ac41278 Dimitris Aragiorgis
 net100       192.168.100.0/28 192.168.100.1          1 default(bridged, br100)
288 2ac41278 Dimitris Aragiorgis
 net101       192.168.101.0/28 192.168.101.1          1 default(routed, rt_tab)
289 eec83a95 Apollon Oikonomopoulos
290 eec83a95 Apollon Oikonomopoulos
Network information
291 eec83a95 Apollon Oikonomopoulos
^^^^^^^^^^^^^^^^^^^
292 eec83a95 Apollon Oikonomopoulos
::
293 eec83a95 Apollon Oikonomopoulos
294 2ac41278 Dimitris Aragiorgis
 gnt-network info testnet1
295 2ac41278 Dimitris Aragiorgis
296 2ac41278 Dimitris Aragiorgis
 Network name: testnet1
297 2ac41278 Dimitris Aragiorgis
  subnet: 192.168.100.0/28
298 2ac41278 Dimitris Aragiorgis
  gateway: 192.168.100.1
299 2ac41278 Dimitris Aragiorgis
  size: 16
300 2ac41278 Dimitris Aragiorgis
  free: 10 (62.50%)
301 2ac41278 Dimitris Aragiorgis
  usage map:
302 2ac41278 Dimitris Aragiorgis
        0 XXXXX..........X                                                 63
303 2ac41278 Dimitris Aragiorgis
          (X) used    (.) free
304 2ac41278 Dimitris Aragiorgis
  externally reserved IPs:
305 2ac41278 Dimitris Aragiorgis
    192.168.100.0, 192.168.100.1, 192.168.100.15
306 2ac41278 Dimitris Aragiorgis
  connected to node groups:
307 2ac41278 Dimitris Aragiorgis
    default(bridged, br100)
308 2ac41278 Dimitris Aragiorgis
  used by 3 instances:
309 2ac41278 Dimitris Aragiorgis
    test1 : 0:192.168.100.4
310 2ac41278 Dimitris Aragiorgis
    test2 : 0:192.168.100.2
311 2ac41278 Dimitris Aragiorgis
    test3 : 0:192.168.100.3
312 eec83a95 Apollon Oikonomopoulos
313 eec83a95 Apollon Oikonomopoulos
314 eec83a95 Apollon Oikonomopoulos
IAllocator changes
315 eec83a95 Apollon Oikonomopoulos
++++++++++++++++++
316 eec83a95 Apollon Oikonomopoulos
317 eec83a95 Apollon Oikonomopoulos
The IAllocator protocol can be made network-aware, i.e. also consider
318 eec83a95 Apollon Oikonomopoulos
network availability for node group selection. Networks, as well as
319 eec83a95 Apollon Oikonomopoulos
future shared storage pools, can be seen as constraints used to rule out
320 eec83a95 Apollon Oikonomopoulos
the placement on certain node groups.
321 eec83a95 Apollon Oikonomopoulos
322 eec83a95 Apollon Oikonomopoulos
.. vim: set textwidth=72 :
323 eec83a95 Apollon Oikonomopoulos
.. Local Variables:
324 eec83a95 Apollon Oikonomopoulos
.. mode: rst
325 eec83a95 Apollon Oikonomopoulos
.. fill-column: 72
326 eec83a95 Apollon Oikonomopoulos
.. End: