14:01:05 #startmeeting Nova Live Migration 14:01:06 Meeting started Tue Feb 9 14:01:05 2016 UTC and is due to finish in 60 minutes. The chair is PaulMurray. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:01:07 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:01:10 The meeting name has been set to 'nova_live_migration' 14:01:16 o/ 14:01:26 hi - who is here? 14:01:29 o/ 14:01:29 o/ 14:01:34 hi 14:01:34 hi 14:02:28 o/ 14:02:45 the agenda is here: https://wiki.openstack.org/wiki/Meetings/NovaLiveMigration 14:03:19 #topic Next meeting 14:03:29 I will not be here next week 14:03:47 is there someone willing to be chair for the meeting on 16th Feb? 14:03:52 I could 14:04:04 thank you - I will put you down 14:04:08 sure 14:04:13 #info tdurakov to chair meeting on 16th Feb 14:04:22 great, that's sorted 14:04:28 in case there are some troubles I will also be able to cover 14:04:46 cool, will ping you if any happens 14:04:49 ok - thanks pkoniszewski 14:04:52 #topic Priority reviews 14:05:11 the feature freeze is three weeks away I think 14:05:20 but we are starting to get some movement 14:05:34 split-network-plane-for-live-migration is complete 14:05:54 pause-vm-during-live-migration only needs +W on last patch 14:06:28 pausing needs API approval 14:06:33 abort-live-migration has started to get some patches up (well, one) 14:06:52 ...yet but I am working on the big one 14:06:58 s/yet/yes 14:07:19 pkoniszewski, mikal asked for alex_xu or similar to approve - I think it will be done pretty soon 14:07:52 block-live-migrate-with-attached-volumes is making good progress 14:08:03 dan +2 first patch 14:08:27 I think pkoniszewski is going to update second 14:08:32 pkoniszewski, ? 14:08:53 #link https://review.openstack.org/#/c/234659 - needs minor revision 14:09:03 so I'm working actually on second patch as I'm not sure that there is an issue 14:09:29 is that the one ^^ 14:09:43 I'm sure that we want to skip config drive ISO because destination host will try to write to readonly device which is not a good idea at all 14:10:02 now I'm checking what happens if other readonly device is attached to VM 14:10:14 which is not config drive 14:10:34 hmmm, did no one think of that? 14:10:53 we used to migrate the config drive in HP 14:11:06 I think we did it differently though - paul-carlton2 can you remember? 14:11:26 PaulMurray, was it block-migrate? 14:11:44 tdurakov, that's what I am trying to remember 14:11:46 We copied config drive over rcp 14:11:58 prior to migration? 14:12:04 yep 14:12:05 right, which we don't want to do 14:12:15 same for rescue libvirt xml 14:12:29 nope, not the upstream way forward 14:13:12 I thought qemu could handle fat config drives ? so it must have worked at some point ? 14:13:23 well, config drive works fine 14:13:28 in current implementation 14:13:53 ah, now I recall, we made config drives vfat which copied ok 14:14:08 ah 14:14:08 right, they are not readonly 14:14:22 I see 14:14:28 paul-carlton2, they works fine 14:14:48 Yep we got it to work, but using a local patch 14:14:51 I think 14:15:16 can't libvirt copy config drives 14:15:19 afair vfat works in upstream well too for block-migrate 14:15:32 pkoniszewski, so just to check - vfat config drives already migrate - its only the iso format that is blocked 14:15:44 so the issue affects only iso9600 14:15:52 that's why that readonly conditional was there 14:16:06 the one danpb commented on 14:16:31 surely at libvirt/qemu level it should be able to copy any disk device it is told to 14:16:52 otherwise a readonly device could not be created? 14:17:07 qemu doesn't create it 14:18:06 pkoniszewski, what did it mean when iso9600 support was added 14:18:22 let me find libvirt release note for this 14:18:45 ok - lets move this discussion to the patch and move on 14:18:54 or we wont finish the meeting 14:19:26 the next spec was live-migration-progress-report 14:19:33 http://lists.openstack.org/pipermail/openstack-dev/2016-February/085662.html 14:19:54 did this ML thread resolve the write to db question? 14:20:02 i think so 14:20:20 I wasn't sure if there was an actual conclusion 14:20:45 heh, I'd prefer to do this reporting online instead of db writes) 14:20:53 still 14:21:12 I think that we will be able to change this once migration progress is saved on compute side 14:21:41 what do you mean by "saved on the compute side"? 14:22:09 tdurakov, I disagree the compute process should update db and api calls should get it form there 14:22:29 johnthetubaguy, it's about conductor and compute communication refactoring, i believe 14:22:32 that is how it is done everywhere in openstack, certainly in nova 14:22:39 johnthetubaguy: during midcycle Nikola had some concerns that in case that compute dies it will need to have data saved locally 14:22:51 johnthetubaguy: to recover migration process/cleanup/whatever 14:23:03 yes, thats in addition, not instead of 14:23:20 That is a separate issue to the progress reporting 14:23:27 thought we can use it for reporting progress online 14:23:40 anyways, I think we should keep the nova architecture the same here, at least until we find a real issue folks are hitting 14:23:55 Long term, the db doesn't seem like the best place for this. If the compute is eventually going to have this information, api can directly query the compute because it has an rpc address. 14:23:56 pkoniszewski: in summary, we can't, the API reads from the DB only 14:24:06 johnthetubaguy: got it 14:24:10 yeah, lets no go there for now 14:24:32 that's reasonable, i'd stick to writing progress every 5 seconds 14:24:48 ok, let's move on then 14:24:50 but current implementation does not reset it anywhere 14:25:06 so i have completed migrations with disk and memory to be transferred, which is weird 14:25:41 the API shouldn't be showing progress info for not in progress things, so I am not sure its a big issue 14:26:03 well, currently it can show that VM is paused with a progress of 92% 14:26:07 johnthetubaguy: how about for things that were interrupted? 14:27:13 a migration should be running, completed, cancelled or in error - only one of those needs progress report ? 14:27:35 I'd count paused as running 14:27:42 rdopiera: same, once the interruption is spotted, but really I just mean we can clean up that stuff later 14:28:02 PaulMurray: that sounds correct 14:28:08 johnthetubaguy: it could be useful to know where it finished for cleaning up 14:28:20 rdopiera: maybe 14:28:25 johnthetubaguy: where it was interrupted, I mean 14:28:30 rdopiera: +1 14:28:39 rdopiera, isn't that covered by its state? 14:28:46 the current monitor code dan write calculates the progress every 5 seconds so it will be updated 14:28:56 PaulMurray: non-zero progress is in interesting data point though 14:28:57 PaulMurray: the state is very large grained 14:29:17 progress should be reset to zero when migration ends, be it good or bad outcome 14:30:22 paul-carlton2: sure, but the API should not report any progress unless its running, so its a nit really 14:30:37 johnthetubaguy, pkoniszewski so I think we concluded to write every 5 seconds 14:31:08 lets move on 14:31:15 The api as in nova show reports progress all the time 14:31:26 I mentioned auto-converge on the agenda 14:31:40 could be zero, should be zero unless live mig or snapshot in progress 14:31:41 but I think that is out of scope because it didn't have an approved spec 14:32:05 PaulMurray: and it needs newer libvirt, even for a config flag, so let's skip it 14:32:29 pkoniszewski, right, it was on the priority reviews pad so I'm going to remove it 14:32:32 just got confused 14:32:48 sure, go ahead, i forgot to remove it 14:32:55 #topic Bugs 14:33:14 if we are referring to the new data counters they should be left as is on completion since it may be useful to se how far it got when it stopped/completed and how much data it copied 14:33:28 paul-carlton2, we've moved on 14:33:35 paul-carlton2: yeah, thats what I mean API returns zero if not in progress, regardless of DB, but yeah, lets move on 14:34:00 there are 4 new bugs for triage 14:34:03 https://bugs.launchpad.net/nova/+bugs?field.tag=live-migration+&field.status%3Alist=NEW 14:34:21 I don't know who is doing the triage but well done to them :) 14:34:47 I moved some of the bug patches around in the priorities pad 14:34:52 because several were stale 14:35:14 the rest have had some review and updates recently 14:35:38 Does anyone have any questions ? 14:36:00 johnthetubaguy, do you have any comments on bugs - we don't do a great job of turning those over 14:36:08 about this one: https://bugs.launchpad.net/nova/+bug/1526642 - it's possible to break anti-affinity rules by providing dest host, right? 14:36:10 Launchpad bug 1526642 in OpenStack Compute (nova) "Simultaneous live migrations break anti-affinity policy" [Undecided,New] 14:36:35 PaulMurray: only that once reviews are ready, lets get them in that etherpad, like the other patches 14:36:35 tdurakov: no, scheduler breaks anti-affinity policy 14:36:49 bauzas: ^^^ 14:36:50 PaulMurray: having a set of stuff you want in mitaka would be no bad thing 14:36:54 tdurakov: in case of parallel scheduling it might cause rescheduling and instances are spawned on the same host 14:36:56 anti-affinity is checked for boot 14:37:00 in claims code 14:37:12 so if you get a claim you got anti-affinity 14:37:17 its easier than affinity 14:37:20 PaulMurray: there were a heap of buts in the tracker that seemed to be fixed by upcoming blueprints, those are working commenting on, any maybe changing the status somehow 14:37:28 pkoniszewski, if you got aa policy and manually pick up dest node that breaks rules? 14:37:41 tdurakov: if you force, yes 14:37:53 I think force is allowed to break rules 14:37:57 it overrides 14:38:08 yes, thinking about migrating one host to a new host 14:38:13 there will be a check destinations coming 14:38:13 yep, it doesn't asks scheduler 14:38:15 you need to move each VM one by one 14:38:31 so you actually have to break affinity = true rules while you do the move 14:38:45 * johnthetubaguy mutters something about great power and great responsibility 14:38:45 * bauzas lurks 14:38:50 johnthetubaguy, yes, true - I was thinking about that the other day 14:39:17 only moving whole host to whole host works for these kind of policies 14:39:21 bauzas: Discussion was around anti-affinity during live-migration https://bugs.launchpad.net/nova/+bug/1526642 14:39:22 Launchpad bug 1526642 in OpenStack Compute (nova) "Simultaneous live migrations break anti-affinity policy" [Undecided,New] 14:39:31 now eventually, we could do some fancy stuff to work around that, but lets just get it working first 14:39:32 so, server groups is checked in a semaphore in the compute manager AFAIR 14:39:46 actually, I wrote that in Kilo 14:39:48 bauzas, yes, in claims 14:40:21 PaulMurray: probably, I don't remember in which caller I made that 14:40:24 bauzas: force needs to break these rules quite a few times, and thats the idea, basically 14:40:49 johnthetubaguy: it breaks rules even without force 14:41:13 mmm 14:41:35 same for affinity rules 14:41:36 it would add another level of verification 14:41:40 but fair 14:41:52 for the moment, we don't provide the Spec object to the compute manager 14:42:03 so, there is no way for it to know whether it was forced or not 14:42:05 anyway 14:42:17 I'm discussing about a non-implemented BP 14:42:45 we can look at this more later 14:43:07 anything else on bugs? 14:43:46 #topic open discussion 14:43:58 the floor is open for anything else? 14:44:04 I noticed there is movement 14:44:15 Libvirt storage pools isn't going to happen by the end of the month 14:44:16 on ploop support for storage groups in libvirt 14:44:35 er, storage pools 14:44:48 I talked to paul-carlton2 the other day, and there's basically 1 preparatory patch I'd like to get in Mitaka 14:45:03 Which would make it easier to migrate between backend storage schemes in Newton 14:45:15 do you have a link yet? 14:45:21 review 14:45:27 or is it coming 14:45:48 I haven't written it, yet, because I was trying to get there in order. However, I may bodge something out of order for expediency. 14:46:19 we have less than 3 weeks I think 14:46:25 Basically, we have a file, disk.info, which currently stores information about which file format a particular disk is using. 14:46:36 I want to change it to be able to store more than that 14:46:44 For example, which backend it's using. 14:46:59 However, the file is on shared storage 14:47:07 So it needs to be able to co-exist with N-1 14:47:25 I'd like to change the parser in M to understand the format I intend to use in N 14:47:33 And not barf 14:47:35 pkoniszewski: today, yes I think it does break that, thats what bauzas's blueprint is trying to fix 14:48:19 In the meantime, I will continue trying to get there more cleanly. 14:48:22 mdbooth: why not start reporting the new stuff now, but only use the new data later? 14:48:42 johnthetubaguy: It's a JSON file mapping disk -> format 14:48:58 I want it to map disk -> {lots: of, new: things} 14:49:34 Also, if I changed the format now, it would break compatibility with Liberty 14:49:43 mdbooth: oh, I see, you need to reader to support both before you use both 14:49:48 If Liberty and Mitaka computes are on the same shared storage 14:49:55 Yeah 14:49:56 mdbooth: thats testable quite easily, so that should be OK 14:50:37 mdbooth: or just add an additional file? and eventually delete the old one, but that does seem wasteful 14:50:54 don't want to hit filesystem limits because of that 14:50:59 I hoped at one point that the file was redundant, but it turns out it's not 14:51:10 So I figured I'd just co-opt it 14:51:41 Also, it already took the best name ;) 14:53:37 mdbooth, when you've figured out what you need to land in mitaka you can let us know and we will try and push it 14:53:57 PaulMurray: Sure. 14:54:12 mdbooth, thanks 14:54:30 anything else? 14:54:52 PaulMurray: Amongst other things, it will allow us to know which instances have been moved from the legacy scheme to libvirt storage pools. 14:55:53 mdbooth, are you going to negotiate that between hosts or does it end up in the db? 14:56:04 when it comes to a migration I mean? 14:56:12 It's on disk on the compute. 14:56:39 It uses instance storage, which makes most sense. 14:57:03 The other advantage of using the existing file, is that current code should expect it to exist. 14:57:27 So fewer dependent changes. 14:57:46 I get it, 14:57:51 * mdbooth assumes this file would be copied over during non-shared storage migration, for eg 14:58:29 we're coming to the end of the meeting now 14:58:48 surely it would be created by the dest compute node, not copied? 14:59:04 tdurakov, or pkoniszewski if anything goes wrong for tdurakov 14:59:14 paul-carlton: Wouldn't surprise me, but that would be a bug. 14:59:18 will chair next meeting ^^ 14:59:24 we have to close 14:59:30 bye all - and thanks for coming 14:59:31 bye 14:59:33 byr 14:59:34 #endmeeting