<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 17, 2020 at 2:01 AM Tony Pearce <<a href="mailto:tony.pearce@cinglevue.com">tony.pearce@cinglevue.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Could anyone help by pointing me where to go to be able to dig into this issue further? </div><div><br></div><div>I have installed a test Openstack environment using RDO Packstack. I wanted to install the same version that I have in Production (Pike) but it's not listed in the CentOS repo via yum search. So I installed Queens. I am using nimble.py Cinder driver. Nimble Storage is a storage array accessed via iscsi from the Openstack host, and is controlled from Openstack by the driver and API. </div><div><b><br></b></div><div><div><b>What I expected to happen:</b></div><div>1. create an instance with volume (the volume is created on the storage array successfully and instance boots from it)</div><div>2. take a snapshot (snapshot taken on the volume on the array successfully)</div><div>3. create a new instance from the snapshot (the api tells the array to clone the snapshot into a new volume on the array and use that volume for the instance)</div><div>4. try and delete the snapshot<br>Expected Result - Openstack gives the user a message like "you're not allowed to do that".</div></div><div><br></div><div> Note: Step 3 above creates a child volume from the parent snapshot. It's impossible to delete the parent snapshot because IO READ is sent to that part of the original volume (as I understand it). <br></div><div><br></div><div><b>My production problem is this: </b></div><div>1. create an instance with volume (the volume is created on the storage array successfully)</div><div>2. take a snapshot (snapshot taken on the volume on the array successfully)</div><div>3. create a new instance from the snapshot (the api tells the array to clone the snapshot into a new volume on the array and use that volume for the instance)</div><div>4. try and delete the snapshot<br>Result - snapshot goes into error state and later, all Cinder operations fail such as new instance/create volume etc. until the correct service is restarted. Then everything works once again. </div><div><br></div><div><br></div><div>To troubleshoot the above, I installed the RDP Packstack Queens (because I couldnt get Pike). I tested the above and now, the result is the snapshot is successfully deleted from openstack but not deleted on the array. The log is below for reference. But I can see the in the log that the array sends back info to openstack saying the snapshot has a clone and the delete cannot be done because of that. Also response code 409. </div><div><br></div><div><b>Some info about why the problem with Pike started in the first place</b></div><div>1. Vendor is Nimble Storage which HPE purchased</div><div>2. HPE/Nimble have dropped support for openstack. Latest supported version is Queens and Nimble array version v4.x. The current Array version is v5.x. Nimble say there are no guarantees with openstack, the driver and the array version v5.x</div><div>3. I was previously advised by Nimble that the array version v5.x will work fine and so left our DR array on v5.x with a pending upgrade that had a blocker due to an issue. This issue was resolved in December and the pending upgrade completed to match the DR array took place around 30 days ago. </div><div><br></div><div><br></div><div>With regards to the production issue, I assumed that the array API has some changes between v4.x and v5.x and it's causing an issue with Cinder due to the API response. Although I have not been able to find out if or what changes there are that may have occurred after the array upgrade, as the documentation for this is Nimble internal-only. </div><div><br></div><div></div><div><br></div><div><b>So with that - some questions if I may:</b></div><div> When Openstack got the 409 error response from the API (as seen in the log below), why would Openstack then proceed to delete the snapshot on the Openstack side? How could I debug this further? I'm not sure what Openstack Cinder is acting on in terns of the response as yet. Maybe Openstack is not specifically looking for the error code in the response? </div><div><br></div><div>The snapshot that got deleted on the openstack side is a problem. Would this be related to the driver? Could it be possible that the driver did not pass the error response to Cinder? </div></div></blockquote><div><br></div><div>Hi Tony,</div><div><br></div><div>This is exactly what happened, and it appears to be a driver bug introduced in queens by [1]. The code in question [2] logs the error, but fails to propagate the exception. As far as the volume manager is concerned, the snapshot deletion was successful.<br></div><div><br></div><div>[1] <a href="https://review.opendev.org/601492">https://review.opendev.org/601492</a></div><div> [2] <a href="https://opendev.org/openstack/cinder/src/branch/stable/queens/cinder/volume/drivers/nimble.py#L1815">https://opendev.org/openstack/cinder/src/branch/stable/queens/cinder/volume/drivers/nimble.py#L1815</a></div><div><br></div><div>Alan<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Thanks in advance. Just for reference, the log snippet is below. </div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="background-color:rgb(0,255,0)">==> volume.log <==</span><br>2020-01-17 16:53:23.718 24723 WARNING py.warnings [req-60fe4335-af66-4c46-9bbd-2408bf4d6f07 df7548ecad684f26b8bc802ba63a9814 87e34c89e6fb41d2af25085b64011a55 - default default] /usr/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:852: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: <a href="https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings" target="_blank">https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings</a><br> InsecureRequestWarning)<br>: <span style="background-color:rgb(255,255,0)">NimbleAPIException: Failed to execute api snapshots/0464a5fd65d75fcfe1000000000000011100001a41: Error Code: 409 Message: Snapshot snapshot-3806efc5-65ca-495a-a87a-baaddc9607d9 for volume volume-5b02db35-8d5c-4ef6-b0e7-2f9b62cac57e has a clone.</span><br>==> api.log <==<br>2020-01-17 16:53:23.769 25242 INFO cinder.api.openstack.wsgi [req-bfcbff34-134b-497e-82b1-082d48f8767f df7548ecad684f26b8bc802ba63a9814 87e34c89e6fb41d2af25085b64011a55 - default default] <a href="http://192.168.53.45:8776/v3/87e34c89e6fb41d2af25085b64011a55/volumes/detail" target="_blank">http://192.168.53.45:8776/v3/87e34c89e6fb41d2af25085b64011a55/volumes/detail</a> returned with HTTP 200<br>2020-01-17 16:53:23.770 25242 INFO eventlet.wsgi.server [req-bfcbff34-134b-497e-82b1-082d48f8767f df7548ecad684f26b8bc802ba63a9814 87e34c89e6fb41d2af25085b64011a55 - default default] 192.168.53.45 "GET /v3/87e34c89e6fb41d2af25085b64011a55/volumes/detail HTTP/1.1" status: 200 len: 4657 time: 0.1152730<br>==> volume.log <==<br>2020-01-17 16:53:23.811 24723 WARNING py.warnings [req-60fe4335-af66-4c46-9bbd-2408bf4d6f07 df7548ecad684f26b8bc802ba63a9814 87e34c89e6fb41d2af25085b64011a55 - default default] /usr/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:852: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: <a href="https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings" target="_blank">https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings</a><br> InsecureRequestWarning)<br>: NimbleAPIException: Failed to execute api snapshots/0464a5fd65d75fcfe1000000000000011100001a41: Error Code: 409 Message: Snapshot snapshot-3806efc5-65ca-495a-a87a-baaddc9607d9 for volume volume-5b02db35-8d5c-4ef6-b0e7-2f9b62cac57e has a clone.<br><span style="background-color:rgb(255,255,0)">2020-01-17 16:53:23.902 24723 ERROR cinder.volume.drivers.nimble [req-60fe4335-af66-4c46-9bbd-2408bf4d6f07 df7548ecad684f26b8bc802ba63a9814 87e34c89e6fb41d2af25085b64011a55 - default default] Re-throwing Exception Failed to execute api snapshots/0464a5fd65d75fcfe1000000000000011100001a41: Error Code: 409 Message: Snapshot snapshot-3806efc5-65ca-495a-a87a-baaddc9607d9 for volume volume-5b02db35-8d5c-4ef6-b0e7-2f9b62cac57e has a clone.: NimbleAPIException: Failed to execute api snapshots/0464a5fd65d75fcfe1000000000000011100001a41: Error Code: 409 Message: Snapshot snapshot-3806efc5-65ca-495a-a87a-baaddc9607d9 for volume volume-5b02db35-8d5c-4ef6-b0e7-2f9b62cac57e has a clone.</span><br>2020-01-17 16:53:23.903 24723 WARNING cinder.volume.drivers.nimble [req-60fe4335-af66-4c46-9bbd-2408bf4d6f07 df7548ecad684f26b8bc802ba63a9814 87e34c89e6fb41d2af25085b64011a55 - default default] Snapshot snapshot-3806efc5-65ca-495a-a87a-baaddc9607d9 : has a clone: NimbleAPIException: Failed to execute api snapshots/0464a5fd65d75fcfe1000000000000011100001a41: Error Code: 409 Message: Snapshot snapshot-3806efc5-65ca-495a-a87a-baaddc9607d9 for volume volume-5b02db35-8d5c-4ef6-b0e7-2f9b62cac57e has a clone.<br>2020-01-17 16:53:23.964 24723 WARNING cinder.quota [req-60fe4335-af66-4c46-9bbd-2408bf4d6f07 df7548ecad684f26b8bc802ba63a9814 87e34c89e6fb41d2af25085b64011a55 - default default] Deprecated: Default quota for resource: snapshots_Nimble-DR is set by the default quota flag: quota_snapshots_Nimble-DR, it is now deprecated. Please use the default quota class for default quota.<br>2020-01-17 16:53:24.054 24723 INFO cinder.volume.manager [req-60fe4335-af66-4c46-9bbd-2408bf4d6f07 df7548ecad684f26b8bc802ba63a9814 87e34c89e6fb41d2af25085b64011a55 - default default] <span style="background-color:rgb(255,255,0)">Delete snapshot completed successfully.</span></blockquote><div><br></div><div><br></div>Regards,<div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><p style="background-image:initial;background-position:initial;background-repeat:initial"><a name="m_-5530621010971127278_SignatureSanitizer_SafeHtmlFilter__MailAutoSig"><b><span style="font-size:10pt;font-family:Arial,sans-serif;color:black">Tony Pearce</span></b></a><span style="font-size:9pt;font-family:Arial,sans-serif;color:black">
| </span><b><span style="font-family:Arial,sans-serif;color:rgb(0,112,192)"><span style="font-size:9pt">Senior Network Engineer /
Infrastructure Lead</span><span style="font-size:12px"><br></span></span></b><b><span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(0,112,192)"><a href="https://www.cinglevue.com" target="_blank">Cinglevue International</a></span></b></p><p style="background-image:initial;background-position:initial;background-repeat:initial"><span style="font-size:9.5pt;font-family:Arial,sans-serif" lang="EN-US"></span></p><p style="background-image:initial;background-position:initial;background-repeat:initial"><span style="font-size:10pt;font-family:Arial,sans-serif;color:black">Email: </span><span style="font-family:Arial,sans-serif"><a href="mailto:tony.pearce@cinglevue.com" style="color:rgb(17,85,204);font-size:10pt" target="_blank">tony.pearce@cinglevue.com</a><span style="font-size:12.6667px"><br></span></span><span style="font-size:10pt;font-family:Arial,sans-serif;color:black">Web: </span><span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(17,85,204)"><a href="http://www.cinglevue.com/" target="_blank">http://www.cinglevue.com</a></span><b><span style="font-size:9pt;font-family:Arial,sans-serif;color:rgb(38,66,120)"> </span></b></p><p style="background-image:initial;background-position:initial;background-repeat:initial"><span style="font-size:9.5pt;font-family:Arial,sans-serif" lang="EN-US"></span></p><p style="background-image:initial;background-position:initial;background-repeat:initial"><b><span style="font-size:10pt;font-family:Arial,sans-serif;color:black">Australia</span></b><span style="font-family:Arial,sans-serif"><font color="#000000"><span style="font-size:10pt"> </span></font><span style="font-size:12.6667px"><br></span></span><span style="color:black;font-family:Arial,sans-serif;font-size:10pt">1 Walsh Loop, Joondalup, WA 6027 Australia.</span></p><p style="background-image:initial;background-position:initial;background-repeat:initial"><span style="font-size:9.5pt;font-family:Arial,sans-serif" lang="EN-US"></span></p><p style="background-image:initial;background-position:initial;background-repeat:initial"><span style="font-size:10pt;font-family:Arial,sans-serif;color:black">Direct: </span><span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(17,85,204)">+61 8 6202 0036</span><span style="font-size:10pt;font-family:Arial,sans-serif;color:black"> | </span><span style="font-size:9.5pt;font-family:Arial,sans-serif" lang="EN-US"></span><span style="font-size:10pt;font-family:Arial,sans-serif;color:black">Main: </span><span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(17,85,204)">+61 8 6202 0024</span></p><p style="background-image:initial;background-position:initial;background-repeat:initial"><span style="font-size:10pt;font-family:Arial,sans-serif;color:black">Note: This email and all attachments are the sole
property of Cinglevue International Pty Ltd. (or any of its subsidiary
entities), and the information contained herein must be considered
confidential, unless specified otherwise. If you are not the intended
recipient, you must not use or forward the information contained in these
documents. If you have received this message in error, please
delete the email and notify the sender.</span><span style="font-size:9.5pt;font-family:Arial,sans-serif" lang="EN-US"></span></p><p>
</p><p> </p></div></div></div></div></div></div></div>
</blockquote></div></div>