uabrc / uabrc/uabrc.github.io

Documenting more S3 transfer utilities

Open
#548 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

style: article/section 📝 system: storage 🛢
Dominant language
Python
Stars
24
Forks
15
Avg merge
10d 3h
Merged PRs (30d)
1

Description

What would you like to see added?

Caveat!

Our understanding is that s5cmd uses md5 hashes to verify binary content integrity during uploads only, not downloads. For more intricate verification another tool will be required (e.g. of metadata or using another hash). A later post in this issue documents how to use rclone check.

Notes
  • --stat shows total files transferred, failed, successful, at the end of the job
  • --numworkers=$SLURM_CPUS_ON_NODE is perfect for a single-node job
  • --endpoint-url=https://s3.lts.rc.uab.edu/ is required for our S3 endpoint
  • mv will remove the file from the source!
  • cp is what we want until we've verified the files on the destination
Tests

Tests with 8 cpus and 8 GB memory on c0168:

  • 39 files @ 1 GiB each: ~5.1 gbps
  • 1000 files @ 10 MiB each: ~0.95 gbps

Tests with 100 cpus and 200 GB memory on c0202 (amd-hdr100)

  • 1000 files @ 10 MiB each: ~8.0 gbps
Example

Sample commands to get timing and s5cmd cp (in a script):

#!/bin/bash

start_time="$(date -u +%s.%N)"

s5cmd --stat \
    --numworkers=$SLURM_CPUS_ON_NODE \
    --endpoint-url=https://s3.lts.rc.uab.edu/ \
    cp \
    SOURCE_PATH \
    s3://DESTINATION_PATH/

end_time="$(date -u +%s.%N)"
elapsed="$(bc <<<"$end_time-$start_time")"
echo "Total of $elapsed seconds elapsed for process"
Other thoughts

We don't fully understand the cp flag --concurrency.

There are also open questions about the Rados Gateway frontend configuration.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the s5cmd Bash example, transfer notes, and performance results in this issue, then review the linked Ceph Rados Gateway configuration reference and its ceph.conf settings. Document the useful S3 transfer commands, verification caveats, and unresolved concurrency questions; done means the guidance is organized and its limitations are explicit.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
cloud, documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.