Changes between Version 1 and Version 2 of Web/VirtualMachinesMigration


Ignore:
Timestamp:
Mar 21, 2010, 11:32:36 AM (14 years ago)
Author:
loomis
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Web/VirtualMachinesMigration

    v1 v2  
    77= Data structures =
    88VMs are declared as usual, on ncm-xen and ncm-openvz components. But if we add two fields, migration is possible:
    9 
     9{{{
    1010 master : fqdn
    1111 host : fqdn
    12 
    13 <tt>master</tt> is the name of the physical machine that is expected to usually own the VM. This PM is responsible for creating the VM.
    14 <tt>host</tt> is the name of the PM where the machine must be actually running. When this changes a migration must be triggered.
     12}}}
     13`master` is the name of the physical machine that is expected to usually own the VM. This PM is responsible for creating the VM.
     14`host` is the name of the PM where the machine must be actually running. When this changes a migration must be triggered.
    1515
    1616= How it should behave =
    17 This is the pseudo-code the components should have. {{$guest}} is the VM description.
    18 
     17This is the pseudo-code the components should have. '''$guest''' is the VM description.
     18{{{
    1919 if (!$profile->contains($guest)) {
    2020    destroy($guest)
     
    2828    do_nothing();
    2929 }
     30}}}
    3031
    3132So, only the master is allowed to create a given VM. Then, a VM description is included by a pool of physical machines. The component will, as usual, check its current state and if it doesn't match with the profile, trigger the appropriate actions.
     
    3435So, suppose we have two physical machines, called Springfield and Shelbyville. And we have Homer, Marge, Bart, Lisa and Maggie hosted on Springfield. But Bart grows up (he should be 28 by now, why is he still in 3rd grade??) and there is no room for him in Springfield, so he moves to Shelbyville. Let's explain this in Pan language:
    3536Springfield city looks like this:
    36 
     37{{{
    3738 object template springfield;
    3839 
     
    4546
    4647 ...
    47 
     48}}}
    4849And Shelbyville is well aware of the existence of the Simpson family, although they don't live there.
    49 
     50{{{
    5051 object template shelbyville;
    5152 
     
    5859 
    5960 ...
     61}}}
    6062
    6163Similar, right? But now, let's describe how Bart is seen by both cities:
    62 
     64{{{
    6365 template vms/simpsons/bart;
    6466 
     
    6971     )
    7072     );
     73}}}
    7174
    7275Easy to remember: Bart is born in Springfield and lives on Springfield. Now, to trigger a migration just change the above template to this:
    73 
     76{{{
    7477 template vms/simpsons/bart;
    7578 
     
    8083     )
    8184 );
    82 
     85}}}
    8386And now, no matter where Bart was living, he will move to Shelbyville.
    8487
     
    8790
    8891= To be thought =
    89 * How to detect a scheduled downtime on a VM and avoid triggering a new VM machine creation? Perhaps we should check something on the guest's {{/system/maintenance}}?
     92* How to detect a scheduled downtime on a VM and avoid triggering a new VM machine creation? Perhaps we should check something on the guest's `/system/maintenance`?
    9093