Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
en:services:application_services:high_performance_computing:data_sharing [2021/10/05 14:44] – [Data sharing] | en:services:application_services:high_performance_computing:data_sharing [2021/10/05 15:04] (current) – added S3 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Data sharing ====== | ||
+ | This documentation describes how multiple users can share data within SCC. | ||
+ | |||
+ | There are currently 4 options we offer, described below. | ||
+ | |||
+ | ===== Using a hidden directory ===== | ||
+ | |||
+ | In this case the data will be available for reading by all users or by a specific POSIX group **only if they know the path to it**. You should send the path to users whom you want to give the access. In order to make it safer, better to share data via ''/ | ||
+ | |||
+ | First you need to create a directory with a random name | ||
+ | <code bash> | ||
+ | SHAREDIR=$(mktemp -p / | ||
+ | </ | ||
+ | This will create a directory with a random name in ''/ | ||
+ | Now you can copy or move the files you want to share in that directory: | ||
+ | <code bash> | ||
+ | cp / | ||
+ | mv / | ||
+ | </ | ||
+ | Now you need to set permissions to the directories: | ||
+ | <code bash> | ||
+ | chmod go=x / | ||
+ | chmod -R go+rX $SHAREDIR # will make the files readable for other users and the group | ||
+ | </ | ||
+ | After that send the path to users you want to share data with. To print the path of the shared directory run: | ||
+ | <code bash> | ||
+ | echo $SHAREDIR | ||
+ | </ | ||
+ | The users who know the path can '' | ||
+ | |||
+ | After sharing is done, don't forget to unset execute permission of the parent directory to restrict the access to files again. | ||
+ | <code bash> | ||
+ | chmod go= / | ||
+ | </ | ||
+ | |||
+ | ===== Project directory in scratch filesystem ===== | ||
+ | |||
+ | In this case we will create a shared project directory in scratch filesystem (''/ | ||
+ | |||
+ | ==== Applying for a group ==== | ||
+ | In order to share the directory with a group of users you need to apply for a POSIX group by [[en: | ||
+ | |||
+ | ===== Functional account ===== | ||
+ | |||
+ | In this case you will have a '' | ||
+ | |||
+ | First you need to apply for the [[https:// | ||
+ | After the POSIX group is ready, change the permissions of the '' | ||
+ | <code bash> | ||
+ | ssh functionalusername@login.gwdg.de | ||
+ | chmod g+rwxs . # everyone in the group will have all access rights to the directory | ||
+ | chgrp YOURGROUP . # change the group of the Home directory | ||
+ | </ | ||
+ | If you don't want members of the group to be able to delete or rename the files that don't belong to them, you can add a sticky bit to it with | ||
+ | <code bash> | ||
+ | chmod g+t . | ||
+ | </ | ||
+ | |||
+ | ===== Using S3 ===== | ||
+ | |||
+ | In this case you first need to get an S3-Bucket from us. In order to get an S3-Bucket you can simply write a Mail to < | ||
+ | |||
+ | You can access your S3-Bucket from a compute node using '' | ||
+ | |||
+ | In order to work with your S3-Bucket, you could for instance use '' | ||
+ | |||
+ | <code bash> | ||
+ | module load rclone | ||
+ | # List content of your Bucket | ||
+ | rclone ls < | ||
+ | # Or Snyc the Content of your $HOME with the Bucket | ||
+ | rclone sync -i $HOME/ | ||
+ | # Or Snyc the Content of your Bucket with your $HOME | ||
+ | rclone sync -i < | ||
+ | </ | ||
+ | |||
+ | This requires a config file in ''/ | ||
+ | <code ini> | ||
+ | [< | ||
+ | type = s3 | ||
+ | provider = Ceph | ||
+ | env_auth = false | ||
+ | access_key_id = < | ||
+ | secret_access_key = < | ||
+ | region = | ||
+ | endpoint = http:// | ||
+ | location_constraint = | ||
+ | acl = | ||
+ | server_side_encryption = | ||
+ | storage_class = | ||
+ | </ |