| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-08-26 | |||
| 17:21:05 | yoctozepto | it's obvious to us (well, me at least) but years of practice has proven it's not entirely that obvious to all of users | |
| 17:21:10 | sean-k-mooney | yoctozepto: if masikari automate evacuate yes | |
| 17:21:20 | sean-k-mooney | or keep all your data on a cinder data volume | |
| 17:21:29 | yoctozepto | yeah, that's what I meant | |
| 17:21:29 | noonedeadpunk | I mean I have ceph for everything.... But still non bfv instances get's wiped out during evacuations... | |
| 17:21:59 | noonedeadpunk | ok, whatever) | |
| 17:22:03 | sean-k-mooney | noonedeadpunk: ill check the ceph code quickly but i tought we dedect ceph and preserved it. | |
| 17:22:23 | noonedeadpunk | maybe it's some recent change? Ie T or U? | |
| 17:23:07 | sean-k-mooney | we pass an on_shared_storage flag internllay which should be set to true for ceph and nfs | |
| 17:24:07 | sean-k-mooney | thats set here https://github.com/openstack/nova/blob/20459e3e88cb8382d450c7fdb042e2016d5560c5/nova/api/openstack/compute/evacuate.py#L97 | |
| 17:24:30 | sean-k-mooney | oh you have to pass it as an option | |
| 17:25:07 | noonedeadpunk | sean-k-mooney: yoctozepto seems like another patch to masakari?:) | |
| 17:25:15 | sean-k-mooney | noonedeadpunk: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id12 | |
| 17:25:32 | sean-k-mooney | so before 2.14 you had to pas it | |
| 17:25:38 | sean-k-mooney | after that its automatic | |
| 17:26:19 | noonedeadpunk | 2.12 was soooooo long ago.... | |
| 17:27:32 | sean-k-mooney | is that what massikari is using | |
| 17:27:51 | sean-k-mooney | https://github.com/openstack/nova/blob/20459e3e88cb8382d450c7fdb042e2016d5560c5/nova/compute/manager.py#L3504 we now ask the dirver if the insance is on shared storage | |
| 17:28:00 | noonedeadpunk | hm. I think I'm reading it wrong.. But it returns None for 2.14+ ? https://github.com/openstack/nova/blob/20459e3e88cb8382d450c7fdb042e2016d5560c5/nova/api/openstack/compute/evacuate.py#L45 | |
| 17:28:04 | sean-k-mooney | form 2.14 on | |
| 17:28:25 | sean-k-mooney | noonedeadpunk: yes 2.14 on it returns none and we ask the driver | |
| 17:28:31 | noonedeadpunk | ah | |
| 17:29:10 | sean-k-mooney | which does self.image_backend.backend(). | |
| 17:29:13 | sean-k-mooney | is_shared_block_storage() | |
| 17:29:38 | sean-k-mooney | so unless you have differen image_backend on different hosts that should be correct | |
| 17:30:07 | sean-k-mooney | rbd returns true https://github.com/openstack/nova/blob/20459e3e88cb8382d450c7fdb042e2016d5560c5/nova/virt/libvirt/imagebackend.py#L958 | |
| 17:30:45 | sean-k-mooney | so you should see this log message when you evacuate https://github.com/openstack/nova/blob/20459e3e88cb8382d450c7fdb042e2016d5560c5/nova/compute/manager.py#L3514-L3516 | |
| 17:30:58 | sean-k-mooney | and we should keep the disk content | |
| 17:31:30 | noonedeadpunk | looks like this, yes | |
| 17:31:57 | sean-k-mooney | what api microversion is masikari using | |
| 17:33:22 | noonedeadpunk | 2.53 for master... | |
| 17:33:49 | sean-k-mooney | it looks like it does not set one https://github.com/openstack/masakari/blob/cd95f6660c14f506603f0864ca24dd25c278a6a8/masakari/engine/drivers/taskflow/host_failure.py#L262-L263 | |
| 17:34:08 | sean-k-mooney | so nova client will default to the latest | |
| 17:34:17 | noonedeadpunk | ok, on rocky it was 2.14 | |
| 17:35:04 | yoctozepto | we care about stein+ atm | |
| 17:35:16 | noonedeadpunk | ++ | |
| 17:35:36 | sean-k-mooney | 2.14 was mitaka | |
| 17:35:42 | sean-k-mooney | so you should be good | |
| 17:36:11 | sean-k-mooney | we have been preseviing shared storage vms for a very long time | |
| 18:00:01 | noonedeadpunk | sean-k-mooney: just tested and during evacuate data is really preserved | |
| 18:00:27 | sean-k-mooney | good that would have been a nasty bug if that was regressed | |
| 18:00:41 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Change default num_retries for glance to 3 https://review.opendev.org/740389 | |
| 18:02:50 | noonedeadpunk | TIL | |
| 18:02:56 | openstackgerrit | Merged openstack/nova stable/ussuri: compute: Validate a BDMs disk_bus when provided https://review.opendev.org/744550 | |
| 18:03:31 | sean-k-mooney | noonedeadpunk: the api does not guarentee that data is preserved unless you are using bfv | |
| 18:03:57 | sean-k-mooney | noonedeadpunk: so unless you deployed the cloud and know the vm is on shared storage when you dont use bfv dont rely on that behavior | |
| 18:06:27 | noonedeadpunk | I see, yeah, I know that bfv is really preferable. But it's hard to explain in terms of public clouds, when even with no non-0 disk flavors ppl still do use ephemeral. But good part of them, is that they can handle ISO's while cinder wasn't able to boot ISO image properly last time I've checked... | |
| 18:06:40 | openstackgerrit | Merged openstack/nova master: rbd: Move rbd_utils out of libvirt driver under nova.storage https://review.opendev.org/746904 | |
| 18:06:56 | sean-k-mooney | noonedeadpunk: well i have no problem iwht non bfv instance | |
| 18:07:07 | sean-k-mooney | i like the ceph backend for example | |
| 18:07:24 | noonedeadpunk | yes, sure ceph backend is everywhere for me:) | |
| 18:07:24 | sean-k-mooney | but its jsut driver devied if evauate preserves data or not | |
| 18:07:42 | sean-k-mooney | for the libvirt dirver it does preseve data it the sorate is shared | |
| 18:07:56 | sean-k-mooney | for other drivers that may not be the case | |
| 18:08:22 | noonedeadpunk | dunno, I need better investigation on my side, it was just good lead, but no.. And I wasn't able to reproduce by far so yeah... | |
| 18:08:35 | sean-k-mooney | ironic for example i would expect to always recreate the server altouhg if its boot form volue it might persve it | |
| 18:21:22 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Use absolute path during qemu img rebase https://review.opendev.org/739246 | |
| 18:36:04 | sean-k-mooney | stephenfin: by the way for my libvirt/os-vif patch i have another pathc im addedin beneath it | |
| 18:36:20 | sean-k-mooney | but ill adress your commend when i push both | |
| 18:37:17 | stephenfin | sean-k-mooney: Okay. You've got reviews on https://review.opendev.org/#/c/745605/ too so if you get a chance to address that, I can re +2 tomorrow | |
| 18:38:01 | sean-k-mooney | ya ill take a look at it | |
| 19:04:10 | openstackgerrit | Jiri Suchomel proposed openstack/nova master: Add ability to download Glance images into the libvirt image cache via RBD https://review.opendev.org/574301 | |
| 19:22:16 | openstackgerrit | Merged openstack/nova master: Add type hints to 'nova.compute.manager' https://review.opendev.org/742863 | |
| 19:22:30 | openstackgerrit | Merged openstack/nova master: Avoid invalid file name, preventing git clone on win32 https://review.opendev.org/748250 | |
| 20:00:40 | openstackgerrit | sean mooney proposed openstack/nova master: libvirt: delegate ovs plug to os-vif https://review.opendev.org/602432 | |
| 20:00:40 | openstackgerrit | sean mooney proposed openstack/nova master: pass vifs_already_plugged when reverting a migration https://review.opendev.org/748296 | |
| 20:00:57 | mnaser | does anyone know why regex based filtering is no longer working in the api with ussuri? | |
| 20:01:02 | mnaser | i cant track any commits that might have caused it | |
| 20:01:30 | mnaser | openstack --debug server list --all-projects --name 'foo' returns two servers which are 'foo1.bar' and 'foo2.bar' | |
| 20:01:47 | mnaser | but `openstack --debug server list --all-projects --name 'foo\d'` returns nothing | |
| 20:02:08 | sean-k-mooney | did you check the client | |
| 20:02:18 | sean-k-mooney | im not sure if this is api side | |
| 20:02:21 | sean-k-mooney | it might be | |
| 20:02:38 | sean-k-mooney | well i think it is but maybe there were some clinet changes that broke it | |
| 20:03:26 | mnaser | sean-k-mooney: its not, i looked into the api-ref | |
| 20:03:33 | mnaser | it says you can send actual regex | |
| 20:03:37 | sean-k-mooney | string | |
| 20:03:40 | sean-k-mooney | ||
| 20:03:42 | sean-k-mooney | Filters the response by a server name, as a string. You can use regular expressions in the query. For example, the ?name=bob regular expression returns both bob and bobb. If you must match on only bob, you can use a regular expression that matches the syntax of the underlying database server that is implemented for Compute, such as MySQL or PostgreSQL. | |
| 20:03:58 | mnaser | _regex_instance_filter() in https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py hasn't been touched for 5-8 years | |
| 20:04:01 | mnaser | according to blame | |
| 20:04:03 | sean-k-mooney | so if this behavior changed its likel a db change | |
| 20:04:16 | mnaser | i mean, it went from myslq to mysql | |
| 20:04:50 | mnaser | let me check if maybe its an option ;\ | |
| 20:06:00 | sean-k-mooney | this was the last change to that code https://github.com/openstack/nova/commit/117fad897d5310d66cc2e690f3cd32e72614d8fd | |
| 20:07:34 | mnaser | so it looks like it should be sending a REGEXP query | |
| 20:08:05 | mnaser | let me try it out against the actual db server | |
| 20:09:45 | mnaser | indeed, the regexp doesnt work | |
| 20:09:59 | mnaser | `SELECT * FROM instances WHERE display_name REGEXP 'foo\d';` returns an empty set | |
| 20:11:33 | sean-k-mooney | try 'foo\d.*' | |
| 20:11:46 | sean-k-mooney | foo\d would not match foo1.bar | |
| 20:14:15 | sean-k-mooney | https://regex101.com/r/uDuQBs/1/ | |
| 20:14:48 | mnaser | sean-k-mooney: ok so it turns out that mysql seemingly uses a differnt regex lib than mariadb | |
| 20:14:53 | mnaser | https://dev.mysql.com/doc/refman/5.7/en/regexp.html#regexp-operators | |
| 20:15:18 | sean-k-mooney | your current regex is not correct however | |
| 20:15:29 | sean-k-mooney | foo\d will not match foo1.bar | |
| 20:15:33 | sean-k-mooney | it will match foo1 | |
| 20:16:04 | sean-k-mooney | foo\d is the same as foo[0-9] | |
| 20:16:22 | mnaser | sean-k-mooney: right, i agree with you on that, but the regex impl using in mysql does not | |
| 20:16:32 | mnaser | SELECT display_name FROM instances WHERE display_name REGEXP 'foo[[:digit:]].'; works | |