root / doc / design-network.rst @ 0a3aa3d6
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: |