Workspaces: Difference between revisions

From bwHPC Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
<div style="border: 3px solid #ffc107; padding: 15px; background-color: #fff3cd; margin: 10px 0;">
<div style="border: 3px solid #ffc107; padding: 15px; background-color: #fff3cd; margin: 10px 0;">
'''Note:''' This is a new Workspaces page. The old wiki can be found here: [[Workspace]].
'''Note:''' This is the updated Workspaces guide. The old wiki: [[Workspace]].
</div>
</div>


'''Workspace tools''' provide temporary scratch spaces called '''workspaces''' for your calculations on central file storage. They are meant to keep data for a limited time – but usually longer than the time of a single job run.
'''Workspace tools''' provide temporary storage spaces called '''workspaces''' for your calculations. They are meant for data that needs to persist longer than a single job, but not permanently.


== Important - Read Before Using Workspaces ==
== What are Workspaces? ==


Workspaces give you access to the cluster's fast parallel filesystems (like Lustre or Weka). '''You cannot write directly to these parallel filesystems''' - workspaces provide your designated area.
* '''No Backup:''' Data in workspaces is '''not backed up''' and will be '''automatically deleted''' after expiration
* '''Time-limited:''' Every workspace has a limited lifetime (typically 30-100 days depending on cluster), see the [[Workspaces/Advanced_Features/Quotas#Cluster-Specific_Workspace_Limits|Cluster-Specific Workspace Limits]])
* '''Automatic Reminders:''' You will receive email notifications before expiration
* '''Backup Important Data:''' Copy important results to permanent storage before expiration (check your cluster/site policies for backup locations)


'''Use workspaces for:'''
'''For detailed information''' about advanced features, configuration options, and less frequently used commands, see the '''[[Workspaces/Advanced Features]]''' guide.
* Jobs generating intermediate data
* Data shared between multiple compute nodes
* Multi-step workflows
* Temporary scratch space during calculations

'''Don't use workspaces for:'''
* Permanent storage (use HOME or project directories)
* Single-node temporary files (use <tt>$TMPDIR</tt> instead)

== Important - Read First ==

* '''No Backup:''' Data is '''not backed up''' and will be '''automatically deleted''' after expiration
* '''Time-limited:''' Lifetime typically 30-100 days (cluster-specific). See [[Workspaces/Advanced_Features/Quotas#Cluster-Specific_Workspace_Limits|Cluster Limits]]
* '''Automatic Reminders:''' Email notifications before expiration
* '''Backup Important Data:''' Copy results to permanent storage before expiration

'''For advanced features and detailed options:''' [[Workspaces/Advanced Features]]


== Command Overview ==
== Command Overview ==


The workspace tools consist of several commands:
Main commands:


* <tt>ws_allocate</tt> - Create or extend a workspace
* <tt>ws_allocate</tt> - Create or extend workspace
* <tt>ws_list</tt> - List all your workspaces
* <tt>ws_list</tt> - List your workspaces
* <tt>ws_find</tt> - Find the path to a workspace
* <tt>ws_find</tt> - Find workspace path (for scripts)
* <tt>ws_extend</tt> - Extend the lifetime of a workspace
* <tt>ws_extend</tt> - Extend workspace lifetime
* <tt>ws_release</tt> - Release (delete) a workspace
* <tt>ws_release</tt> - Release (delete) workspace
* <tt>ws_restore</tt> - Restore an expired or released workspace
* <tt>ws_restore</tt> - Restore expired/released workspace
* <tt>ws_register</tt> - Create symbolic links to workspaces
* <tt>ws_register</tt> - Create symbolic links


All commands support <tt>-h</tt> or <tt>--help</tt> to show detailed usage information.
All commands support <tt>-h</tt> for help.


== Quick Start - Most Common Commands ==
== Quick Start ==


{| class="wikitable"
{| class="wikitable"
Line 35: Line 49:
!style="width:60%" | Command
!style="width:60%" | Command
|-
|-
|Create workspace for 30 days
|Create workspace (30 days)
|<tt>ws_allocate myWs 30</tt>
|<tt>ws_allocate myWs 30</tt>
|-
|-
|Create group-writable workspace
|Create group workspace
|<tt>ws_allocate -G groupname myWs 30</tt>
|<tt>ws_allocate -G groupname myWs 30</tt>
|-
|-
|List all your workspaces
|List all workspaces
|<tt>ws_list</tt>
|<tt>ws_list</tt>
|-
|-
|Check which expire soon
|See what expires soon
|<tt>ws_list -Rr</tt>
|<tt>ws_list -Rr</tt> (<tt>-R</tt>=by time, <tt>-r</tt>=reverse)
|-
|-
|Find workspace path (for scripts)
|Find path (for scripts)
|<tt>ws_find myWs</tt>
|<tt>ws_find myWs</tt>
|-
|-
|Extend workspace by 30 days
|Extend by 30 days
|<tt>ws_extend myWs 30</tt>
|<tt>ws_extend myWs 30</tt>
|-
|-
|Delete/release workspace
|Delete workspace
|<tt>ws_release myWs</tt>
|<tt>ws_release myWs</tt>
|-
|-
|Restore released workspace
|Restore workspace
|<tt>ws_restore -l</tt> then <tt>ws_restore oldname newname</tt>
|<tt>ws_restore -l</tt> then <tt>ws_restore oldname newname</tt>
|}
|}
Line 62: Line 76:
== Create Workspace ==
== Create Workspace ==


To create a workspace you need to specify a '''name''' and '''lifetime''' in days:
Create a workspace with a '''name''' and '''lifetime''' in days:


$ ws_allocate myWs 30 # Create for 30 days
'''Basic usage:'''


Returns:
$ ws_allocate myWs 30 # Create workspace for 30 days

'''Common variations:'''

$ ws_allocate -G groupname myWs 30 # Create group-writable workspace (recommended for teams)
$ ws_allocate -g myWs 30 # Create group-readable workspace
$ ws_allocate -F ffuc myWs 30 # bwUniCluster 3.0: Use flash filesystem

This returns:
Workspace created. Duration is 720 hours.
Workspace created. Duration is 720 hours.
Line 80: Line 86:
/work/workspace/scratch/username-myWs-0
/work/workspace/scratch/username-myWs-0


'''Common options:'''
'''Important:''' Creating a workspace a second time with the same command is safe - it always returns the same path.


$ ws_allocate -G groupname myWs 30 # Group-writable (for teams)
'''Capture the path in a variable:'''
$ ws_allocate -g myWs 30 # Group-readable
$ ws_allocate -F ffuc myWs 30 # bwUniCluster 3.0: Flash filesystem

'''Capture path in variable:'''


$ WORKSPACE=$(ws_allocate myWs 30)
$ WORKSPACE=$(ws_allocate myWs 30)
$ cd $WORKSPACE
$ cd "$WORKSPACE"

'''Important:''' Running the same command again is safe - returns the existing workspace path.


'''For all options and advanced usage,''' see the [[Workspaces/Advanced_Features/ws_allocate|Advanced Features guide]].
'''Details:''' [[Workspaces/Advanced_Features/ws_allocate|Advanced Features guide]]


== List Your Workspaces ==
== List Your Workspaces ==


$ ws_list # List all workspaces
'''Basic usage:'''


Shows workspace ID, location, extensions, creation date, and remaining time.
$ ws_list # List all your workspaces


'''Common options:'''
Shows:
* Workspace ID
* Workspace location
* Available extensions
* Creation date and remaining time


$ ws_list -Rr # Sort by remaining time, reverse (last to expire first)
'''Common variations:'''
$ ws_list -s # Short format (names only, for scripts)
$ ws_list -g # Show group workspaces


'''Note:''' To list expired workspaces for restore, use <tt>ws_restore -l</tt>. See [[#Restore_Workspace|Restore]].
$ ws_list -Rr # Sort by remaining time (see what expires soon)
$ ws_list -s # Short format (only names, good for scripts)
$ ws_list -g # List group workspaces


'''Details:''' [[Workspaces/Advanced_Features/ws_list|Advanced Features guide]]
'''Note:''' To list expired workspaces that can be restored, see [[#Restore_Workspace|Restore Workspace]].

'''For all options,''' see the [[Workspaces/Advanced_Features/ws_list|Advanced Features guide]].


== Extend Workspace Lifetime ==
== Extend Workspace Lifetime ==


Extend a workspace before it expires:
Extend before workspace expires:

'''Basic usage:'''


$ ws_extend myWs 30 # Extend by 30 days from now
$ ws_extend myWs 30 # Extend by 30 days from now


'''Alternative commands:'''
'''Alternative:'''


$ ws_allocate -x myWs 30 # Same as ws_extend
$ ws_allocate -x myWs 30 # Same result


'''Note:''' Each extension consumes one of your available extensions (see the [[Workspaces/Advanced_Features/Quotas#Cluster-Specific_Workspace_Limits|Cluster-Specific Workspace Limits]]).
'''Note:''' Each extension consumes one available extension. See [[Workspaces/Advanced_Features/Quotas#Cluster-Specific_Workspace_Limits|Cluster Limits]].


'''For all options,''' see the [[Workspaces/Advanced_Features/ws_extend|Advanced Features guide]].
'''Details:''' [[Workspaces/Advanced_Features/ws_extend|Advanced Features guide]]


== Release (Delete) Workspace ==
== Release (Delete) Workspace ==


When you no longer need a workspace:
When no longer needed:

'''Basic usage:'''


$ ws_release myWs # Release workspace (recoverable during grace period)
$ ws_release myWs # Release workspace


'''What happens:'''
'''What happens:'''
* Workspace becomes inaccessible immediately
* Workspace becomes inaccessible immediately
* Data is kept for a short grace period (usually until next cleanup run) and can be restored with <tt>ws_restore</tt>
* Data kept for short grace period (typically until next cleanup)
* Can be restored with <tt>ws_restore</tt> during grace period
* Released data may still count toward quota until final deletion
* May still count toward quota until final deletion


'''For all options,''' see the [[Workspaces/Advanced_Features/ws_release|Advanced Features guide]].
'''Details:''' [[Workspaces/Advanced_Features/ws_release|Advanced Features guide]]


== Restore Workspace ==
== Restore Workspace ==
Line 161: Line 164:
|}
|}


If you released a workspace by accident or need to recover an expired one, you can restore it within a grace period:
Recover expired or released workspaces within grace period:


'''Basic workflow:'''
'''Restore procedure:'''


$ ws_restore -l # (1) List restorable workspaces
$ ws_restore -l # (1) List restorable workspaces
$ ws_allocate restored 60 # (2) Create a new target workspace
$ ws_allocate restored 60 # (2) Create target workspace
$ ws_restore username-myWs-0 restored # (3) Restore the expired workspace
$ ws_restore username-myWs-0 restored # (3) Restore


'''Note:''' Use the '''full name''' from <tt>ws_restore -l</tt> (including username and timestamp), not the short name from <tt>ws_list</tt>.
'''Important:''' Use the '''full name''' from <tt>ws_restore -l</tt> (with username and timestamp), not the short name.


'''For detailed restore options,''' see the [[Workspaces/Advanced_Features/ws_restore|Advanced Features guide]].
'''Details:''' [[Workspaces/Advanced_Features/ws_restore|Advanced Features guide]]


== Work with Groups (Share Workspaces) ==
== Work with Groups (Share Workspaces) ==
Line 184: Line 187:
!style="width:10%" | NEMO2
!style="width:10%" | NEMO2
|-
|-
|<tt>-g</tt> option (group-readable)
|<tt>-g</tt> (group-readable)
| style="text-align:center;" |
| style="text-align:center;" |
| style="text-align:center;" |
| style="text-align:center;" |
Line 191: Line 194:
|style="background-color:#90EE90; text-align:center;" | ✓
|style="background-color:#90EE90; text-align:center;" | ✓
|-
|-
|<tt>-G</tt> option (group-writable)
|<tt>-G</tt> (group-writable)
| style="text-align:center;" |
| style="text-align:center;" |
| style="text-align:center;" |
| style="text-align:center;" |
Line 199: Line 202:
|}
|}


Working with team members is simple using group workspaces:
Simple team collaboration with group workspaces:


=== Create Group Workspace ===
=== Create Group Workspace ===


'''Group-readable workspace''' (team can read):
'''Group-readable (read-only):'''


$ ws_allocate -g myWs 30
$ ws_allocate -g myWs 30


'''Group-writable workspace''' (team can read and write, recommended):
'''Group-writable (recommended):'''


$ ws_allocate -G projectgroup myWs 30
$ ws_allocate -G projectgroup myWs 30 # Replace 'projectgroup' with your group


'''Tip:''' Set default in <tt>~/.ws_user.conf</tt>:
Replace <tt>projectgroup</tt> with your actual group name (e.g., <tt>bw11a000</tt>).

'''Tip:''' Set your default group in <tt>~/.ws_user.conf</tt> to avoid typing it every time:


<pre>
<pre>
Line 219: Line 220:
</pre>
</pre>


Then you only need: <tt>ws_allocate myWs 30</tt>
Then simply: <tt>ws_allocate myWs 30</tt>


=== List Group Workspaces ===
=== List Group Workspaces ===


$ ws_list -g # Show all group workspaces
See all workspaces from your group:

$ ws_list -g

This shows workspaces that were created with <tt>-g</tt> or <tt>-G</tt> by anyone in your group.


=== Extend Group Workspace ===
=== Extend Group Workspace ===


Anyone in the group can extend a group-writable workspace (<tt>-G</tt>):
Anyone in the group can extend group-writable workspaces (<tt>-G</tt>):


$ ws_extend myWs 30 # If you created it
$ ws_extend myWs 30 # If you created it
$ ws_allocate -x -u username myWs 30 # If colleague created it
$ ws_allocate -x -u alice myWs 30 # If colleague created it

Replace <tt>username</tt> with the workspace owner's username. This is useful when they're unavailable.


=== Manage Reminders for Group Workspace ===
=== Manage Reminders ===


You can update reminder settings and take over responsibility for reminders on a colleague's workspace:
Take over reminder responsibility:


$ ws_allocate -r 7 -u username -x myWs 0 # Update reminder time and take over
$ ws_allocate -r 7 -u alice -x myWs 0 # Update timing and take over reminders
# another user's workspace reminders


This changes the reminder timing to 7 days before expiration and redirects reminder emails to you instead of the original creator. Useful when you're taking over responsibility for a shared workspace.
Changes reminder to 7 days before expiration and redirects emails to you.


=== Why Use Group Workspaces? ===
=== Why Use Group Workspaces? ===


* Simple collaboration: Everyone can access the same data
* Simple collaboration - everyone accesses same data
* No permission problems: Files automatically get group permissions
* No permission problems - automatic group permissions
* Independent extensions: Team members can extend without original creator
* Independent extensions - team can extend without creator
* Easy to find: Use <tt>ws_list -g</tt> to see all team workspaces
* Easy discovery - <tt>ws_list -g</tt> shows all team workspaces


'''For advanced sharing options''' (sharing with specific users outside your group, ACL-based methods), see the [[Workspaces/Advanced_Features/Sharing|Advanced Features guide]].
'''Advanced sharing:''' [[Workspaces/Advanced_Features/Sharing|Sharing guide]] for ACLs and ws_share

Revision as of 16:32, 2 December 2025

Note: This is the updated Workspaces guide. The old wiki: Workspace.

Workspace tools provide temporary storage spaces called workspaces for your calculations. They are meant for data that needs to persist longer than a single job, but not permanently.

What are Workspaces?

Workspaces give you access to the cluster's fast parallel filesystems (like Lustre or Weka). You cannot write directly to these parallel filesystems - workspaces provide your designated area.

Use workspaces for:

  • Jobs generating intermediate data
  • Data shared between multiple compute nodes
  • Multi-step workflows
  • Temporary scratch space during calculations

Don't use workspaces for:

  • Permanent storage (use HOME or project directories)
  • Single-node temporary files (use $TMPDIR instead)

Important - Read First

  • No Backup: Data is not backed up and will be automatically deleted after expiration
  • Time-limited: Lifetime typically 30-100 days (cluster-specific). See Cluster Limits
  • Automatic Reminders: Email notifications before expiration
  • Backup Important Data: Copy results to permanent storage before expiration

For advanced features and detailed options: Workspaces/Advanced Features

Command Overview

Main commands:

  • ws_allocate - Create or extend workspace
  • ws_list - List your workspaces
  • ws_find - Find workspace path (for scripts)
  • ws_extend - Extend workspace lifetime
  • ws_release - Release (delete) workspace
  • ws_restore - Restore expired/released workspace
  • ws_register - Create symbolic links

All commands support -h for help.

Quick Start

Task Command
Create workspace (30 days) ws_allocate myWs 30
Create group workspace ws_allocate -G groupname myWs 30
List all workspaces ws_list
See what expires soon ws_list -Rr (-R=by time, -r=reverse)
Find path (for scripts) ws_find myWs
Extend by 30 days ws_extend myWs 30
Delete workspace ws_release myWs
Restore workspace ws_restore -l then ws_restore oldname newname

Create Workspace

Create a workspace with a name and lifetime in days:

  $ ws_allocate myWs 30                    # Create for 30 days

Returns:

  Workspace created. Duration is 720 hours. 
  Further extensions available: 3
  /work/workspace/scratch/username-myWs-0

Common options:

  $ ws_allocate -G groupname myWs 30       # Group-writable (for teams)
  $ ws_allocate -g myWs 30                 # Group-readable
  $ ws_allocate -F ffuc myWs 30            # bwUniCluster 3.0: Flash filesystem

Capture path in variable:

  $ WORKSPACE=$(ws_allocate myWs 30)
  $ cd "$WORKSPACE"

Important: Running the same command again is safe - returns the existing workspace path.

Details: Advanced Features guide

List Your Workspaces

  $ ws_list                                # List all workspaces

Shows workspace ID, location, extensions, creation date, and remaining time.

Common options:

  $ ws_list -Rr                            # Sort by remaining time, reverse (last to expire first)
  $ ws_list -s                             # Short format (names only, for scripts)
  $ ws_list -g                             # Show group workspaces

Note: To list expired workspaces for restore, use ws_restore -l. See Restore.

Details: Advanced Features guide

Extend Workspace Lifetime

Extend before workspace expires:

  $ ws_extend myWs 30                      # Extend by 30 days from now

Alternative:

  $ ws_allocate -x myWs 30                 # Same result

Note: Each extension consumes one available extension. See Cluster Limits.

Details: Advanced Features guide

Release (Delete) Workspace

When no longer needed:

  $ ws_release myWs                        # Release workspace

What happens:

  • Workspace becomes inaccessible immediately
  • Data kept for short grace period (typically until next cleanup)
  • Can be restored with ws_restore during grace period
  • May still count toward quota until final deletion

Details: Advanced Features guide

Restore Workspace

Works on cluster bwUC 3.0 BinAC2 Helix JUSTUS 2 NEMO2
ws_restore

Recover expired or released workspaces within grace period:

Restore procedure:

  $ ws_restore -l                          # (1) List restorable workspaces
  $ ws_allocate restored 60                # (2) Create target workspace
  $ ws_restore username-myWs-0 restored    # (3) Restore

Important: Use the full name from ws_restore -l (with username and timestamp), not the short name.

Details: Advanced Features guide

Work with Groups (Share Workspaces)

Works on cluster bwUC 3.0 BinAC2 Helix JUSTUS 2 NEMO2
-g (group-readable)
-G (group-writable)

Simple team collaboration with group workspaces:

Create Group Workspace

Group-readable (read-only):

  $ ws_allocate -g myWs 30

Group-writable (recommended):

  $ ws_allocate -G projectgroup myWs 30    # Replace 'projectgroup' with your group

Tip: Set default in ~/.ws_user.conf:

groupname: projectgroup

Then simply: ws_allocate myWs 30

List Group Workspaces

  $ ws_list -g                             # Show all group workspaces

Extend Group Workspace

Anyone in the group can extend group-writable workspaces (-G):

  $ ws_extend myWs 30                      # If you created it
  $ ws_allocate -x -u alice myWs 30        # If colleague created it

Manage Reminders

Take over reminder responsibility:

  $ ws_allocate -r 7 -u alice -x myWs 0    # Update timing and take over reminders

Changes reminder to 7 days before expiration and redirects emails to you.

Why Use Group Workspaces?

  • Simple collaboration - everyone accesses same data
  • No permission problems - automatic group permissions
  • Independent extensions - team can extend without creator
  • Easy discovery - ws_list -g shows all team workspaces

Advanced sharing: Sharing guide for ACLs and ws_share