I have also been testing block migration a bit. I see a similar issue. When you migrate a to another host, it copies without a backing file. It seems to work ok, it just loses its backing file so you end up with very large disks. It would be great to add a feature that could move the backing files for both disk and disk.local and not need to create very large files on the destination.
Vish On Sep 9, 2011, at 4:23 PM, Alex Lyakas wrote: > Hello Kei, > yes, I was doing "block_migration" and not "live_migration". > I saw two issues. > First is that I see no code that ensures that there is a backing file on the > destination (within the _base folder). Second is when I manually ensured the > base image is in the _base folder. In this case, on destination the VM came > up, but its data was corrupted. And indeed, when I asked "qemu-img info" > about the VM's image file, it did not mention that the image has a backing > file (you can see the output below). That's when I tried to change the flag > to VIR_MIGRATE_NON_SHARED_DISK, and then things were fine, but of course the > whole image got copied. > > Our environment is stock ubuntu natty 11.04 and all standard packages, > nothing special. We use the latest version of nova, we periodically merge > latest nova code. I can give you any additional details required. Can you pls > repeat the test in your environment and do 'qemu-img info' on the destination > image? > > Thanks, > alex. > > > 2011/9/9 <[email protected]> > Hello, > > Sorry for late reply. > > Hmm.. regarding to Q1 and Q2, > if you go "nova-manage vm live_migration i-xxxxxxx dest", you have to prepare > shared storage, no need to move backing file. VIR_MIGRATE_NON_SHARED_INC is > not used then. > On the other hand, n case of " nova-manage vm block_migration i-xxxxx dest", > you dont have to prepare shared storage. backing file is automatically copied > to destination, AFAIK. > The reason why default flag value is not VIR_MIGRATE_NON_SHARED_DISK is > VIR_MIGRATE_NON_SHARED_INC is stable and faster in our test environment. > > Your situation is backing file was not copied, wasnt it? I appreciate if you > tell me your environment in detail. > > Regards, > Kei > > ________________________________ > 差出人: [email protected] > [[email protected]] は Vishvananda > Ishaya [[email protected]] の代理 > 送信日時: 2011年9月9日 6:12 > 宛先: Alex Lyakas > CC: [email protected]<mailto:[email protected]> > 件名: Re: [Openstack] Questions on nova code: networking & live/offline > migration > > > On Sep 6, 2011, at 9:57 AM, Alex Lyakas wrote: > > Greetings everybody, > I have been reading the nova code (pretty close to the latest version) and I > have a couple of questions regarding it. > > Live migration: > 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). > Question 1: 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. > > live migration should have _base in shared storage so it doesn't need to > move. If you are talking about block_migration, then this could definitely > be a bug. > > Question 2: 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: > dst# qemu-img info /var/lib/nova/instances/instance-00000441/disk > image: /var/lib/nova/instances/instance-00000441/disk > file format: qcow2 > virtual size: 3.0G (3221225472 bytes) > disk size: 50M > cluster_size: 65536 > > While on the source it is backed: > src# qemu-img info disk > image: disk > file format: qcow2 > virtual size: 3.0G (3221225472 bytes) > disk size: 50M > cluster_size: 65536 > backing file: > /var/lib/nova/instances/_base/af3e133428b9e25c55bc59fe534248e6a0c0f17b > (actual path: > /var/lib/nova/instances/_base/af3e133428b9e25c55bc59fe534248e6a0c0f17b) > > again, if you are referring to block_migration, this could be a bug. > > > 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. > 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. > > add_fixed_ip_to_instance path: > 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 > info['ips'] = [ip_dict(ip) for ip in network_IPs] > entry. > (On the other hand, in LibvirtBridgeDriver._get_configurations() only the > first IP is taken from this list. ) > 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. > What is the purpose of this ability? On the instance we still see a single > network interface per each network, correct? > > tr3buchet. Comments here? Not sure there is a need to have multiple ips on > the same nic. > > Offline migration ("resize"): > 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? > > Just that no one has done it. We would love to have this supported in > libvirt. > > > Thanks everybody, > Alex. > > > _______________________________________________ > Mailing list: https://launchpad.net/~openstack > Post to : > [email protected]<mailto:[email protected]> > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp > >
_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : [email protected] Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp

