| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2024-02-21 | |||
| 13:51:42 | sean-k-mooney | the share can stay in attached/in-use | |
| 13:51:48 | sean-k-mooney | the instance action should be in error | |
| 13:52:00 | sean-k-mooney | oh actully | |
| 13:52:08 | sean-k-mooney | detach is not an instance ac tion n the normal case | |
| 13:52:17 | sean-k-mooney | do we have an instnace action event for detach | |
| 13:53:02 | sean-k-mooney | if we are going t oboot the vm with the share attached then the share attachemnt state should not be error | |
| 13:53:07 | Uggla | sean-k-mooney, yes there will have an instance action for detach. | |
| 13:53:11 | bauzas | Uggla: I need to look again at the spec then | |
| 13:53:16 | sean-k-mooney | ack then ya only that need to go to error | |
| 13:53:28 | sean-k-mooney | eveything else can keep its previous status | |
| 13:53:32 | bauzas | because I think users shouldn't know whether the share is already mounted or not | |
| 13:53:57 | sean-k-mooney | correct | |
| 13:53:59 | sean-k-mooney | we should not leak that | |
| 13:54:13 | sean-k-mooney | we should just report we failed to detach the share form the vm | |
| 13:54:33 | bauzas | tbc, I thought the detail was: | |
| 13:54:33 | sean-k-mooney | and unmounting it is part of that internally but not somethign we should tell the use via the api | |
| 13:54:45 | bauzas | as an user, I want to attach an instance to a share | |
| 13:54:58 | bauzas | it will create a share mapping | |
| 13:55:17 | bauzas | eventually, when I'm starting, then nova looks at the share | |
| 13:55:26 | bauzas | if the share is already mounted, cool | |
| 13:55:36 | bauzas | if the share needs to be mounted, all cool too, it does it now | |
| 13:55:42 | bauzas | right? | |
| 13:55:52 | sean-k-mooney | thats my expectation | |
| 13:56:28 | sean-k-mooney | the user contract is if a share mappign exits between an instnace and a share | |
| 13:56:47 | Uggla | bauzas, no. User need to ensure the share is in active status (means it is mounted and VM and share has a link) | |
| 13:56:52 | sean-k-mooney | if we start the instance then nova will do whatever is required to ensure teh vm starts with the share | |
| 13:57:07 | bauzas | Uggla: okay, hence my needing to look at your spec | |
| 13:57:16 | Uggla | I mean if you start the VM and the share is still in "attaching status" then it will fail. | |
| 13:57:22 | bauzas | Uggla: when is the share checked whether it's mounted ? | |
| 13:57:41 | bauzas | inactive == mounted, while active == mounted, right ? | |
| 13:57:46 | sean-k-mooney | Uggla: that sounds wrong to me | |
| 13:57:46 | bauzas | doh | |
| 13:57:51 | bauzas | inactive == unmounted | |
| 13:58:21 | bauzas | there it goes, opening https://specs.openstack.org/openstack/nova-specs/specs/2024.1/approved/libvirt-virtiofs-attach-manila-shares.html | |
| 13:58:27 | sean-k-mooney | the use should not have to pool the share mapping status to start the vm | |
| 13:58:42 | sean-k-mooney | when the vm is stopp and we attach a share | |
| 13:58:53 | sean-k-mooney | we should be able to do start immietaly | |
| 13:59:12 | gibi | but then there will be a race between the mount RPC and the start RPC | |
| 13:59:23 | bauzas | "Mount operation will be done when the share is not mounted on the compute host. If a previous share would have been mounted on the compute host for another server, then it will attempt to mount it and a warning will be logged that the share was already mounted." | |
| 13:59:23 | Uggla | bauzas, nothing = nothing, attaching = attach in progress, inactive = share mounted and ready, actif = Vm up and share readable | |
| 13:59:29 | bauzas | it doesn't say when we mount | |
| 13:59:37 | sean-k-mooney | well the mount api call can only return after the mapping is created in the db | |
| 13:59:46 | sean-k-mooney | so there should not be a race | |
| 14:00:00 | sean-k-mooney | or rather theer does not need to be a race | |
| 14:00:01 | gibi | the race would be about the host mount not about the DB | |
| 14:00:14 | sean-k-mooney | right but spwan should be ensuring the mount | |
| 14:00:21 | bauzas | Uggla: nothing == nothing, that's the "phi" you have in the spec ? | |
| 14:00:30 | gibi | but we have a separate RPC to ensure the mount | |
| 14:00:34 | Uggla | yep. | |
| 14:00:46 | gibi | it is not the spawn that does the host mount | |
| 14:01:08 | bauzas | gibi: when is called that RPC method ? | |
| 14:01:10 | sean-k-mooney | that soudn incorrect to me | |
| 14:01:19 | bauzas | shit, I need to go in meeting | |
| 14:01:21 | gibi | bauzas: during the attach REST API call | |
| 14:01:44 | bauzas | ah, now I remember, that's the async RPC call | |
| 14:02:04 | gibi | if I understood Sean correctly they want to do the host mount during spawn instead | |
| 14:02:13 | sean-k-mooney | yep | |
| 14:02:28 | bauzas | I'm fine whenever | |
| 14:02:52 | sean-k-mooney | i would also expect the share to be unmoutned when we stop the vm for what its worth | |
| 14:02:58 | bauzas | my point is that the share mount can be done whenever we want, at least *before* we start | |
| 14:03:14 | sean-k-mooney | because i would expect hard reboot to unmount it and remount it | |
| 14:03:24 | sean-k-mooney | since we normally use hard reboot to fix things like that | |
| 14:03:24 | bauzas | sean-k-mooney: you can attach the same mount multiple times | |
| 14:03:30 | sean-k-mooney | thats fine | |
| 14:03:53 | sean-k-mooney | the mount and unmount could be based on the first/last active vm | |
| 14:04:16 | sean-k-mooney | or better each instance could have its onw mount and we could avoid reusign it. that what i orgianly wanted in the spec | |
| 14:04:25 | bauzas | sean-k-mooney: fwiw, in the spec it says that an instance stop does make the share umounted | |
| 14:04:30 | sean-k-mooney | to have the same share mounted multipel times in seperat locations | |
| 14:04:35 | sean-k-mooney | but i know that is not what is in the code | |
| 14:04:37 | bauzas | so it's already fine | |
| 14:04:51 | bauzas | (if the implementation is the same) | |
| 14:04:51 | sean-k-mooney | so a few weeks ago i was sruprised | |
| 14:05:01 | gibi | I guess the RPC during the attach REST API call is created to prepare for the future when a share can be mounted live without a stop/start cycle. | |
| 14:05:02 | sean-k-mooney | wehn the share was not mounted under the instance state dir | |
| 14:05:28 | sean-k-mooney | because i was orgianlly expecting the share not to be shared betwen instnace on the same host | |
| 14:05:28 | bauzas | I think the word "inactive" is correct | |
| 14:05:39 | bauzas | nothing is using the share | |
| 14:05:52 | bauzas | but we still have the reservation | |
| 14:06:13 | sean-k-mooney | bauzas: the active/inactive state of a share mapping cant be mapped ot if its mounted on the hsot | |
| 14:06:27 | bauzas | I hope so | |
| 14:06:32 | sean-k-mooney | since if we are sharing the mount point betwen vms it woudl depend on if other vms on the host are using it | |
| 14:06:59 | bauzas | yeah, inactive just means that the instance doesn't use the share but it's still 'mapped' to it | |
| 14:07:13 | bauzas | whether the share is umounted or not, that's something internal | |
| 14:07:39 | bauzas | as you say, the share could be continued to be mounted, because used by other instances | |
| 14:07:55 | bauzas | now, back to the original question from gibi, | |
| 14:08:08 | bauzas | there are two possibilities | |
| 14:08:13 | sean-k-mooney | for me active means we have done what is required in nova and maniall so that the vm can use it if you start the vm | |
| 14:08:52 | Uggla | sean-k-mooney, no active means VM is up and uses the share. | |
| 14:09:07 | sean-k-mooney | then it has no extra info | |
| 14:09:15 | bauzas | IMHO, I think that a detach action that eventually goes into unmounting and which is impossible to do so should make the instance action on error | |
| 14:09:17 | sean-k-mooney | that is what instnace status=active means | |
| 14:09:32 | bauzas | or we need a periodic | |
| 14:09:49 | bauzas | but honestly, I think we should say the truth | |
| 14:10:22 | sean-k-mooney | the active status of a share mappign shoudl not depend on the vm status (active vs powered off) | |
| 14:10:41 | bauzas | that's written in the spec | |
| 14:10:42 | sean-k-mooney | these are two diffenet logical resouces in the api | |
| 14:11:36 | gibi | bauzas: it is not about the instance action but about the state of the sharemapping. We can keep it inactive or we can put it in error. | |
| 14:12:37 | bauzas | gibi: I got that, lemme summarize the exception handling case | |
| 14:12:59 | bauzas | user stops a VM, share mapping goes inactive | |
| 14:13:12 | sean-k-mooney | looking at the Share mapping status diagram in the spec | |