Earlier  
Posted Nick Remark
#openstack-nova - 2022-05-10
08:40:59 sean-k-mooney no we dont
08:41:22 sean-k-mooney that woudl only be an issue if and only if we have cinder voluems and dont allow cross az attach
08:41:34 sean-k-mooney in which case it will fail to unshelve
08:41:38 bauzas we change what end users see
08:41:46 sean-k-mooney at there request
08:42:02 bauzas and we changed what they originally requested
08:42:02 sean-k-mooney its ok to change what az they see if they explictly ask you to change that
08:42:14 sean-k-mooney yes because they ask us too
08:42:28 sean-k-mooney for unshelve to host we have 3 options
08:42:44 sean-k-mooney 1 make it an error if the az of the host does not match the current az
08:43:05 sean-k-mooney 2 allow both az an host to be passed and ensure the host is in the az that is pass but allow the az to change
08:43:36 sean-k-mooney 3 accpet az or host mutlally exclusivly and implictly update the az if the host is in a different az
08:43:48 sean-k-mooney the spec currelty sates option 3
08:44:04 sean-k-mooney gibi: ^ this is the az issue i mentioned yesterday by the way
08:44:50 gibi yepp, so I'm OK with option 3
08:44:56 sean-k-mooney bauzas: all 3 of those behavior are valid i woudl argue that 1 is rather unfrendly ux 2 and 3 are actully my preference
08:45:33 bauzas sean-k-mooney: problem with option 3 is that we're changing the constraints
08:45:44 bauzas sean-k-mooney: correct me if I'm wrong
08:45:46 bauzas ,
08:46:02 bauzas user created inst1 with 'sbg4' az
08:46:11 bauzas sbg4 went on fire
08:46:21 bauzas (or rather bad example
08:46:32 bauzas user shelved inst1
08:47:04 bauzas now, op wants inst1 in hostB which is on rbx1 AZ
08:47:27 bauzas he will unshelve to hostB
08:47:40 bauzas inst1 will now have requestspec.az to be None
08:48:06 bauzas which means that inst1 could be later moved to any AZ, including rbx2 for example
08:48:36 bauzas that's the problem I see
08:50:07 kashyap Can anyone please post the output of this in a pastebin?
08:50:13 kashyap virsh domcapabilities | xmllint --xpath "//cpu/mode[@name='host-model']" -
08:50:14 sean-k-mooney bauzas: yep you miss understand what we are proposing
08:50:47 kashyap (I'm assuming your host is not a Leonov T470s)
08:50:53 bauzas sean-k-mooney: perhaps, I need to understand then more your point
08:50:55 Uggla bauzas, I think so as well. But specifying the az in a unshelve to host request spec may fix this problem but I have not tested it yet.
08:51:07 sean-k-mooney bauzas: when we change az the requestspec.az will be set to rbx1 if and only if the requestspec.az was previously not None
08:51:32 bauzas sean-k-mooney: then this is a breaking change too
08:51:50 sean-k-mooney bauzas: that what we do with unshleve pasing an az
08:51:51 bauzas sean-k-mooney: if ReqSpec.az was None before, instance was able to float across AZs
08:52:16 sean-k-mooney bauzas: right so we only upsate requestspec.az if it was not None
08:52:26 gibi kashyap: https://paste.opendev.org/show/bxPqOPQm7kvKqNhDcdp6/
08:52:27 bauzas I'm confused
08:52:29 sean-k-mooney if its None we leave it none
08:52:58 sean-k-mooney bauzas: ok maybe we need a worked example in the spec.
08:53:08 sean-k-mooney let me create an etherpad quickly and add one
08:53:26 bauzas sean-k-mooney: there are only two cases we need to consider
08:53:35 sean-k-mooney https://etherpad.opendev.org/p/unshelve-to-host
08:53:37 bauzas 1/ reqspec.az was nonez
08:53:39 kashyap gibi: Thank you! (I'm curious, what is your host?)
08:53:47 bauzas 2/ reqspec.az != Nonz
08:54:14 gibi kashyap: https://paste.opendev.org/show/boLIfNJaksQMBL4ArQNs/
08:54:20 bauzas for 1/, this is a simple scenario : instance can float, hence we don't care and we shouldn't change it
08:54:41 bauzas since the user didn't specific a AZ, we're free to pick any host
08:55:02 bauzas for 2/, reqspec.az = 'sbg4' for example
08:55:24 bauzas then, op transfers it to hostB which is 'rbx'
08:55:28 bauzas what assumtion should we do ?
08:56:09 kashyap gibi: Thanks :)
09:06:33 bauzas sean-k-mooney: I see you writing
09:06:39 bauzas :)
09:07:04 bauzas Uggla: don't be afraid, but we're possibly redesigning the whole API
09:07:37 bauzas sean-k-mooney: I like the idea to use the AZ parameter to specify whether you want the instance to stick with that AZ
09:07:58 bauzas sean-k-mooney: but I'm afraid this could be errorprone
09:08:11 bauzas this is about to be a confusing API
09:09:01 sean-k-mooney bauzas: so i think Uggla went with option 3 or case 2.3 to avoid that confusion
09:09:54 sean-k-mooney by makeing the az update we fulfile there request by moving the instance to the requested host and make the az consitnet if the vm was previously pinned
09:09:59 bauzas sean-k-mooney: maybe, I just feel we need to be super-explicit on what will happen to the instance
09:10:13 sean-k-mooney yes we do
09:10:36 sean-k-mooney its should be agreed in the spec.
09:10:44 sean-k-mooney so of the 3 options which is your preference
09:10:49 bauzas I turned to -1 unfortunately
09:11:03 bauzas sean-k-mooney: I like the KISS principle for our APIs
09:11:28 bauzas and I don't want us to do a lof of conditionals based on parameters values
09:11:28 sean-k-mooney bauzas: the shelve api is the supported way to move between AZs today
09:12:05 bauzas sean-k-mooney: I got your point, I just want us to agree on what would be the RequestSpec.AZ value once the unshelve is made
09:12:19 sean-k-mooney yep
09:12:30 bauzas sean-k-mooney: I was +2 on the fact we were breaking the AZ contract when unshelving
09:12:40 sean-k-mooney we had asked for that to be added to the spec in a previous revision
09:13:00 bauzas sean-k-mooney: I'm -1 on the fact we don't explain what will happen to the instance for the next move operations after the unshelve
09:13:15 sean-k-mooney bauzas: Uggla updated the spec but did not explcitly state it. there was a -1 form dansmith on this topic previously
09:14:30 sean-k-mooney bauzas: not i have not review th latest revision so i assume it is still missing if so then -1 is totally fair since this is still unadressed
09:17:13 bauzas sean-k-mooney: new revision only says the instance will be moved to the host, whatever the current AZ is.
09:17:30 sean-k-mooney https://review.opendev.org/c/openstack/nova-specs/+/831506/1..3/specs/zed/approved/unshelve-to-host.rst#b69=
09:17:40 bauzas but I guess Uggla didn't know the whole semantics of this RequestSpec.AZ field
09:17:41 sean-k-mooney bauzas: yep i revived the previous comment thread
09:18:29 bauzas sean-k-mooney: Uggla said the existing method unpins the AZ
09:18:53 bauzas leaving the instance freefloating
09:19:05 sean-k-mooney when you do unshelve --az az2 it sets requestspec.az to None?
09:19:10 bauzas no
09:19:21 sean-k-mooney oh when you do --host
09:19:24 sean-k-mooney it set it to noe
09:19:29 sean-k-mooney *None
09:19:39 bauzas yup
09:19:41 bauzas the latter
09:19:53 sean-k-mooney ya so that is not right in my view
09:19:57 bauzas for --az, we currently pin it to the target AZ AFAICR
09:20:09 sean-k-mooney its ok for the schduling request but the AZ should not get nuked in the request spec
09:20:12 bauzas but this is also debatable
09:20:36 bauzas unshelve --az shouldn't pin to the target AZ if the instance was formerly freefloating
09:20:45 sean-k-mooney correct
09:20:58 sean-k-mooney it should maintain the sematics it was booted with
09:21:04 bauzas yup

Earlier   Later