<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt">
<DIV>Greetings everybody,</DIV>
<DIV>I have been reading the nova code (pretty close to the latest version) and 
I have a couple of questions regarding it.</DIV>
<DIV> </DIV>
<DIV><STRONG>Live migration:</STRONG></DIV>
<DIV>I see that VIR_MIGRATE_NON_SHARED_INC flag is used, meaning that at 
destination, the same backing file should be available. (Indeed, the images that 
are created for instances use backing files in '_base' folder).</DIV>
<DIV><U>Question 1:</U> how it is ensured that the backing file on the 
destination really exists? I.e., '_cache_image' has to be called there for the 
same image. It looks like this is not ensured at all. If the same image was 
never spawned earlier on destination, the backing file will not exist there. I 
verified this and indeed there was no backing file on the destination.</DIV>
<DIV><U>Question 2:</U> even when the backing file does exist, the image created 
at the destination looks incorrect, it is not using the backing file! When 
querying the file on the destination, after live migration, I don't see that 
it's backed by the cached file:</DIV>
<DIV><FONT face="Courier New">dst# qemu-img info 
/var/lib/nova/instances/instance-00000441/disk</FONT></DIV>
<DIV><FONT face="Courier New">image: 
/var/lib/nova/instances/instance-00000441/disk</FONT></DIV>
<DIV><FONT face="Courier New">file format: qcow2</FONT></DIV>
<DIV><FONT face="Courier New">virtual size: 3.0G (3221225472 bytes)</FONT></DIV>
<DIV><FONT face="Courier New">disk size: 50M</FONT></DIV>
<DIV><FONT face="Courier New">cluster_size: 65536</FONT></DIV>
<DIV> </DIV>
<DIV>While on the source it is backed:</DIV>
<DIV><FONT face="Courier New">src# qemu-img info disk</FONT></DIV>
<DIV><FONT face="Courier New">image: disk</FONT></DIV>
<DIV><FONT face="Courier New">file format: qcow2</FONT></DIV>
<DIV><FONT face="Courier New">virtual size: 3.0G (3221225472 bytes)</FONT></DIV>
<DIV><FONT face="Courier New">disk size: 50M</FONT></DIV>
<DIV><FONT face="Courier New">cluster_size: 65536</FONT></DIV>
<DIV><FONT face="Courier New">backing file: 
/var/lib/nova/instances/_base/af3e133428b9e25c55bc59fe534248e6a0c0f17b (actual 
path: 
/var/lib/nova/instances/_base/af3e133428b9e25c55bc59fe534248e6a0c0f17b)</FONT></DIV>
<DIV> </DIV>
<DIV>And indeed, on destination, when I log in into the VM, its image disk is 
corrupted. Various tools like 'less','vi',sudo' fail to run.</DIV>
<DIV>When I changed the flag to VIR_MIGRATE_NON_SHARED_DISK, then the whole 
image was copied, and this time the instance on the destination was fine. So it 
looks there is some bug on that path when using VIR_MIGRATE_NON_SHARED_INC 
flag.</DIV>
<DIV> </DIV>
<DIV><STRONG>add_fixed_ip_to_instance path:</STRONG></DIV>
<DIV>From the code it looks like per each network, an instance has exactly one 
virtual interface, meaning exactly one MAC address. However, it looks like this 
is possible to have multiple fixed_IPs per same virtual_interface. This is 
reflected in NetworkManager.get_instance_nw_info(), when adding the </DIV>
<DIV><FONT face="Courier New">info['ips'] = [ip_dict(ip) for ip in 
network_IPs]</FONT></DIV>
<DIV>entry.</DIV>
<DIV>(On the other hand, in LibvirtBridgeDriver._get_configurations() only the 
first IP is taken from this list. )</DIV>
<DIV>Although I see that NetworkManager._setup_network() is called on that path, 
and even generates a new MAC address (in case of FlatDHCP), but a new 
virtual_interface is not created. </DIV>
<DIV>What is the purpose of this ability? On the instance we still see a single 
network interface per each network, correct?</DIV>
<DIV> </DIV>
<DIV><STRONG>Offline migration ("resize"):</STRONG></DIV>
<DIV>I see that when using libvirt, this path is not implemented; it is 
implemented only for Xen. It looks like the following methods need to be 
implemented: migrate_disk_and_power_off() & finish_migration(). Is there any 
special reason for not implementing those methods with libvirt?</DIV>
<DIV> </DIV>
<DIV>Thanks everybody,</DIV>
<DIV>  Alex.</DIV>
<DIV> </DIV>
<DIV> </DIV></DIV></DIV></BODY></HTML>