Swift Object Server implementation that enables objects created using the Swift API to be accessed as files on a High Performance Storage System (HPSS) mount point.
Go to file
OpenDev Sysadmins 1395515c82 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:51:28 +00:00
bin Fix Gerrit gates and other build issues 2016-06-20 17:17:20 -05:00
doc Update documentation for HPSS client API integration 2018-07-03 13:09:04 -05:00
etc Update documentation for HPSS client API integration 2018-07-03 13:09:04 -05:00
extras/apache-deploy Fix building of RPMs 2015-07-15 12:50:49 +05:30
swiftonhpss Use HPSS client API bindings instead of FUSE wrapper 2018-07-02 14:40:16 -05:00
system_test Add performance tests to SwiftOnHPSS 2016-03-18 14:10:48 -05:00
test Use HPSS client API bindings instead of FUSE wrapper 2018-07-02 14:40:16 -05:00
.functests Rebase to Swift 2.3.0 2015-07-06 15:22:10 +05:30
.functests-ci changes references to swiftonfile in tests scripts 2014-07-08 11:04:31 -04:00
.gitignore Modify unit tests and func tests 2014-05-08 12:11:46 +05:30
.gitmodules Add OpenStack Swift as a git submodule 2013-09-05 04:23:50 -07:00
.gitreview OpenDev Migration Patch 2019-04-19 19:51:28 +00:00
.unittests Add HPSS-specific logic to SwiftOnFile, and kick this fork off! 2015-12-11 15:51:00 -06:00
makerpm.sh Add HPSS-specific logic to SwiftOnFile, and kick this fork off! 2015-12-11 15:51:00 -06:00
MANIFEST.in Add HPSS-specific logic to SwiftOnFile, and kick this fork off! 2015-12-11 15:51:00 -06:00
pkgconfig.py Add HPSS-specific logic to SwiftOnFile, and kick this fork off! 2015-12-11 15:51:00 -06:00
README.md Update README.md 2016-02-01 10:38:18 -06:00
requirements.txt Merge upstream updates to support the new Liberty release 2016-01-05 10:27:31 -06:00
setup.py Fix Gerrit gates and other build issues 2016-06-20 17:17:20 -05:00
swiftonhpss.spec Merge upstream updates to support the new Liberty release 2016-01-05 10:27:31 -06:00
test-requirements.txt Rebase to Swift 2.5.0 (liberty) 2015-12-14 12:43:56 +05:30
tox.ini Use HPSS client API bindings instead of FUSE wrapper 2018-07-02 14:40:16 -05:00

Swift-on-HPSS

Swift-on-HPSS is a fork of the Swift-on-File Swift Object Server implementation that enables users to access the same data, both as an object and as a file. Data can be stored and retrieved through Swift's REST interface or as files from your site's HPSS archive system.

Swift-on-HPSS is to be deployed as a Swift storage policy, which provides the advantages of being able to extend an existing Swift cluster and also migrating data to and from policies with different storage backends.

The main difference from the default Swift Object Server is that Swift-on-HPSS stores objects following the same path hierarchy as the object's URL. In contrast, the default Swift implementation stores the object following the mapping given by the Ring, and its final file path is unknown to the user.

For example, an object with URL: https://swift.example.com/v1/acct/cont/obj, would be stored the following way by the two systems:

  • Swift: /mnt/sdb1/2/node/sdb2/objects/981/f79/f566bd022b9285b05e665fd7b843bf79/1401254393.89313.data
  • SwiftOnHPSS: /mnt/swiftonhpss/acct/cont/obj

Use cases

Swift-on-HPSS can be especially useful in cases where access over multiple protocols is desired. For example, imagine a deployment where collected weather datasets are uploaded as objects over Swift's REST interface and existing weather modelling software can pull this archived weather data using any number of interfaces HPSS already supports.

Along the same lines, data can be ingested over Swift's REST interface and then analytic software like Hadoop can operate directly on the data without having to move the data to a separate location.

Another use case is where users might need to migrate data from an existing file storage systems to a Swift cluster.

Similarly, scientific applications may process file data and then select some or all of the data to publish to outside users through the swift interface.

Limitations and Future plans

Currently, files added over a file interface (e.g., PFTP or FUSE), do not show up in container listings, still those files would be accessible over Swift's REST interface with a GET request. We are working to provide a solution to this limitation.

There is also subtle but very important difference in the implementation of last write wins behaviour when compared to OpenStack Swift.

Because Swift-On-HPSS relies on the data replication support of HPSS (dual/quad copy, RAIT, etc) the Swift Object replicator process does not have any role for containers using the Swift-on-HPSS storage policy. This means that Swift geo replication is not available to objects in in containers using the Swift-on-HPSS storage policy. Multi-site replication for these objects must be provided by your HPSS configuration.

Get involved:

(TODO: write specifics for Swift-on-HPSS)

To learn more about Swift-On-File, you can watch the presentation given at the Paris OpenStack Summit: Deploying Swift on a File System. The Paris presentation slides can be found here Also see the presentation given at the Atlanta Openstack Summit: Breaking the Mold with Openstack Swift and GlusterFS. The Atlanta presentation slides can be found here.

Join us in contributing to the project. Feel free to file bugs, help with documentation or work directly on the code. You can file bugs or blueprints on launchpad

or find us in the #swiftonfile channel on Freenode.

Guides to get started:

(TODO: modify these guides with Swift-on-HPSS specifics)

  1. Quick Start Guide with XFS/GlusterFS
  2. Developer Guide