Skip to content

Add module providing mount scripts for WEKA filesystems#3509

Merged
cboneti merged 4 commits into
GoogleCloudPlatform:developfrom
wiktorn:weka-client
Oct 15, 2025
Merged

Add module providing mount scripts for WEKA filesystems#3509
cboneti merged 4 commits into
GoogleCloudPlatform:developfrom
wiktorn:weka-client

Conversation

@wiktorn

@wiktorn wiktorn commented Jan 8, 2025

Copy link
Copy Markdown
Contributor

Support for mounting WEKA filesystems.

This module doesn't support creating WEKA storage, as this can be done by directly calling weka-gcp module.

Because WEKA require gathering environment information from Metadata server during mount it's not possible to create a fstab entry that will work on following mounts. Hence, the mount is done using SystemD unit.

Things for consideration / cleanup:

  • whether to keep network_storage, client_install_runner and mount_runner outputs, or shall those be dropped, to prevent accidental use
  • there is quite a few shellcheck disable, because shellcheck doesn't understand terraform templates, to be decided should shellcheck investigate templates as now, or whether add exclusion of template files
  • should this PR include a blueprint that provisions the WEKA cluster and uses this module

@tpdownes tpdownes self-assigned this Jan 10, 2025
@tpdownes tpdownes assigned wiktorn and unassigned tpdownes Jan 24, 2025
@tpdownes

Copy link
Copy Markdown
Contributor

/gcbrun

@wiktorn wiktorn marked this pull request as ready for review September 30, 2025 14:58
@wiktorn wiktorn requested review from a team and samskillman as code owners September 30, 2025 14:58
@cboneti

cboneti commented Oct 2, 2025

Copy link
Copy Markdown
Member

@wiktorn you are marked as the assignee of this PR, if you are indeed ready for review, please feel free to assign it to me.

@wiktorn wiktorn assigned cboneti and unassigned wiktorn Oct 2, 2025

@cboneti cboneti left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a few questions. PTAL.

Also, could you please consider adding a metadata.yaml file to this module? you can specify which APIs are required there and the toolkit will automatically verify these before attempting to deploy (look at the slurm modules for an example).

Comment thread community/modules/file-system/weka-client/outputs.tf
Comment thread community/modules/file-system/weka-client/outputs.tf Outdated
@cboneti cboneti added the release-new-modules Added to release notes under the "New Modules" heading. label Oct 2, 2025
@cboneti cboneti assigned wiktorn and unassigned cboneti Oct 2, 2025
@cboneti cboneti assigned cboneti and unassigned wiktorn Oct 7, 2025

@cboneti cboneti left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this contribution, @wiktorn! This module will be a great addition for WEKA users.

I've reviewed the code and have a few suggestions:

  1. [optional] Shellcheck Disables: In community/modules/file-system/weka-client/templates/mount-weka.sh.tftpl, could you add a comment above the block of shellcheck disable directives? Just a brief note explaining that they are necessary because shellcheck doesn't recognize the Terraform template syntax (e.g., ${server_ip}). This will help future maintainers.

  2. README Index: Please add an entry for this new module to the main modules/README.md file. Under the "### File System" section, add:

    * **[weka-client]** ![community-badge] ![experimental-badge] : Installs client and mounts [WEKA](https://www.weka.io/) filesystems.

    And at the bottom of the "File System" links section, add:

    [weka-client]: ../community/modules/file-system/weka-client/README.md
  3. Testing: The level of detail in the README suggests this has been tested. Could you briefly confirm the scope of testing done against a live WEKA cluster?

The approach of using a systemd service for mounting seems correct given the dynamic information needed from the metadata server. The README is also very clear and helpful.

@cboneti cboneti assigned wiktorn and unassigned cboneti Oct 14, 2025
Review fixes:
* add client_install_runner in Ansible to install WEKA
* add mount_runner in Ansible to mount WEKA
* update README - add timeout information
* remove modules/file-system/filestore/scripts/mount.yaml as this file
  is unused
@wiktorn

wiktorn commented Oct 14, 2025

Copy link
Copy Markdown
Contributor Author

Thanks @cboneti , updated the README.md.

As for the testing, I tested this module with a Slurm cluster on login nodes and compute nodes, as well as with compute-vm module. I did install a WEKA cluster version 4.4.2.113.

Tests were done using c2-standard-8 instance, with 3 VIRTIO NICs dedicated to WEKA, and 3 cores. I did some simple smoke performance tests and confirmed, that I get 1GB/s performance using single dd with 1GB blocksize.

@wiktorn wiktorn removed their assignment Oct 14, 2025
@cboneti

cboneti commented Oct 15, 2025

Copy link
Copy Markdown
Member

/gcbrun

@cboneti cboneti merged commit 0c22370 into GoogleCloudPlatform:develop Oct 15, 2025
10 of 64 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-new-modules Added to release notes under the "New Modules" heading.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants