From 15821cba7b4ecd256f63760ea6fc58641505fc17 Mon Sep 17 00:00:00 2001 From: Bach Dániel <bd@ik.bme.hu> Date: Sat, 5 Jul 2014 20:43:23 +0200 Subject: [PATCH] vm: migration with zero downtime --- circle/vm/models/instance.py | 3 ++- circle/vm/operations.py | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/circle/vm/models/instance.py b/circle/vm/models/instance.py index 6a9ad6a..72fea58 100644 --- a/circle/vm/models/instance.py +++ b/circle/vm/models/instance.py @@ -822,7 +822,8 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin, def migrate_vm(self, to_node, timeout=120): queue_name = self.get_remote_queue_name('vm', 'slow') return vm_tasks.migrate.apply_async(args=[self.vm_name, - to_node.host.hostname], + to_node.host.hostname, + True], queue=queue_name ).get(timeout=timeout) diff --git a/circle/vm/operations.py b/circle/vm/operations.py index a922f80..a6f7577 100644 --- a/circle/vm/operations.py +++ b/circle/vm/operations.py @@ -250,10 +250,6 @@ class MigrateOperation(InstanceOperation): to_node = self.instance.select_node() sa.result = to_node - # Shutdown networks - with activity.sub_activity('shutdown_net'): - self.instance.shutdown_net() - try: with activity.sub_activity('migrate_vm'): self.instance.migrate_vm(to_node=to_node, timeout=timeout) @@ -262,6 +258,10 @@ class MigrateOperation(InstanceOperation): self.rollback(activity) raise + # Shutdown networks + with activity.sub_activity('shutdown_net'): + self.instance.shutdown_net() + # Refresh node information self.instance.node = to_node self.instance.save() -- libgit2 0.26.0