OpenStack s3 cinder volume backup driver and Black Pearl s3 endpoints

124 views
Skip to first unread message

Lukasz Zalewski

unread,
Nov 5, 2021, 6:38:26 AM11/5/21
to Spectra Logic S3 SDKs, APIs, and RioBroker
Hi everyone

We are trying to test the OpenStack cinder storage s3 backup driver (https://docs.openstack.org/cinder/latest/configuration/block-storage/backup-drivers.html) with the Black Pearl s3 endpoint but encountering some problems.

Once of the issues we have seen was with the signature version (from the docs BP s3 endpoints only support V2 version), but have managed to work around that. To clarify, is that the case (that only V2 is supported), or can the system be configured to use V4?

Another one that we have noticed is during the restore process. When the restore process is triggered, the following error appears in the logs:

botocore.exceptions.ClientError: An error occurred (InvalidUri) when calling the ListObjectsV2 operation: InvalidUri[400]: Request was malformed: No handlers exist that can handle the request. It looks like you meant to use one of these handlers: {com.spectralogic.s3.server.handler.reqhandler.amazons3.CreateBucketRequestHandler=Query Parameters Required: [], Optional: [], com.spectralogic.s3.server.handler.reqhandler.amazons3.DeleteBucketRequestHandler=Query Parameters Required: [], Optional: [], com.spectralogic.s3.server.handler.reqhandler.amazons3.GetBucketRequestHandler=Query Parameters Required: [], Optional: [delimiter, marker, maxKeys, prefix, versions], com.spectralogic.s3.server.handler.reqhandler.amazons3.DeleteObjectsRequestHandler=Query Parameters Required: [delete], Optional: [], com.spectralogic.s3.server.handler.reqhandler.amazons3.HeadBucketRequestHandler=Query Parameters Required: [], Optional: [], com.spectralogic.s3.server.handler.reqhandler.amazons3.ListMultiPartUploadsRequestHandler=Query Parameters Required: [uploads], Optional: [delimiter, keyMarker, maxUploads, prefix, uploadIdMarker]}

This can be easily replicated with a basic sample code outside the driver (it's more less what the driver does): conn = boto3.client('s3', **conn_args) paginator = conn.get_paginator('list_objects_v2') page_iterator = paginator.paginate(Bucket='openstack_backup') for page in page_iterator: print(page)

There is a response from jeffbr in one of the older conversations (https://groups.google.com/g/spectralogicds3-sdks/c/RbdFgfELnYQ/m/fV2_7mJNAgAJ) about standard S3 PUT/GET not being supported. Could that be the cause of the above error?

Regards

Lukasz
Reply all
Reply to author
Forward
Message has been deleted
0 new messages