Dear all, I have successfully installed S3QL on a CentOS 7 VM and am trying without success to create an S3QL file system using an OpenStack/Swift object storage backend provided by the cloud provider. I am using the mkfs.s3ql command for this. Main references I used: http://www.rath.org/s3ql-docs/mkfs.html , http://www.rath.org/s3ql-docs/backends.html#openstack-swift and https://dmsimard.com/2014/09/29/s3ql-a-filesystem-over-http-with-openstack-swift/ .
My ~/.s3ql/authinfo2 file: [swift] backend-login: cloud_00506:psacramento backend-password: ******* storage-url: swiftks://eocloud.eu:5000/regionOne:My_Object_Storage And the command I'm trying is: mkfs.s3ql --debug swiftks://eocloud.eu:5000/regionOne:My_Object_Storage This gives me a "MainThread root.excepthook: No permission to access backend." error. According to the OpenStack GUI made available by the provider, the keystone authentication URL is actually https://eocloud.eu:5000/v3 , but if I change the above URL to this I get a "Invalid storage URL" error instead. I have also tried to change backend-login to "cloud_00506 project_with_eo:psacramento", since one of the reasons for the problem might be the way the login is built from the project/tenant name and user name. No success. After dozens of unsuccessful attempts trying to get the storage URL and credentials right, I thought about installing the python-swift command-line client (https://docs.openstack.org/python-swiftclient/pike/cli/index.html) to see if I was able to connect to the storage and upload/delete files. This worked well the first time I tried, using the same URLs and credentials I tried with mkfs.s3ql , so I'm sure I have the correct URLs and credentials. The OpenStack GUI provides a handy feature to download an RC file (say openrc.sh) that you can then use to setup your environment on RedHat/CentOS ("source openrc.sh"). It creates a few environment variables that a client such as python-swift can use for the connection. In any case, I managed to operate correctly using either the environment variables or the command-line parameters, so - again - I'm sure that I have the correct URL and credentials. I suppose the issue is in how S3QL is interpreting or expects either the URL or the credentials. The openrc.sh file is: - - - start file - - - #!/usr/bin/env bash # To use an OpenStack cloud you need to authenticate against the Identity # service named keystone, which returns a **Token** and **Service Catalog**. # The catalog contains the endpoints for all services the user/tenant has # access to - such as Compute, Image Service, Identity, Object Storage, Block # Storage, and Networking (code-named nova, glance, keystone, swift, # cinder, and neutron). # # *NOTE*: Using the 3 *Identity API* does not necessarily mean any other # OpenStack API is version 3. For example, your cloud provider may implement # Image API v1.1, Block Storage API v2, and Compute API v2.0. OS_AUTH_URL is # only for the Identity API served through keystone. export OS_AUTH_URL=https://eocloud.eu:5000/v3 # With the addition of Keystone we have standardized on the term **project** # as the entity that owns the resources. export OS_PROJECT_ID=9c041f03a252466087cf38b2be35ff0b export OS_PROJECT_NAME="cloud_00506 project_with_eo" export OS_USER_DOMAIN_NAME="cloud_00506" if [ -z "$OS_USER_DOMAIN_NAME" ]; then unset OS_USER_DOMAIN_NAME; fi # unset v2.0 items in case set unset OS_TENANT_ID unset OS_TENANT_NAME # In addition to the owning entity (tenant), OpenStack stores the entity # performing the action as the **user**. export OS_USERNAME="psacramento" # With Keystone you pass the keystone password. echo "Please enter your OpenStack Password: " read -sr OS_PASSWORD_INPUT export OS_PASSWORD=$OS_PASSWORD_INPUT # If your configuration has multiple regions, we set that information here. # OS_REGION_NAME is optional and only valid in certain environments. export OS_REGION_NAME="RegionOne" # Don't leave a blank variable, unset it if it was empty if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi export OS_IDENTITY_API_VERSION="3" - - - end file - - - With these environment variables set on the shell, the simple command "swift list" gives me a list of object storage buckets. With a clean environment, the following command gives me the same results: swift --os-auth-url https://eocloud.eu:5000/v3 --auth-version 3 --os-project-name "cloud_00506 project_with_eo" --os-project-domain-name cloud_00506 --os-username psacramento --os-user-domain-name cloud_00506 --os-password ********* list Any clue as to what I'm doing wrong with mkfs.s3ql? Thanks in advance for all help, Paulo -- You received this message because you are subscribed to the Google Groups "s3ql" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
