SWIFT Documentation Documentation Release 1.0

SWIFT Support

Aug 22, 2021

Contents

1 About SWIFT 3

2 Getting access to SWIFT 5

3 How to use SWIFT 7

4 Advanced usecases 11

i ii SWIFT Documentation Documentation, Release 1.0

Welcome to the documentation for using the SURF Object Store service at SURF which is based on Openstack SWIFT. The information on these pages will help you get started with SWIFT. We welcome your comments at [email protected] or your contribution to help us improve the documentation.

Need help?

Do you need help with this? We are more than willing to assist! Just contact us at [email protected].

Contents 1 SWIFT Documentation Documentation, Release 1.0

2 Contents CHAPTER 1

About SWIFT

There is a growing demand for general purpose Online Storage capabilities that may be used for the storage of large quantities of unstructured data in a shared multi-tenant environment. SURFsara’s Openstack SWIFT storage cluster is an all round online storage system which can meet this demand and that is characterised by its , durability and availability. SWIFT is ideal for storing unstructured data that can grow without bound. Openstack SWIFT will provide apart from it’s own native protocol also the S3 protocol, which is the defacto standard for addressing . The S3 REST API was developed by for providing access on their system. This opens up a wealth of possibilities for this storage system. SWIFT is an object storage system which means that it does not have a directory-type structure like a normal file system has but it organises its data in so-called containers that contain objects. There is no tree-like structure with files and directories. There are only containers with objects in them.

3 SWIFT Documentation Documentation, Release 1.0

4 Chapter 1. About SWIFT CHAPTER 2

Getting access to SWIFT

In this page you will find general information about getting access to the SWIFT storage cluster.

Contents

• Getting access to SWIFT

If you are interested to use the SWIFT storage cluster, please contact the SURFsara helpdesk([email protected]). There are two ways to get access. • Local SWIFT account through the OpenStack Keystone AuthN service. This is what we recommend at the moment unless you have a special reason to use one of the other methods below. • SWIFT account through the OpenStack keystone AuthN service using you user name and password that is in SURFsara Central User Administration (CUA) system. This is handy for users that use other SURFsara services like the national super computer or the Lisa compute cluster. It is also possible to obtain an access key and secret key for S3 access.

5 SWIFT Documentation Documentation, Release 1.0

6 Chapter 2. Getting access to SWIFT CHAPTER 3

How to use SWIFT

In this page you will find documentation about the different SWIFT clients that are available. SWIFT can be addressed with its own native protocol and with the S3 protocol. More detailed information on the compatibility of the SWIFT S3 implementation with AWS S3 may be found at: https://docs.openstack.org/swift/latest/s3_compat.html

Contents

• How to use SWIFT – Authentication – Command line clients – GUIs – Mounted file systems

* S3QL * S3FS * * Goofys – Backups

* Duplicity – Synchronisation

* Rclone – Libraries and

* Python Library * REST API

7 SWIFT Documentation Documentation, Release 1.0

* Boto3

3.1 Authentication

In order to use the SWIFT service you need a user name and a password. SWIFT supports so-called v3 authentication. For v3 authentication, you have projects. Unless we agree upon something else, your project name is the same as your user name. In v3 authentication there are domains for both users and projects. If you have an account in SURFsara’s Central User Administration (CUA) system, then both your project domain as your user domain is CuaUsers. When you only have a local account, then both domains are equal to Default. In order to be able to use the S3 protocol, you need to get to create so-called EC2 credentials, i.e. an access key and a secret key. How this works is described in EC2 credentials for S3.

3.2 Command line clients

• Swift – Python SWIFT client. – Curl – rclone • S3 – S3cmd – AWS S3 client (awscli) – S5cmd, for parallel file transfers – rclone

3.3 GUIs

3.4 Mounted file systems

3.4.1 S3QL

It is possible to mount SWIFT object storage as a file system with s3ql both using swift’s native protocol and S3. S3QL has features like compression, encryption, data de-duplication, immutable trees and snapshotting which make it especially suitable for online backup and archival. The s3ql page has more information.

8 Chapter 3. How to use SWIFT SWIFT Documentation Documentation, Release 1.0

3.4.2 S3FS

It is possible to mount SWIFT object storage as a file system with s3fs using the S3 protocol. The s3fs page has more information.

3.4.3 Rclone

Using rclone mount you can use rclone to mount SWIFT using the native SWIFT protocol as well as S3.

3.4.4 Goofys

Goofys is a tool written in golang to mount S3 object stores. Information may be found at the goofys page.

3.5 Backups

3.5.1 Duplicity

Duplicity is a backup tool that amongst others supports cloud storage systems. More information about this can be found at the duplicity page.

3.6 Synchronisation

3.6.1 Rclone

Rclone is the for cloud storage. Here is more information on how to use rclone on the rclone page.

3.7 Libraries and APIs

3.7.1 Python Library

The python library page gives you information on the python-swiftclient library.

3.7.2 REST API

SWIFT offers a REST API. Information about this API and some examples are described at the API page.

3.7.3 Boto3

Boto3 is the AWS SDK for python developed by Amazon. It contains of course an S3 part to access object stores. At boto3 has information on how to use it.

3.5. Backups 9 SWIFT Documentation Documentation, Release 1.0

10 Chapter 3. How to use SWIFT CHAPTER 4

Advanced usecases

Information about more advanced usecases

4.1 Delegating access using S3 credentials

Information on this usecase may be found at the delegating access page.

4.2 Multi-user buckets

Information on this usecase may be found at the multi-user buckets page.

4.3 Serving Static Web Pages

SWIFT offers the possibility to serve data in containers as a static web site. The staticweb page has more.

4.4 Uploading large files

When you want to upload some large files you may want to have a look at this page.

4.5 Uploading many small files

When you want to upload a folder with many small files, then you may want to have a look at this page. • search

11