Group Storage

From Grid5000
Jump to navigation Jump to search

FIXME Page à renommer en "Group Storage"

This service provides large storage spaces, possibly shared between multiple Grid'5000 users. Those storage spaces are accessible on Grid'5000 over NFS.

Using a storage space that was already created

First you need to request access to the storage space, by contacting the storage space owner. Once you have been authorized, if you use an image with NFS provided by the Grid'5000 team, autofs will do the job for you. You just have to go to:

node:cd /srv/storage/storage_name@server_address

for example:

node:cd /srv/storage/my_storage@granche-srv1.lille.grid5000.fr

You may want to add a symbolic link to this path for convenience:

node:ln -s /srv/storage/my_storage@granche-srv1.lille.grid5000.fr ~/my_storage

If you do not use an image provided by the Grid'5000 team, you will need to use the storage API to enable access to the storage space. Contact the Grid'5000 team if needed.

Requesting a new storage space

To request a new storage space, please send an email to support-staff@list.grid5000.fr. Please copy/paste the following text and fill all the required information

  • Email subject:
Group storage creation
  • Email content:
 What is your Grid'5000 login ?
 <...>
 What name do you want for your storage space ? (only lowercase letters, numbers and hyphen (-) allowed)
 <...>
 On which site do you want the storage space ? You can also specify the server.
 <...>
 What is the name of the group you want to be link with this storage space ? (must start by "sto-", only lowercase letters, numbers and hyphen (-) allowed)
 sto-<...>
 Does the group already exists (from another storage space) ?
 Yes/No
 What size do you require for the storage space?
 XXX GBytes/TBytes
 What is the intended usage, in ~5 lines ?
 <...>
 What is the expiration date (We will contact you before removing your storage) ?
 <...>

The support staff will create the storage space, and if the group is new, will create and set you as an owner of the group.

Available servers for storage spaces

Site Server Name Size Status Notes
Lille granche-srv1.lille.grid5000.fr 94TB Check.png

More servers will be added when this service will no longer be in beta.

Managing the group

For now, the only way to manage the group is by using the REST API.

To get information about a group you may do:

 frontend:curl 'https://api.grid5000.fr/stable/users/groups//sto-mygroup' | jq 
 {
   "uid": 1234,
   "name": "sto-mygroup",
   "manager_uid": "",
   "enabled": true,
   "system": false,
   "grants_access": false,
   "freely_join": false,
   "freely_leave": true,
   "created_at": "2019-03-06T09:11:13.000Z",
   "updated_at": "2019-03-06T09:22:12.000Z",
   "description": "My awesome group",
   "owners": [
     "dtennant"
   ],
   "delegates": [
     "msmith",
     "dtennant"
   ],
   "members": [
     "dtennant",
     "msmith",
     "pcapaldi"
   ],
   "site": false
 }
Note.png Note

The following point are relevant to basic group management:

  • groups have owners, delegates and members. All owners are delegates and all delegates are members. Owners and delegates have basically the same access rights with respect to membership management, but managing the group's meta-data such as its description is reserved to owners.
  • freely_join: if true, users can freely add themselves to the group. If not, one of the group's delegate must add the user.
  • freely_leave: if true, users can freely remove themselves to the group. If not, one of the group's delegate must remove the user.

To manage a group, for example adding 'jwhittaker' as a member, first we get the current config:

 frontend:curl 'https://api.grid5000.fr/stable/users/groups/sto-mygroup' | jq '.' > group_config.json

Then edit group_config.json by adding 'jwhittaker' to the 'member' array with your favorite text editor. Now we just need to send the new configuration to the API:

 frontend:curl -X PUT -H 'Content-Type: application/json' 'https://api.grid5000.fr/stable/users/groups/sto-mygroup' -d '@group_config.json' | jq