2017-12-12 15:49:13 |
Samuel Matzek |
description |
The Nova volume attachment is causing the device / mount point of the volume attachment in Cinder to be set to /dev/na.
The Trove gate is doing the following steps, though it could probably be recreated with a simple volume attach:
1. Spawn instance with ephemeral disk and specify a BDM to attach an existing volume:
{"os:scheduler_hints": {"group": "20a9dce8-529a-4b1e-ae10-683a372e3868"}, "server": {"name": "TEST_2017_12_11__22_09_04", "imageRef": "cf82cd3d-af85-4f0c-933b-a43a2b70a26f", "availability_zone": "nova", "flavorRef": "16", "block_device_mapping": [{"volume_size": "1", "volume_id": "77369a12-92e1-42d4-be95-6f26910b193a", "delete_on_termination": "1", "device_name": "vdb"}],
Trove log link [1]
2. Detach the volume.
3. Resize the volume.
4. Attach the volume back to the server
Nova log link [2]
5. Call to get volume attachments using Cinder API / cinderclient. Code pointer [3]
At this point the 'device' field in the attachment returned by Cinder is /dev/na.
This 'na' value is a default in Cinder if the 'mountpoint' is not passed in on the connector in attachment_update (code [4]).
So its likely that the attachment update that is occurring during the volume attach is not passing in the mountpoint on the connector.
[1] http://logs.openstack.org/30/527230/1/check/legacy-trove-scenario-dsvm-mysql-single/811c93b/logs/screen-tr-tmgr.txt.gz#_Dec_11_22_09_10_585733
[2] http://logs.openstack.org/30/527230/1/check/legacy-trove-scenario-dsvm-mysql-single/811c93b/logs/screen-n-cpu.txt.gz?#_Dec_11_22_30_10_353894
[3] https://github.com/openstack/trove/blob/master/trove/taskmanager/models.py#L1369-L1371
[4] https://github.com/openstack/cinder/blob/55b2f349514fce1ffde5fd2244cfc26d7daad6a6/cinder/volume/manager.py#L4396 |
The Nova volume attachment is causing the device / mount point of the volume attachment in Cinder to be set to /dev/na.
The Trove gate is doing the following steps, though it could probably be recreated with a simple volume attach:
1. Spawn instance with ephemeral disk and specify a BDM to attach an existing volume:
{"os:scheduler_hints": {"group": "20a9dce8-529a-4b1e-ae10-683a372e3868"}, "server": {"name": "TEST_2017_12_11__22_09_04", "imageRef": "cf82cd3d-af85-4f0c-933b-a43a2b70a26f", "availability_zone": "nova", "flavorRef": "16", "block_device_mapping": [{"volume_size": "1", "volume_id": "77369a12-92e1-42d4-be95-6f26910b193a", "delete_on_termination": "1", "device_name": "vdb"}],
Trove log link [1]
2. Detach the volume.
3. Resize the volume.
4. Attach the volume back to the instance
Nova log link [2]
5. Call to get volume attachments using Cinder API / cinderclient. Code pointer [3]
At this point the 'device' field in the attachment returned by Cinder is /dev/na.
This 'na' value is a default in Cinder if the 'mountpoint' is not passed in on the connector in attachment_update (code [4]).
So its likely that the attachment update that is occurring during the volume attach is not passing in the mountpoint on the connector.
[1] http://logs.openstack.org/30/527230/1/check/legacy-trove-scenario-dsvm-mysql-single/811c93b/logs/screen-tr-tmgr.txt.gz#_Dec_11_22_09_10_585733
[2] http://logs.openstack.org/30/527230/1/check/legacy-trove-scenario-dsvm-mysql-single/811c93b/logs/screen-n-cpu.txt.gz?#_Dec_11_22_30_10_353894
[3] https://github.com/openstack/trove/blob/master/trove/taskmanager/models.py#L1369-L1371
[4] https://github.com/openstack/cinder/blob/55b2f349514fce1ffde5fd2244cfc26d7daad6a6/cinder/volume/manager.py#L4396 |
|