Browse Source

Merge "Add extra validation and update the migration guide"

tags/6.0.0.0b1
Zuul 3 months ago
parent
commit
b1013c4fe4

+ 50
- 21
doc/source/install/migration.rst View File

@@ -64,9 +64,9 @@ Perform the following steps in the undercloud
64 64
      cp -rfp /usr/share/ansible/networking-ovn-migration/playbooks .
65 65
 
66 66
 
67
-3. Create or edit the ``overcloud-deploy-ovn.sh`` script in your ``$HOME``.
67
+3. Create  ``~/overcloud-deploy-ovn.sh`` script in your ``$HOME``.
68 68
 This script must source your stackrc file, and then execute an ``openstack
69
-overcloud overcloud deploy`` with your original deployment parameters, plus
69
+overcloud deploy`` with your original deployment parameters, plus
70 70
 the following environment files, added to the end of the command
71 71
 in the following order:
72 72
 
@@ -120,20 +120,21 @@ values matching the defaults.
120 120
 
121 121
     * IMAGE_NAME - Name/ID of the glance image to us for booting a test server.
122 122
       Default:'cirros'.
123
-      It will be automatically downloaded during the pre-validation /
124
-      post-validation process.
123
+      If the image does not exist it will automatically download and use
124
+      cirros during the pre-validation / post-validation process.
125 125
 
126 126
     * VALIDATE_MIGRATION - Create migration resources to validate the
127 127
       migration. The migration script, before starting the migration, boot a
128 128
       server and validates that the server is reachable after the migration.
129 129
       Default: True.
130 130
 
131
-    * SERVER_USER_NAME - User name to use for logging to the migration
131
+    * SERVER_USER_NAME - User name to use for logging into the migration
132 132
       instances.
133 133
       Default: 'cirros'.
134 134
 
135 135
     * DHCP_RENEWAL_TIME - DHCP renewal time in seconds to configure in DHCP
136
-      agent configuration file.
136
+      agent configuration file. This renewal time is used only temporarily
137
+      during migration to ensure a synchronized MTU switch across the networks.
137 138
       Default: 30
138 139
 
139 140
 
@@ -160,19 +161,37 @@ values matching the defaults.
160 161
        $ ovn_migration.sh generate-inventory
161 162
 
162 163
 
163
-6. Run ``ovn_migration.sh setup-mtu-t1``. This lowers the T1 parameter
164
-   of the internal neutron DHCP servers configuring the ``dhcp_renewal_time``
165
-   in /var/lib/config-data/puppet-generated/neutron/etc/neutron/dhcp_agent.ini
166
-   in all the nodes where DHCP agent is running.
164
+   At this step the script will inspect the TripleO ansible inventory
165
+   and generate an inventory of hosts, specifically tagged to work
166
+   with the migration playbooks.
167
+
168
+
169
+6. Run ``ovn_migration.sh setup-mtu-t1``
167 170
 
168 171
   .. code-block:: console
169 172
 
170 173
        $ ovn_migration.sh setup-mtu-t1
171 174
 
172 175
 
176
+   This lowers the T1 parameter
177
+   of the internal neutron DHCP servers configuring the ``dhcp_renewal_time``
178
+   in /var/lib/config-data/puppet-generated/neutron/etc/neutron/dhcp_agent.ini
179
+   in all the nodes where DHCP agent is running.
180
+
181
+   We lower the T1 parameter to make sure that the instances start refreshing
182
+   the DHCP lease quicker (every 30 seconds by default) during the migration
183
+   proccess. The reason why we force this is to make sure that the MTU update
184
+   happens quickly across the network during step 8, this is very important
185
+   because during those 30 seconds there will be connectivity issues with
186
+   bigger packets (MTU missmatchess across the network), this is also why
187
+   step 7 is very important, even though we reduce T1, the previous T1 value
188
+   the instances leased from the DHCP server will be much higher
189
+   (24h by default) and we need to wait those 24h to make sure they have
190
+   updated T1. After migration the DHCP T1 parameter returns to normal values.
191
+
173 192
 7. If you are using VXLAN or GRE tenant networking, ``wait at least 24 hours``
174 193
 before continuing. This will allow VMs to catch up with the new MTU size
175
-of the next step.`
194
+of the next step.
176 195
 
177 196
   .. warning::
178 197
 
@@ -181,7 +200,7 @@ of the next step.`
181 200
 
182 201
   .. warning::
183 202
 
184
-        If you have any instance with static IP assignation on VXLAN or
203
+        If you have any instance with static IP assignment on VXLAN or
185 204
         GRE tenant networks, you must manually modify the configuration of those instances.
186 205
         If your instances don't honor the T1 parameter of DHCP they will need
187 206
         to be rebooted.
@@ -229,10 +248,9 @@ of the next step.`
229 248
 
230 249
 8. Run ``ovn_migration.sh reduce-mtu``.
231 250
 
232
-   This lowers the MTU of the pre
233
-   migration VXLAN and GRE networks. The tool will ignore non-VXLAN/GRE
234
-   networks, so if you use VLAN for tenant networks it will be fine if you
235
-   find this step not doing anything.
251
+   This lowers the MTU of the pre migration VXLAN and GRE networks. The
252
+   tool will ignore non-VXLAN/GRE networks, so if you use VLAN for tenant
253
+   networks it will be fine if you find this step not doing anything.
236 254
 
237 255
    .. code-block:: console
238 256
 
@@ -242,8 +260,15 @@ of the next step.`
242 260
    This step will go network by network reducing the MTU, and tagging with
243 261
    ``adapted_mtu`` the networks which have been already handled.
244 262
 
263
+   Every time a network is updated all the existing L3/DHCP agents
264
+   connected to such network will update their internal leg MTU, instances
265
+   will start fetching the new MTU as the DHCP T1 timer expires. As explained
266
+   before, instances not obeying the DHCP T1 parameter will need to be
267
+   restarted, and instances with static IP assignment will need to be manually
268
+   updated.
269
+
245 270
 
246
-9. Make Tripleo ``prepare the new container images`` for OVN.
271
+9. Make TripleO ``prepare the new container images`` for OVN.
247 272
 
248 273
    If your deployment didn't have a containers-prepare-parameter.yaml, you can
249 274
    create one with:
@@ -287,8 +312,8 @@ of the next step.`
287 312
       version doesn't seem to output any error).
288 313
 
289 314
 
290
-   TripleO will validate the containers and push them to your local
291
-   registry.
315
+   During this step TripleO will build a list of containers, pull them from
316
+   the remote registry and push them to your deployment local registry.
292 317
 
293 318
 
294 319
 10. Run ``ovn_migration.sh start-migration`` to kick start the migration
@@ -299,7 +324,7 @@ of the next step.`
299 324
        $ ovn_migration.sh start-migration
300 325
 
301 326
 
302
-   Under the hood, this is what will happen:
327
+   During this step, this is what will happen:
303 328
 
304 329
     * Create pre-migration resources (network and VM) to validate existing
305 330
       deployment and final migration.
@@ -333,7 +358,11 @@ of the next step.`
333 358
 
334 359
     * Cleanup post-migration resources.
335 360
 
336
-    * Re-run deployment tool to update OVN on br-int.
361
+    * Re-run deployment tool to update OVN on br-int, this step ensures
362
+      that the TripleO database is updated with the final integration bridge.
363
+
364
+    * Run an extra validation round to ensure the final state of the system is
365
+      fully operational.
337 366
 
338 367
 
339 368
 Migration is complete !!!

+ 14
- 0
migration/tripleo_environment/playbooks/ovn-migration.yml View File

@@ -84,6 +84,20 @@
84 84
     - setup
85 85
   become: false
86 86
 
87
+#
88
+# Final validation after tripleo update to br-int
89
+#
90
+
91
+- name: Final validation
92
+  hosts: localhost
93
+  vars:
94
+      validate_premigration_resources: false
95
+  roles:
96
+    - post-migration
97
+  tags:
98
+    - final-validation
99
+
100
+
87 101
 #
88 102
 # Announce that it's done and ready.
89 103
 #

+ 2
- 1
migration/tripleo_environment/playbooks/roles/post-migration/defaults/main.yml View File

@@ -1,3 +1,4 @@
1 1
 ---
2 2
 
3
-ovn_migration_temp_dir: "{{ working_dir }}/post_migration_resources"
3
+ovn_migration_temp_dir: "{{ working_dir }}/post_migration_resources"
4
+validate_premigration_resources: true

+ 6
- 2
migration/tripleo_environment/playbooks/roles/post-migration/tasks/main.yml View File

@@ -9,14 +9,18 @@
9 9
     name: resources/validate
10 10
   vars:
11 11
       restart_server: true
12
-  when: validate_migration|bool
12
+  when:
13
+    - validate_migration|bool
14
+    - validate_premigration_resources
13 15
 
14 16
 - name: Delete the pre migration resources
15 17
   include_role:
16 18
     name: resources/cleanup
17 19
   tags:
18 20
     - post-migration
19
-  when: validate_migration|bool
21
+  when:
22
+    - validate_migration|bool
23
+    - validate_premigration_resources
20 24
 
21 25
 #
22 26
 # Create post-migration resources, validate, and then clean up

Loading…
Cancel
Save