root / doc / design-network.rst @ b45fa564
History | View | Annotate | Download (10.8 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 | d2049832 | Dimitris Aragiorgis | This field holds all IP addresses reserved by Ganeti instances. |
92 | eec83a95 | Apollon Oikonomopoulos | |
93 | eec83a95 | Apollon Oikonomopoulos | ``external reservations`` |
94 | eec83a95 | Apollon Oikonomopoulos | This field holds all IP addresses that are manually reserved by the |
95 | d2049832 | Dimitris Aragiorgis | administrator (external gateway, IPs of external servers, etc) or |
96 | d2049832 | Dimitris Aragiorgis | automatically by ganeti (the network/broadcast addresses, |
97 | d2049832 | Dimitris Aragiorgis | Cluster IPs (node addresses + cluster master)). These IPs are excluded |
98 | d2049832 | Dimitris Aragiorgis | from the IP pool and cannot be assigned automatically by ganeti to |
99 | d2049832 | Dimitris Aragiorgis | instances (via ip=pool). |
100 | eec83a95 | Apollon Oikonomopoulos | |
101 | eec83a95 | Apollon Oikonomopoulos | The bitfields are implemented using the python-bitarray package for |
102 | eec83a95 | Apollon Oikonomopoulos | space efficiency and their binary value stored base64-encoded for JSON |
103 | eec83a95 | Apollon Oikonomopoulos | compatibility. This approach gives relatively compact representations |
104 | eec83a95 | Apollon Oikonomopoulos | even for large IPv4 networks (e.g. /20). |
105 | eec83a95 | Apollon Oikonomopoulos | |
106 | d2049832 | Dimitris Aragiorgis | Cluster IP addresses (node + master IPs) are reserved automatically |
107 | d2049832 | Dimitris Aragiorgis | as external if the cluster's data network itself is placed under |
108 | d2049832 | Dimitris Aragiorgis | pool management. |
109 | eec83a95 | Apollon Oikonomopoulos | |
110 | eec83a95 | Apollon Oikonomopoulos | Helper ConfigWriter methods provide free IP address generation and |
111 | eec83a95 | Apollon Oikonomopoulos | reservation, using a TemporaryReservationManager. |
112 | eec83a95 | Apollon Oikonomopoulos | |
113 | eec83a95 | Apollon Oikonomopoulos | It should be noted that IP pool management is performed only for IPv4 |
114 | eec83a95 | Apollon Oikonomopoulos | networks, as they are expected to be densely populated. IPv6 networks |
115 | eec83a95 | Apollon Oikonomopoulos | can use different approaches, e.g. sequential address asignment or |
116 | eec83a95 | Apollon Oikonomopoulos | EUI-64 addresses. |
117 | eec83a95 | Apollon Oikonomopoulos | |
118 | 2ac41278 | Dimitris Aragiorgis | New NIC parameter: network |
119 | 2ac41278 | Dimitris Aragiorgis | ++++++++++++++++++++++++++ |
120 | eec83a95 | Apollon Oikonomopoulos | |
121 | eec83a95 | Apollon Oikonomopoulos | In order to be able to use the new network facility while maintaining |
122 | 2ac41278 | Dimitris Aragiorgis | compatibility with the current networking model, a new NIC parameter is |
123 | 2ac41278 | Dimitris Aragiorgis | introduced, called ``network`` to reflect the fact that the given NIC |
124 | 2ac41278 | Dimitris Aragiorgis | belongs to the given network and its configuration is managed by Ganeti |
125 | 2ac41278 | Dimitris Aragiorgis | itself. To keep backwards compatibility, existing code is executed if |
126 | 2ac41278 | Dimitris Aragiorgis | the ``network`` value is 'none' or omitted during NIC creation. If we |
127 | 2ac41278 | Dimitris Aragiorgis | want our NIC to be assigned to a network, then only the ip (optional) |
128 | 2ac41278 | Dimitris Aragiorgis | and the network parameters should be passed. Mode and link are inherited |
129 | 2ac41278 | Dimitris Aragiorgis | from the network-nodegroup mapping configuration (netparams). This |
130 | 2ac41278 | Dimitris Aragiorgis | provides the desired abstraction between the VM's network and the |
131 | 2ac41278 | Dimitris Aragiorgis | node-specific underlying infrastructure. |
132 | eec83a95 | Apollon Oikonomopoulos | |
133 | eec83a95 | Apollon Oikonomopoulos | We also introduce a new ``ip`` address value, ``constants.NIC_IP_POOL``, |
134 | eec83a95 | Apollon Oikonomopoulos | that specifies that a given NIC's IP address should be obtained using |
135 | d2049832 | Dimitris Aragiorgis | the first available IP address inside the pool of the specified network. |
136 | d2049832 | Dimitris Aragiorgis | (reservations OR external_reservations). This value is only valid |
137 | 2ac41278 | Dimitris Aragiorgis | for NICs belonging to a network. A NIC's IP address can also be |
138 | 2ac41278 | Dimitris Aragiorgis | specified manually, as long as it is contained in the network the NIC |
139 | d2049832 | Dimitris Aragiorgis | is connected to. In case this IP is externally reserved, Ganeti will produce |
140 | d2049832 | Dimitris Aragiorgis | an error which the user can override if explicitly requested. Of course |
141 | d2049832 | Dimitris Aragiorgis | this IP will be reserved and will not be able to be assigned to another |
142 | d2049832 | Dimitris Aragiorgis | instance. |
143 | eec83a95 | Apollon Oikonomopoulos | |
144 | eec83a95 | Apollon Oikonomopoulos | |
145 | eec83a95 | Apollon Oikonomopoulos | Hooks |
146 | eec83a95 | Apollon Oikonomopoulos | +++++ |
147 | eec83a95 | Apollon Oikonomopoulos | |
148 | 2ac41278 | Dimitris Aragiorgis | Introduce new hooks concerning network operations: |
149 | 2ac41278 | Dimitris Aragiorgis | |
150 | eec83a95 | Apollon Oikonomopoulos | ``OP_NETWORK_ADD`` |
151 | eec83a95 | Apollon Oikonomopoulos | Add a network to Ganeti |
152 | eec83a95 | Apollon Oikonomopoulos | |
153 | eec83a95 | Apollon Oikonomopoulos | :directory: network-add |
154 | eec83a95 | Apollon Oikonomopoulos | :pre-execution: master node |
155 | eec83a95 | Apollon Oikonomopoulos | :post-execution: master node |
156 | eec83a95 | Apollon Oikonomopoulos | |
157 | 2ac41278 | Dimitris Aragiorgis | ``OP_NETWORK_REMOVE`` |
158 | 2ac41278 | Dimitris Aragiorgis | Remove a network from Ganeti |
159 | 2ac41278 | Dimitris Aragiorgis | |
160 | 2ac41278 | Dimitris Aragiorgis | :directory: network-remove |
161 | 2ac41278 | Dimitris Aragiorgis | :pre-execution: master node |
162 | 2ac41278 | Dimitris Aragiorgis | :post-execution: master node |
163 | eec83a95 | Apollon Oikonomopoulos | |
164 | 2ac41278 | Dimitris Aragiorgis | ``OP_NETWORK_SET_PARAMS`` |
165 | 2ac41278 | Dimitris Aragiorgis | Modify a network |
166 | eec83a95 | Apollon Oikonomopoulos | |
167 | 2ac41278 | Dimitris Aragiorgis | :directory: network-modify |
168 | 2ac41278 | Dimitris Aragiorgis | :pre-execution: master node |
169 | 2ac41278 | Dimitris Aragiorgis | :post-execution: master node |
170 | eec83a95 | Apollon Oikonomopoulos | |
171 | 2ac41278 | Dimitris Aragiorgis | For connect/disconnect operations use existing: |
172 | eec83a95 | Apollon Oikonomopoulos | |
173 | 2ac41278 | Dimitris Aragiorgis | ``OP_GROUP_SET_PARAMS`` |
174 | 2ac41278 | Dimitris Aragiorgis | Modify a nodegroup |
175 | eec83a95 | Apollon Oikonomopoulos | |
176 | 2ac41278 | Dimitris Aragiorgis | :directory: group-modify |
177 | 2ac41278 | Dimitris Aragiorgis | :pre-execution: master node |
178 | 2ac41278 | Dimitris Aragiorgis | :post-execution: master node |
179 | eec83a95 | Apollon Oikonomopoulos | |
180 | eec83a95 | Apollon Oikonomopoulos | Hook variables |
181 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^ |
182 | eec83a95 | Apollon Oikonomopoulos | |
183 | 2ac41278 | Dimitris Aragiorgis | During instance related operations: |
184 | eec83a95 | Apollon Oikonomopoulos | |
185 | eec83a95 | Apollon Oikonomopoulos | ``INSTANCE_NICn_NETWORK`` |
186 | eec83a95 | Apollon Oikonomopoulos | The friendly name of the network |
187 | eec83a95 | Apollon Oikonomopoulos | |
188 | 2ac41278 | Dimitris Aragiorgis | During network related operations: |
189 | eec83a95 | Apollon Oikonomopoulos | |
190 | 2ac41278 | Dimitris Aragiorgis | ``NETWORK_NAME`` |
191 | 2ac41278 | Dimitris Aragiorgis | The friendly name of the network |
192 | 2ac41278 | Dimitris Aragiorgis | |
193 | 2ac41278 | Dimitris Aragiorgis | ``NETWORK_SUBNET`` |
194 | 2ac41278 | Dimitris Aragiorgis | The ip range of the network |
195 | eec83a95 | Apollon Oikonomopoulos | |
196 | 2ac41278 | Dimitris Aragiorgis | ``NETWORK_GATEWAY`` |
197 | 2ac41278 | Dimitris Aragiorgis | The gateway of the network |
198 | eec83a95 | Apollon Oikonomopoulos | |
199 | 2ac41278 | Dimitris Aragiorgis | During nodegroup related operations: |
200 | 2ac41278 | Dimitris Aragiorgis | |
201 | 2ac41278 | Dimitris Aragiorgis | ``GROUP_NETWORK`` |
202 | 2ac41278 | Dimitris Aragiorgis | The friendly name of the network |
203 | eec83a95 | Apollon Oikonomopoulos | |
204 | 2ac41278 | Dimitris Aragiorgis | ``GROUP_NETWORK_MODE`` |
205 | 2ac41278 | Dimitris Aragiorgis | The mode (bridged or routed) of the netparams |
206 | 2ac41278 | Dimitris Aragiorgis | |
207 | 2ac41278 | Dimitris Aragiorgis | ``GROUP_NETWORK_LINK`` |
208 | 2ac41278 | Dimitris Aragiorgis | The link of the netparams |
209 | eec83a95 | Apollon Oikonomopoulos | |
210 | eec83a95 | Apollon Oikonomopoulos | Backend changes |
211 | eec83a95 | Apollon Oikonomopoulos | +++++++++++++++ |
212 | eec83a95 | Apollon Oikonomopoulos | |
213 | 2ac41278 | Dimitris Aragiorgis | To keep the hypervisor-visible changes to a minimum, and maintain |
214 | 2ac41278 | Dimitris Aragiorgis | compatibility with the existing network configuration scripts, the |
215 | 2ac41278 | Dimitris Aragiorgis | instance's hypervisor configuration will have host-level mode and link |
216 | 2ac41278 | Dimitris Aragiorgis | replaced by the *connectivity mode* and *host interface* (netparams) of |
217 | 2ac41278 | Dimitris Aragiorgis | the given network on the current node group. |
218 | eec83a95 | Apollon Oikonomopoulos | |
219 | 2ac41278 | Dimitris Aragiorgis | Network configuration scripts detect if a NIC is assigned to a Network |
220 | 2ac41278 | Dimitris Aragiorgis | by the presence of the new environment variable: |
221 | eec83a95 | Apollon Oikonomopoulos | |
222 | eec83a95 | Apollon Oikonomopoulos | Network configuration script variables |
223 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
224 | eec83a95 | Apollon Oikonomopoulos | |
225 | eec83a95 | Apollon Oikonomopoulos | ``NETWORK`` |
226 | eec83a95 | Apollon Oikonomopoulos | The friendly name of the network |
227 | eec83a95 | Apollon Oikonomopoulos | |
228 | 2ac41278 | Dimitris Aragiorgis | Conflicting IPs |
229 | 2ac41278 | Dimitris Aragiorgis | +++++++++++++++ |
230 | 2ac41278 | Dimitris Aragiorgis | |
231 | 2ac41278 | Dimitris Aragiorgis | To ensure IP uniqueness inside a nodegroup, we introduce the term |
232 | 2ac41278 | Dimitris Aragiorgis | ``conflicting ips``. Conflicting IPs occur: (a) when creating a |
233 | 2ac41278 | Dimitris Aragiorgis | networkless NIC with IP contained in a network already connected to the |
234 | 2ac41278 | Dimitris Aragiorgis | instance's nodegroup (b) when connecting/disconnecting a network |
235 | 2ac41278 | Dimitris Aragiorgis | to/from a nodegroup and at the same time instances with IPs inside the |
236 | 2ac41278 | Dimitris Aragiorgis | network's range still exist. Conflicting IPs produce prereq errors. |
237 | eec83a95 | Apollon Oikonomopoulos | |
238 | 2ac41278 | Dimitris Aragiorgis | Handling of conflicting IP with --force option: |
239 | eec83a95 | Apollon Oikonomopoulos | |
240 | 2ac41278 | Dimitris Aragiorgis | For case (a) reserve the IP and assign the NIC to the Network. |
241 | 2ac41278 | Dimitris Aragiorgis | For case (b) during connect same as (a), during disconnect release IP and |
242 | 2ac41278 | Dimitris Aragiorgis | reset NIC's network parameter to None |
243 | eec83a95 | Apollon Oikonomopoulos | |
244 | eec83a95 | Apollon Oikonomopoulos | |
245 | eec83a95 | Apollon Oikonomopoulos | Userland interface |
246 | eec83a95 | Apollon Oikonomopoulos | ++++++++++++++++++ |
247 | eec83a95 | Apollon Oikonomopoulos | |
248 | eec83a95 | Apollon Oikonomopoulos | A new client script is introduced, ``gnt-network``, which handles |
249 | eec83a95 | Apollon Oikonomopoulos | network-related configuration in Ganeti. |
250 | eec83a95 | Apollon Oikonomopoulos | |
251 | eec83a95 | Apollon Oikonomopoulos | Network addition/deletion |
252 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
253 | eec83a95 | Apollon Oikonomopoulos | :: |
254 | eec83a95 | Apollon Oikonomopoulos | |
255 | 2ac41278 | Dimitris Aragiorgis | gnt-network add --network=192.168.100.0/28 --gateway=192.168.100.1 \ |
256 | 2ac41278 | Dimitris Aragiorgis | --network6=2001:db8:2ffc::/64 --gateway6=2001:db8:2ffc::1 \ |
257 | 4bb02813 | Helga Velroyen | --add-reserved-ips=192.168.100.10,192.168.100.11 net100 |
258 | 2ac41278 | Dimitris Aragiorgis | (Checks for already exising name and valid IP values) |
259 | 2ac41278 | Dimitris Aragiorgis | gnt-network remove network_name |
260 | 2ac41278 | Dimitris Aragiorgis | (Checks if not connected to any nodegroup) |
261 | eec83a95 | Apollon Oikonomopoulos | |
262 | eec83a95 | Apollon Oikonomopoulos | |
263 | eec83a95 | Apollon Oikonomopoulos | Network modification |
264 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^ |
265 | eec83a95 | Apollon Oikonomopoulos | :: |
266 | eec83a95 | Apollon Oikonomopoulos | |
267 | 2ac41278 | Dimitris Aragiorgis | gnt-network modify --gateway=192.168.100.5 net100 |
268 | 2ac41278 | Dimitris Aragiorgis | (Changes the gateway only if ip is available) |
269 | 4bb02813 | Helga Velroyen | gnt-network modify --add-reserved-ips=192.168.100.11 net100 |
270 | 4bb02813 | Helga Velroyen | (Adds externally reserved ip) |
271 | 4bb02813 | Helga Velroyen | gnt-network modify --remove-reserved-ips=192.168.100.11 net100 |
272 | 4bb02813 | Helga Velroyen | (Removes externally reserved ip) |
273 | eec83a95 | Apollon Oikonomopoulos | |
274 | eec83a95 | Apollon Oikonomopoulos | |
275 | eec83a95 | Apollon Oikonomopoulos | Assignment to node groups |
276 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
277 | eec83a95 | Apollon Oikonomopoulos | :: |
278 | eec83a95 | Apollon Oikonomopoulos | |
279 | 2ac41278 | Dimitris Aragiorgis | gnt-network connect net100 nodegroup1 bridged br100 |
280 | 2ac41278 | Dimitris Aragiorgis | (Checks for existing bridge among nodegroup) |
281 | 2ac41278 | Dimitris Aragiorgis | gnt-network connect net100 nodegroup2 routed rt_table |
282 | 2ac41278 | Dimitris Aragiorgis | (Checks for conflicting IPs) |
283 | 2ac41278 | Dimitris Aragiorgis | gnt-network disconnect net101 nodegroup1 |
284 | 2ac41278 | Dimitris Aragiorgis | (Checks for conflicting IPs) |
285 | eec83a95 | Apollon Oikonomopoulos | |
286 | eec83a95 | Apollon Oikonomopoulos | |
287 | eec83a95 | Apollon Oikonomopoulos | Network listing |
288 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^ |
289 | eec83a95 | Apollon Oikonomopoulos | :: |
290 | eec83a95 | Apollon Oikonomopoulos | |
291 | eec83a95 | Apollon Oikonomopoulos | gnt-network list |
292 | 2ac41278 | Dimitris Aragiorgis | |
293 | 2ac41278 | Dimitris Aragiorgis | Network Subnet Gateway NodeGroups GroupList |
294 | 2ac41278 | Dimitris Aragiorgis | net100 192.168.100.0/28 192.168.100.1 1 default(bridged, br100) |
295 | 2ac41278 | Dimitris Aragiorgis | net101 192.168.101.0/28 192.168.101.1 1 default(routed, rt_tab) |
296 | eec83a95 | Apollon Oikonomopoulos | |
297 | eec83a95 | Apollon Oikonomopoulos | Network information |
298 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^ |
299 | eec83a95 | Apollon Oikonomopoulos | :: |
300 | eec83a95 | Apollon Oikonomopoulos | |
301 | 2ac41278 | Dimitris Aragiorgis | gnt-network info testnet1 |
302 | 2ac41278 | Dimitris Aragiorgis | |
303 | 2ac41278 | Dimitris Aragiorgis | Network name: testnet1 |
304 | 2ac41278 | Dimitris Aragiorgis | subnet: 192.168.100.0/28 |
305 | 2ac41278 | Dimitris Aragiorgis | gateway: 192.168.100.1 |
306 | 2ac41278 | Dimitris Aragiorgis | size: 16 |
307 | 2ac41278 | Dimitris Aragiorgis | free: 10 (62.50%) |
308 | 2ac41278 | Dimitris Aragiorgis | usage map: |
309 | 2ac41278 | Dimitris Aragiorgis | 0 XXXXX..........X 63 |
310 | 2ac41278 | Dimitris Aragiorgis | (X) used (.) free |
311 | 2ac41278 | Dimitris Aragiorgis | externally reserved IPs: |
312 | 2ac41278 | Dimitris Aragiorgis | 192.168.100.0, 192.168.100.1, 192.168.100.15 |
313 | 2ac41278 | Dimitris Aragiorgis | connected to node groups: |
314 | 2ac41278 | Dimitris Aragiorgis | default(bridged, br100) |
315 | 2ac41278 | Dimitris Aragiorgis | used by 3 instances: |
316 | 2ac41278 | Dimitris Aragiorgis | test1 : 0:192.168.100.4 |
317 | 2ac41278 | Dimitris Aragiorgis | test2 : 0:192.168.100.2 |
318 | 2ac41278 | Dimitris Aragiorgis | test3 : 0:192.168.100.3 |
319 | eec83a95 | Apollon Oikonomopoulos | |
320 | eec83a95 | Apollon Oikonomopoulos | |
321 | eec83a95 | Apollon Oikonomopoulos | IAllocator changes |
322 | eec83a95 | Apollon Oikonomopoulos | ++++++++++++++++++ |
323 | eec83a95 | Apollon Oikonomopoulos | |
324 | eec83a95 | Apollon Oikonomopoulos | The IAllocator protocol can be made network-aware, i.e. also consider |
325 | eec83a95 | Apollon Oikonomopoulos | network availability for node group selection. Networks, as well as |
326 | eec83a95 | Apollon Oikonomopoulos | future shared storage pools, can be seen as constraints used to rule out |
327 | eec83a95 | Apollon Oikonomopoulos | the placement on certain node groups. |
328 | eec83a95 | Apollon Oikonomopoulos | |
329 | eec83a95 | Apollon Oikonomopoulos | .. vim: set textwidth=72 : |
330 | eec83a95 | Apollon Oikonomopoulos | .. Local Variables: |
331 | eec83a95 | Apollon Oikonomopoulos | .. mode: rst |
332 | eec83a95 | Apollon Oikonomopoulos | .. fill-column: 72 |
333 | eec83a95 | Apollon Oikonomopoulos | .. End: |