| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2024-09-23 | |||
| 09:27:54 | bauzas | when you shelve, IIUC, you'll get a memory snapshot | |
| 09:28:36 | bauzas | sorry, a disk snapshot I mean | |
| 09:28:45 | bauzas | but the memory will be lost | |
| 09:30:08 | parasitid | bauzas: ok. couldn't the shelve process consider the VM state and also backup/restore the memory state file if ever the instance was in suspended state ? | |
| 09:32:02 | bauzas | I see your usecase tbc | |
| 09:32:42 | bauzas | but the problem here is that for the moment, AFAIK nova isn't able to save the memory | |
| 09:32:49 | parasitid | bauzas: usecase would be VDI/remote desktop | |
| 09:32:54 | bauzas | yup, I got it | |
| 09:33:18 | bauzas | that's in general *why* people want to save the memory :D | |
| 09:34:49 | parasitid | bauzas: are you sure ? i made a test this morning. when i suspend an instance and resume it, i can ssh back into my instance and tmux attach to my session and recover the vim buffer right where is was before suspending | |
| 09:34:49 | bauzas | honestly, I don't know what to tell you, except that it would need a new feature | |
| 09:35:20 | bauzas | suspend works indeed with the memory, but we don't snapshot it | |
| 09:35:31 | bauzas | that's why I said above "snapshot it" | |
| 09:35:39 | parasitid | bauzas: ok thanks. i understand perfectly. i jumped here just in case there would be a secret tip to achieve this :) | |
| 09:35:47 | bauzas | but your usecase is different : you want to /persist/ it | |
| 09:36:07 | bauzas | tbh, VMware supports that AFAIKK | |
| 09:36:18 | bauzas | (memory snapshot) | |
| 09:36:34 | bauzas | but as I said here, we need some new feature and some new API support for it | |
| 09:36:36 | bauzas | sean-k-mooney: ^ | |
| 09:38:30 | bauzas | (that and live-resize are possibly the most needed features we'd like to have for VMware migration :) ) | |
| 09:39:40 | bauzas | sean-k-mooney: I wonder, could we help parasitid with file-backed memory? | |
| 09:41:08 | bauzas | (oh I forgot, sean is on PTO this week) | |
| 09:43:31 | sean-k-mooney[m] | we have talked about this in the past, libvirt can do memory snapshots but we can because we do not guarantee a stable hardware interface | |
| 09:44:36 | sean-k-mooney[m] | when you unshleve you might shelve to a differnt host with differnent cpu, the pci device order in the guest may or may not be the same and if you have any sriov device there memory would not be captured | |
| 09:46:32 | sean-k-mooney[m] | we may be able to make it work in some cases but we would have to save and store the memory as an addtional image and also might need to recored other info about the guest like the pci device ids instead of allowing libvirt to choose them | |
| 09:47:08 | sean-k-mooney[m] | but no file backed memory will not help here. libivrt has a call to take a snapshot and include the guest memory | |
| 09:47:17 | sean-k-mooney[m] | so its not that we cant do that | |
| 09:48:55 | gibi | yeah shelve with memory would be like: hibernate your guest, write the image to disk, bring the image to another hardwared, and try to resume from hibernation. As far as I know if I change my hardware while my machine is hibernated and I try to resume I very well be in kernel panic territory | |
| 09:49:09 | sean-k-mooney[m] | for instances with no passthough devices like neurton sriov ports, or vgpus that use cpu_mode=custom and a pinned cpu model it proably would work | |
| 09:50:16 | gibi | wondering what restiction libvirt puts on resuming from memory snapshot while the hypervisor is reconfigured inbetween | |
| 09:50:37 | sean-k-mooney[m] | yep, so if there there was a strong demand for this, we could consider it but its very non cloudy, but it is an enterpirse virt feature | |
| 09:51:57 | gibi | If I have to choose what to spend time on between live-resize vs shelve with memory, then the former feels a more generally useful feature | |
| 09:52:28 | gibi | (and both is hard) | |
| 09:53:07 | sean-k-mooney[m] | the former is more cloudy | |
| 09:53:37 | sean-k-mooney[m] | shelve with memory is definetly in the enterpise virt space | |
| 09:56:24 | bauzas_ | I agree with the fact there are some technical constraints and limitations | |
| 09:56:54 | sean-k-mooney[m] | anyway yes im on pto this week so totally not going back to working on my home lab. | |
| 09:56:57 | gibi | it is more like we don't seem to know the list of constraints, and coming up with one is not simple | |
| 09:57:05 | bauzas_ | but the usecase written as "as a VDI user, I'd like my instance to be shelved with its memory so I can spin again my instance without problems" sounds a valid cloud usecase for me | |
| 09:57:18 | gibi | sean-k-mooney[m]: enjoy your PTO | |
| 09:57:22 | sean-k-mooney[m] | VDI its selef is iffy | |
| 09:58:04 | gibi | bauzas_: in a cloud we run cattle. | |
| 09:58:14 | sean-k-mooney[m] | im open to looking at this again but to be clear we have said no to this exact usecase once before and snapshot with memory once also | |
| 09:58:33 | sean-k-mooney[m] | shevle with memory i think is actully more reasonable then generic snapshot with memory | |
| 09:58:34 | bauzas_ | if you prefer, someone running a instance with virtual desktop capabilities | |
| 09:59:13 | bauzas | or there could be other workloads where saving the memory would be more than just nice | |
| 09:59:39 | bauzas | but there are security implications for sure, we'd need to keep the memory safe | |
| 09:59:49 | gibi | bauzas: I still reject the idea that this is cloudy. In a cloud you should be ready to loose a single VM any time. | |
| 09:59:52 | sean-k-mooney[m] | yep you just need to reconsile the fact that we provide no abi stablity for the guest. | |
| 10:00:10 | sean-k-mooney[m] | meaning if you add 2 volumes and remove 1 | |
| 10:00:23 | bauzas | gibi: well, that ship has already sailed for a while :( | |
| 10:00:36 | gibi | sean-k-mooney[m]: yeah we can promise that we restore your memory but we cannot promise the guest kernel wont panic | |
| 10:00:46 | sean-k-mooney[m] | the first one, then the next time we generte the xml the remaining voluems pci adress will change | |
| 10:01:04 | bauzas | while I'm one of the most feroceous guys that say 'sorry, cloud', I tend to admit that /some/ workloads require more care | |
| 10:01:07 | gibi | bauzas: we can try to stop on that slippery slope :) | |
| 10:02:08 | sean-k-mooney[m] | we can add this to the list of things people want but i would port vtpm live migration higher personally | |
| 10:02:13 | bauzas | gibi: and ask the foundation to remove the Vmware migration to OpenStack whitebook ? :) | |
| 10:02:27 | gibi | unshelve with memory is like a brain transplant while you expect not just the patient to survive but also to keep all its past memories. | |
| 10:02:28 | sean-k-mooney[m] | this is notthign to do with vmware | |
| 10:02:43 | sean-k-mooney[m] | we have a vmware direver and they never cared to enable this usecase | |
| 10:03:06 | sean-k-mooney[m] | we have disucss this in an inperson ptg before | |
| 10:03:11 | sean-k-mooney[m] | so this is an old request | |
| 10:03:17 | gibi | bauzas: just because the fundation say so brain transplant will not work out of the boz | |
| 10:03:18 | bauzas | doesn't vsphere support snapshoting the memory ? | |
| 10:03:20 | gibi | x | |
| 10:03:35 | bauzas | I like the idea of "brain transplant" | |
| 10:03:38 | sean-k-mooney[m] | it does but it does not do it as part of shelve | |
| 10:03:53 | bauzas | but this is more live neurolinks transplants | |
| 10:04:18 | bauzas | I can consider the brain as disk while the neurotransmitters are the RAM :) | |
| 10:04:29 | sean-k-mooney[m] | libvirt, hyperv and vmware all can do this (so can virtual box) but none of them ever enabled it in there virt driver | |
| 10:05:14 | gibi | the disk content goes through a full kernel boot process with hw probing etc, the resume from ram tries to continue exectuing where it left of without a boot process | |
| 10:06:35 | bauzas | then why shelve w/ memory would be more acceptable than snapshot w/ memory ? | |
| 10:06:45 | bauzas | shit | |
| 10:06:51 | gibi | I think we can ask the libvirt folks how do you feel about moving the libvirt memory snapshot, disk, and domain def to another compute and try to resume, if they say they support it then lets discuss further | |
| 10:07:24 | bauzas | sorry, I said "shit" because I was trying to understand exactly the diffs with suspend | |
| 10:08:19 | bauzas | gibi: again, I don't have the energy nor the will to push that more forward, I was just saying that the usecase may sound legit | |
| 10:08:51 | bauzas | let's not rathole on it, the answer is as of now "NOT SUPPORTED" | |
| 10:09:23 | gibi | as legit as requesting a brain transpart. legit but pointless if the tech is not there | |
| 10:10:18 | bauzas | the tech already allows us teleportation :) | |
| 10:10:41 | bauzas | but I hear ya | |
| 10:10:59 | bauzas | that would be an horrible spec to write and a terrible spec to review | |
| 10:11:28 | gibi | if teleportation you mean live-migration then yes libvirt has a bunch of tech implemented to support that, I'm not sure they have the tech to support brain transplant yet. | |
| 10:14:04 | gibi | btw that points to a direction actually. instead of shelving with a memory snapshot, do memory snapshot on the current hypervisor. The resume is supported there on the same hypevisor. I think the requesting people do not need the move aspect of shelve, they need the resumability only. So give them way to resume on same hypevisor | |
| 10:15:44 | gibi | wait we have that, they just get billed as they reseve the space to be able to resume | |
| 10:16:10 | gibi | so they don't want to get billed, but still want to make sure they can resume in place, that is contradicting | |
| 10:16:39 | gibi | or at least we are moving to interrutible instances territory to make space for resume | |
| 10:17:11 | gibi | (or what was the name of that feature that allows killing certian type of instances to make space for reservations) | |
| 10:18:43 | gibi | I guess I stop braindumping here as it is not exciting :) | |
| 11:06:56 | sean-k-mooney[m] | the reason shelve is more ligit then snapshot is it removes the snapshot once and create many copies uescase adn it also removes restore via rebuild | |
| 11:08:02 | sean-k-mooney[m] | so shelve/unshelve is much smaller in scope and has less sharp edges as a result | |
| 11:10:35 | sean-k-mooney[m] | gibi the reason sususped (which calls managed save) works today is we still have the domain so we can still restore it without worriing about the xml changing, managed save also does not allow pci passthough devices to be attached to the domain | |
| 11:12:11 | sean-k-mooney[m] | if i was to do shelve with memory my instict would say, save the xml and the memory as addtional images and reuse some of the live migraton logic to update the host side for it xml without modifying the guest visible side | |
| 11:12:51 | sean-k-mooney[m] | the same host does not really matter as long as the guest cant tell it moved | |
| 11:32:35 | gibi | sean-k-mooney[m]: I agree, move does not matter to the user if the instance works. I just pointing out that they also never requested the move, they only requests having a place to resume to but not getting billed for that place while suspended. | |
| 11:33:42 | gibi | btw having a vtpm live migration indeed seems even more important to get | |
| 11:35:06 | sean-k-mooney[m] | i mainly mentioned vtpm as another example of needing to store addtinoal data alongside the disk when shelving which we dont support today | |
| 11:35:44 | sean-k-mooney[m] | but also it a higher priority in my book but both are parralel efforts | |
| 11:37:14 | parasitid | hi gibi: i think i get you're point but there are still lots very obscure stuff to me because i'm definately not a specialist of this topic. When you say: "so they don't want to get billed, but still want to make sure they can resume in place, that is contradicting" why wouldn't it be possible to be resumed on a host supporting the same "flavor" ? why does it work in case of live migration and not unshelving ?. And yes i wouldn't | |
| 11:38:05 | parasitid | gibi: i just want to maximize the fact of being "resumable" but lowering the No Valid Host found error | |
| 11:40:03 | parasitid | btw, i didn't want to hijack your backlog by introducing this topic, i only wanted to know if there was a hidden feature/tips to achieve it. as it seems that its not currently supported im fine with it. don't worry. | |