Earlier  
Posted Nick Remark
#openstack-nova - 2020-08-26
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 sean-k-mooney but its jsut driver devied if evauate preserves data or not
18:07:24 noonedeadpunk yes, sure ceph backend is everywhere for me:)
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: pass vifs_already_plugged when reverting a migration https://review.opendev.org/748296
20:00:40 openstackgerrit sean mooney proposed openstack/nova master: libvirt: delegate ovs plug to os-vif https://review.opendev.org/602432
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
20:17:24 sean-k-mooney it looks like they want you to double escape
20:17:32 sean-k-mooney so you could try foo\\d
20:18:49 mnaser sean-k-mooney: nope
20:19:02 mnaser see doc above, [[:digit:]] is what they use instead of \d according to that
20:19:08 sean-k-mooney ok will this is not part of the nova api defintion
20:19:09 mnaser i guess mariadb and mysql are different when it comes to this
20:19:19 sean-k-mooney maybe maybe not
20:19:27 sean-k-mooney \d works in pyton

Earlier   Later