Earlier  
Posted Nick Remark
#openstack-nova - 2023-01-10
14:01:03 sean-k-mooney based on the breakign changes but its just unfortunate timeing
14:01:42 sean-k-mooney the other reality is that we (openstack) are using a diffent packaging approch to many others
14:01:53 bauzas Uggla: bingo
14:02:00 sean-k-mooney the constriats file is a unique thing we drove and use
14:02:01 bauzas Uggla: tested on our internal cloud
14:02:14 bauzas Uggla: I'm able to get the instance UUID for free
14:02:20 sean-k-mooney so i think we tend to hit these issues first as a result
14:02:25 bauzas Uggla:
14:02:26 bauzas ubuntu@sbauza-devstack1:~$ ll /var/lib/cloud/instance
14:02:26 bauzas lrwxrwxrwx 1 root root 61 Oct 22 14:05 /var/lib/cloud/instance -> /var/lib/cloud/instances/e8408aef-7717-4c35-9298-828dee80906b/
14:02:45 bauzas https://cloudinit.readthedocs.io/en/latest/topics/faq.html#data
14:03:05 bauzas and I confirm that this UUID is exactly my nova instance UUID
14:03:56 opendevreview Merged openstack/nova stable/xena: Handle "no RAM info was set" migration case https://review.opendev.org/c/openstack/nova/+/860734
14:03:58 Uggla bauzas, ok sounds not bad.
14:04:02 opendevreview Merged openstack/nova master: Remove basepython def from tox.ini https://review.opendev.org/c/openstack/nova/+/869545
14:04:07 opendevreview Merged openstack/placement master: Make tox.ini tox 4.0.0 compatible https://review.opendev.org/c/openstack/placement/+/868418
14:04:09 opendevreview Merged openstack/placement stable/ussuri: placement-status: check only consumers in allocation table https://review.opendev.org/c/openstack/placement/+/840703
14:04:13 opendevreview Merged openstack/nova stable/xena: Adapt websocketproxy tests for SimpleHTTPServer fix https://review.opendev.org/c/openstack/nova/+/866193
14:04:45 bauzas Uggla: see my last comment
14:05:31 Uggla bauzas, it needs some changes into scaphandre. But it seems to be a good tradeof.
14:05:52 bauzas Uggla: you can symlink, dude
14:06:46 bauzas some "script" could magically ln -s on some dir based on some UUID it would get from cloud-init data :)
14:10:21 Uggla bauzas, I'm missing how you get the link beetween instance-name --> uuid
14:10:55 bauzas Uggla: what exactly Scaphandre needs to know ?
14:11:01 bauzas without touching it ?
14:12:06 Kirill_ Hi, can we discuss my mr - https://review.opendev.org/c/openstack/nova-specs/+/863773. part with upgrade problem
14:12:28 Uggla bauzas, I need to check, I think it only needs a folder name and propagate the same data to all guests. If it is the case that's ok.
14:12:39 bauzas Kirill_: uploading the context in my mind by looking again at your spec :)
14:13:02 Kirill_ )))
14:13:05 bauzas Uggla: I guess Scaphandre needs to know the directory to look at, right?
14:13:19 bauzas Uggla: so this is probably config-defined
14:13:43 bauzas or does scaphandre ask you to mount using a specific target ?
14:13:50 bauzas which is not configurable
14:14:40 bauzas point is, if scaphandre allows you to define the mount point, that's cool, the user just has to mention the right UUID or some script can use the cloud-init data trick I mentioned for guessing the right dir
14:15:00 Uggla bauzas, I think so, but I need to ensure there is nothing link with the qemu process.
14:15:22 bauzas if scaphandre isn't configurable and requires a specific path, then you just symlink the right uuid dir to the path it expects
14:15:33 bauzas ah, I see
14:15:49 bauzas something automatically guess from qemu agent ?
14:18:16 bauzas Kirill_: about the upgrade question
14:18:54 bauzas Kirill_: my proposal is to say that this feature (get a console) is only available when all your computes are fully upgraded
14:20:25 bauzas I have to disappear for 45 mins but I'll be back before the nova meeting
14:21:03 Kirill_ full changes will be on ironic side, in ironic_conductor. For nova we only need one method - get_vnc_console. and seems that we dont have any upgrade problems
14:22:05 Kirill_ now if we ask vnc for ironic we cought error - console not emplemented because get_vnc_console is not done
14:23:19 Kirill_ the idea with traits was because in prev desine we affect on more nova containers
14:38:04 sean-k-mooney bauzas: that does not work
14:38:16 sean-k-mooney asuume all comptue are upgraded
14:38:30 sean-k-mooney as not all ironic compute nodes may support this
14:38:50 sean-k-mooney bauzas: i dont really think there is an upgrade impact to this spec
14:51:39 sean-k-mooney bauzas: Uggla just some other things to note OS-EXT-SRV-ATTR:instance_name is admin only so we cannot leak it to the guest via scaphandre.
14:52:32 sean-k-mooney on the host level the libvirt domain xml uuid is also the nova instance uuid
14:52:59 sean-k-mooney we made that change to allow tools like collectd to corralate metrics with the guest
14:53:18 sean-k-mooney so on the host level scaphandre should parse the uuid form there
14:54:07 sean-k-mooney in the guest yes you can get the instnace uuid form the cofnig drive or metadata api
15:16:54 Uggla sean-k-mooney, it will not be leaked, I use it in the doc to make clear which name it is. User will not see that name, he will have to use the mount_tag
15:18:52 sean-k-mooney ok so scaphandre willl not expose it via virtiofs to the guest
15:19:14 sean-k-mooney in that case its proably ok.
15:20:19 Uggla ok
15:32:33 bauzas sean-k-mooney: have you seen my above comments ?
15:32:41 bauzas sean-k-mooney: about how to know the instance UUID
15:32:48 bauzas cloud-init supports it
15:33:05 bauzas ubuntu@sbauza-devstack1:~$ cat /var/lib/cloud/data/instance-id
15:33:05 bauzas e8408aef-7717-4c35-9298-828dee80906b
15:33:36 bauzas for the host, we already know the instance UUID so it's not a problem
15:34:10 Uggla I'll try to explain what I have seen in the scaphandre code, scaphandre loops every 5s on all qemu processes, it extracts data from these processes (timing, cpu usage...) and exposed them in the directory/file that will be shared with the guest. To provide the correct data to guest VM, it requires to know which qemu process belongs to which vm. So we need the link VM name / process id, and today it is provided by the instance name.
15:35:05 bauzas from the host, you mean ?
15:35:14 Uggla yes
15:36:06 Uggla When the instance name will change ? Hard reboot ?
15:36:30 bauzas and then, I guess scaphandre creates a directoty in the shared mountpoint, right?
15:37:09 Uggla yes a directory and file containing the data from the vm name.
15:38:57 bauzas ok, but does it create a specific mount ?
15:39:10 bauzas I mean, does it create one mountpoint per instance ?
15:39:21 bauzas using virtiofs
15:39:25 Uggla yep
15:39:39 Uggla 1 dir + file per vm
15:39:50 bauzas ok, then anyway scaphandre will need to be modified
15:40:03 bauzas because your spec only uses one mountpoint
15:40:07 bauzas for all instances
15:40:22 Uggla 1 mp with x dir per vm name
15:40:57 bauzas that's what I understood
15:41:14 Uggla let me give an example it will be easier:
15:41:19 bauzas so, anyway, as you see, if scaphandre wants to supports nova, then they need to modify this
15:41:38 bauzas instead of creating one mountpoint per instance
15:41:55 bauzas they could keep an shared mountpoint between guests
15:44:57 Uggla the actual path on the host is /var/lib/libvirt/scaphandre/<vmname>/intel-rapl:0:0
15:45:49 bauzas and I guess this whole ath is mounted thru virtiofs as a single mount point ?
15:45:55 bauzas whole path*
15:46:14 bauzas instead of mounting /var/lib/libvirt/scaphandre
15:47:07 bauzas (tbc, when I say 'mounting' this is wrong, I rather mean 'instead of creating a mount point for' so it would be mounted on the guest)
15:47:26 bauzas as a reminder, btw. nova meeting in 13 mins here
15:48:04 Uggla in the guest you will have a dir ex: /var/lib/scaphandre/ and inside intel-rapl:0:0 so you map /var/lib/libvirt/scaphandre/<vmname> to somewhere on the guest
15:49:39 Uggla but this is scaphandre that create /var/lib/libvirt/scaphandre/<vmname>/intel-rapl:0:0 on the host and vmname is coming from qemu cmdline.
15:50:46 Uggla bauzas, if you want we can have a quick chat after nova meeting.
15:52:34 Uggla bauzas, to my mind it works even if vmname change.
15:55:44 bauzas Uggla: who's creating the mount ?
15:56:05 bauzas is it automatically done by scaphandre or does the operator need to do it ?
15:56:31 Uggla scaphandre will create the "path"
15:56:43 bauzas who exposes it thru virtiosfs ?
15:57:56 Uggla nova
15:58:10 bauzas and without nova ?
15:58:29 Uggla user

Earlier   Later