Workspaces: Difference between revisions
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 |
'''Note:''' This is the updated Workspaces guide. The old wiki: [[Workspace]]. |
||
</div> |
</div> |
||
'''Workspace tools''' provide temporary |
'''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:''' |
|||
'''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 == |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
== Command Overview == |
== Command Overview == |
||
Main commands: |
|||
* <tt>ws_allocate</tt> - Create or extend |
* <tt>ws_allocate</tt> - Create or extend workspace |
||
* <tt>ws_list</tt> - List |
* <tt>ws_list</tt> - List your workspaces |
||
* <tt>ws_find</tt> - Find |
* <tt>ws_find</tt> - Find workspace path (for scripts) |
||
* <tt>ws_extend</tt> - Extend |
* <tt>ws_extend</tt> - Extend workspace lifetime |
||
* <tt>ws_release</tt> - Release (delete) |
* <tt>ws_release</tt> - Release (delete) workspace |
||
* <tt>ws_restore</tt> - Restore |
* <tt>ws_restore</tt> - Restore expired/released workspace |
||
* <tt>ws_register</tt> - Create symbolic links |
* <tt>ws_register</tt> - Create symbolic links |
||
All commands support <tt>-h</tt> |
All commands support <tt>-h</tt> for help. |
||
== Quick Start |
== Quick Start == |
||
{| class="wikitable" |
{| class="wikitable" |
||
| Line 35: | Line 49: | ||
!style="width:60%" | Command |
!style="width:60%" | Command |
||
|- |
|- |
||
|Create workspace |
|Create workspace (30 days) |
||
|<tt>ws_allocate myWs 30</tt> |
|<tt>ws_allocate myWs 30</tt> |
||
|- |
|- |
||
|Create group |
|Create group workspace |
||
|<tt>ws_allocate -G groupname myWs 30</tt> |
|<tt>ws_allocate -G groupname myWs 30</tt> |
||
|- |
|- |
||
|List all |
|List all workspaces |
||
|<tt>ws_list</tt> |
|<tt>ws_list</tt> |
||
|- |
|- |
||
| |
|See what expires soon |
||
|<tt>ws_list -Rr</tt> |
|<tt>ws_list -Rr</tt> (<tt>-R</tt>=by time, <tt>-r</tt>=reverse) |
||
|- |
|- |
||
|Find |
|Find path (for scripts) |
||
|<tt>ws_find myWs</tt> |
|<tt>ws_find myWs</tt> |
||
|- |
|- |
||
|Extend |
|Extend by 30 days |
||
|<tt>ws_extend myWs 30</tt> |
|<tt>ws_extend myWs 30</tt> |
||
|- |
|- |
||
|Delete |
|Delete workspace |
||
|<tt>ws_release myWs</tt> |
|<tt>ws_release myWs</tt> |
||
|- |
|- |
||
|Restore |
|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 == |
||
Create a workspace with a '''name''' and '''lifetime''' in days: |
|||
| ⚫ | |||
'''Basic usage:''' |
|||
Returns: |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
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 |
||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
$ WORKSPACE=$(ws_allocate myWs 30) |
$ WORKSPACE=$(ws_allocate myWs 30) |
||
$ cd $WORKSPACE |
$ cd "$WORKSPACE" |
||
| ⚫ | |||
''' |
'''Details:''' [[Workspaces/Advanced_Features/ws_allocate|Advanced Features guide]] |
||
== List Your Workspaces == |
== List Your Workspaces == |
||
| ⚫ | |||
'''Basic usage:''' |
|||
Shows workspace ID, location, extensions, creation date, and remaining time. |
|||
| ⚫ | |||
| ⚫ | |||
Shows: |
|||
* Workspace ID |
|||
* Workspace location |
|||
* Available extensions |
|||
* Creation date and remaining time |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
'''Details:''' [[Workspaces/Advanced_Features/ws_list|Advanced Features guide]] |
|||
| ⚫ | |||
| ⚫ | |||
== Extend Workspace Lifetime == |
== Extend Workspace Lifetime == |
||
Extend |
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 |
'''Alternative:''' |
||
$ ws_allocate -x myWs 30 # Same |
$ ws_allocate -x myWs 30 # Same result |
||
'''Note:''' Each extension consumes one |
'''Note:''' Each extension consumes one available extension. See [[Workspaces/Advanced_Features/Quotas#Cluster-Specific_Workspace_Limits|Cluster Limits]]. |
||
''' |
'''Details:''' [[Workspaces/Advanced_Features/ws_extend|Advanced Features guide]] |
||
== Release (Delete) Workspace == |
== Release (Delete) Workspace == |
||
When |
When no longer needed: |
||
'''Basic usage:''' |
|||
$ ws_release myWs # Release workspace |
$ ws_release myWs # Release workspace |
||
'''What happens:''' |
'''What happens:''' |
||
* Workspace becomes inaccessible immediately |
* Workspace becomes inaccessible immediately |
||
* Data |
* Data kept for short grace period (typically until next cleanup) |
||
* Can be restored with <tt>ws_restore</tt> during grace period |
|||
* |
* May still count toward quota until final deletion |
||
''' |
'''Details:''' [[Workspaces/Advanced_Features/ws_release|Advanced Features guide]] |
||
== Restore Workspace == |
== Restore Workspace == |
||
| Line 161: | Line 164: | ||
|} |
|} |
||
Recover expired or released workspaces within grace period: |
|||
''' |
'''Restore procedure:''' |
||
$ ws_restore -l # (1) List restorable workspaces |
$ ws_restore -l # (1) List restorable workspaces |
||
$ ws_allocate restored 60 # (2) Create |
$ ws_allocate restored 60 # (2) Create target workspace |
||
$ ws_restore username-myWs-0 restored # (3) Restore |
$ ws_restore username-myWs-0 restored # (3) Restore |
||
''' |
'''Important:''' Use the '''full name''' from <tt>ws_restore -l</tt> (with username and timestamp), not the short name. |
||
''' |
'''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> |
|<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> |
|<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: | ||
|} |
|} |
||
Simple team collaboration with group workspaces: |
|||
=== Create Group Workspace === |
=== Create Group Workspace === |
||
'''Group-readable |
'''Group-readable (read-only):''' |
||
$ ws_allocate -g myWs 30 |
$ ws_allocate -g myWs 30 |
||
'''Group-writable |
'''Group-writable (recommended):''' |
||
$ ws_allocate -G projectgroup myWs 30 |
$ ws_allocate -G projectgroup myWs 30 # Replace 'projectgroup' with your group |
||
| ⚫ | |||
Replace <tt>projectgroup</tt> with your actual group name (e.g., <tt>bw11a000</tt>). |
|||
| ⚫ | |||
<pre> |
<pre> |
||
| Line 219: | Line 220: | ||
</pre> |
</pre> |
||
Then |
Then simply: <tt>ws_allocate myWs 30</tt> |
||
=== List Group Workspaces === |
=== List 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 |
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 |
$ 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 |
=== Manage Reminders === |
||
Take over reminder responsibility: |
|||
$ ws_allocate -r 7 -u |
$ 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? === |
=== Why Use Group Workspaces? === |
||
* Simple collaboration |
* Simple collaboration - everyone accesses same data |
||
* No permission problems |
* No permission problems - automatic group permissions |
||
* Independent extensions |
* Independent extensions - team can extend without creator |
||
* Easy |
* Easy discovery - <tt>ws_list -g</tt> shows all team workspaces |
||
''' |
'''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
| 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