Skip to content

Workspaces#

Our Ceph storage/Workspaces are in beta mode with no guarantees about availability and integrity

Our Ceph storage is accessible only on Alex and only through workspaces.

In general, a workspace is a path created via the command ws_allocate. The path to a workspace can be used like any other path. The only difference is that it has an associated lifetime, here called duration. When the duration of a workspace ends, the workspace will be deleted. You can extend the duration multiple times.

A more detailed documentation you find under:

Prerequisite#

You have to execute the commands from this page on Alex's frontends or nodes.

Allocating a workspace#

Create workspace with name <name> for the duration of <days> days:

  • After <days> the workspace will be deleted.
  • <days> must be in the range of 1 to 90 days.
  • If <days> is omitted, duration is 1 day.
  • Duration can be changed and extended multiple times later, see Set a new duration for workspaces.
ws_allocate <name> [<days>]
# will print a path to the workspace: /cephfs/workspace...

Obtaining the path to a workspace#

Get the path to workspace <name>

ws_find <name>
# output:/cephfs/workspace...

In a shell script there is no need to hard code the path to a workspace, store the path in a variable. Here we lookup the path to workspace <name> and store the associated path in $STORAGE_DIR:

STORAGE_DIR="$(ws_find <name>)"
# STORAGE_DIR will then be set to /cephfs/workspace...

Listing your workspaces#

To list all your workspaces and their duration use ws_list. You can limit the output to workspaces those names matching a certain pattern <pattern>.

ws_list [<pattern>]

Set a new duration for workspaces#

This is typically used to extend the duration of a workspace. Set the duration of a workspace named <name> to <days> days with ws_extend. If <days> is not specified 1 day is used.

Note, despite the command name suggests it, the duration is not extended by <days> days, but set to <days> days.

ws_extend <name> [<days>]

Delete a workspace early#

If you want to delete a workspace early, before its lifetime is up:

ws_release <name>

Examples#

In the following example,

  • we create a workspace named demo with a lifetime of 60 days,
  • list its path,
  • find the workspace and assign its path to a variable,
  • list all your created workspaces, and delete demo:
# create workspace
$ ws_allocate demo 60
Info: creating workspace.
/cephfs/workspace/user-demo
remaining extensions  : 100
remaining time in days: 60

# obtain the path to the workspace
$ ws_find demo
/cephfs/workspace/user-demo

# store the path to the workspace in a variable
$ STORAGE=$(ws_find demo)
$ echo "$STORAGE"
/cephfs/workspace/user-demo

# list all your workspaces
$ ws_list
id: delme
     workspace directory  : /cephfs/workspace/user-delme
     remaining time       : 89 days 23 hours
     creation time        : Tue Oct 17 14:05:44 2023
     expiration date      : Mon Jan 15 13:05:44 2024
     filesystem name      : ceph
     available extensions : 99
id: demo
     workspace directory  : /cephfs/workspace/user-demo
     remaining time       : 59 days 23 hours
     creation time        : Tue Oct 17 14:13:57 2023
     expiration date      : Sat Dec 16 13:13:57 2023
     filesystem name      : ceph
     available extensions : 100

# delete workspace demo
$ ws_release demo