Skip to content

Enable higher performance self-managed NFS server configurations#3807

Merged
ighosh98 merged 10 commits into
GoogleCloudPlatform:developfrom
ndebuhr:feat/c3-c4-nfs-servers
Mar 26, 2025
Merged

Enable higher performance self-managed NFS server configurations#3807
ighosh98 merged 10 commits into
GoogleCloudPlatform:developfrom
ndebuhr:feat/c3-c4-nfs-servers

Conversation

@ndebuhr

@ndebuhr ndebuhr commented Mar 17, 2025

Copy link
Copy Markdown
Contributor

TLDR: This PR enables higher performance self-managed NFS server configurations (community file-system module)

Boot Disk

C3 and C4 machine families do not support the google_compute_disk default disk type of pd-standard [1][2][3]. However, the NFS server module doesn't currently allow for an override of the default pd-standard boot disk type, so the use of C3 and C4 machines is not possible, despite their importance in Hyperdisk-based optimized NFS setups.

NFS Data Disk

Additionally, most NFS data disk types are currently not supported by the NFS server module: Extreme PD; Hyperdisk Balanced; Hyperdisk Extreme; Hyperdisk ML; and Hyperdisk Throughput. These disk types require throughput and/or IOPS specifications, which are not currently exposed in the module.

Implementation

This PR introduces/exposes the boot disk type, provisioned throughput, and provisioned IOPS with null defaults, to avoid breaking changes, configuration drift, and even non-disruptive in-place resource operations.

Null defaults for the provisioned IOPS and throughput values are also ideal from a UX perspective, as default values vary based on storage type and disk size. Additionally, Hyperdisks do not have a consistent "provisioned specification" structure (e.g., Hyperdisk Balanced needs both IOPS and throughput, but Hyperdisk Extreme needs only IOPS). This all considered, an explicit specification (null defaults) seems optimal.

While not explicitly required for the use case, the boot disk size is also exposed, as being locked in to the rather small defaults (usually 10-30 GB) could be limiting for some heavier-weight NFS server implementations.

Logistics

  • Forked this PR branch from the Toolkit "develop" branch (not main)
  • Tested all changes with pre-commit in a local branch
  • Confirmed that "make tests" passes all tests
  • Unit test coverage looks fine
  • Updated all applicable documentation
  • Followed Cluster Toolkit Contribution guidelines
    • Contributor License Agreement is on file
  • Manually provision-/deprovision-tested the changes across multiple boot disk, data disk, and machine type configurations

@ndebuhr ndebuhr requested review from a team and samskillman as code owners March 17, 2025 00:23

@SwarnaBharathiMantena SwarnaBharathiMantena left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@SwarnaBharathiMantena

Copy link
Copy Markdown
Contributor

/gcbrun

@SwarnaBharathiMantena SwarnaBharathiMantena added the release-module-improvements Added to release notes under the "Module Improvements" heading. label Mar 20, 2025
@annuay-google

Copy link
Copy Markdown
Contributor

@SwarnaBharathiMantena can you please work with Neal to merge this PR?

@ighosh98 ighosh98 self-requested a review March 26, 2025 04:00
ighosh98
ighosh98 previously approved these changes Mar 26, 2025
@ighosh98

Copy link
Copy Markdown
Contributor

/gcbrun

@ighosh98 ighosh98 enabled auto-merge March 26, 2025 04:04
@ighosh98

Copy link
Copy Markdown
Contributor

Quick question @ndebuhr Is there some doc that guides customers on what is the ideal value for provisioned IOPS and throughput ? Might make sense to link those.

auto-merge was automatically disabled March 26, 2025 14:09

Head branch was pushed to by a user without write access

@ndebuhr ndebuhr dismissed stale reviews from SwarnaBharathiMantena and ighosh98 via 5d02c66 March 26, 2025 14:09
@ndebuhr

ndebuhr commented Mar 26, 2025

Copy link
Copy Markdown
Contributor Author

@ighosh98 Yes, there's a good section in our docs on this - less about recommendations, more about possible values based on disk type. Agreed on including a documentation link like that. I've added that link to the module README.md.

@ndebuhr

ndebuhr commented Mar 26, 2025

Copy link
Copy Markdown
Contributor Author

Aside: Happy to take a look at #3566 while I'm "fresh" working on this self-managed NFS module.
@SwarnaBharathiMantena @ighosh98

@ighosh98

Copy link
Copy Markdown
Contributor

/gcbrun

@ighosh98 ighosh98 enabled auto-merge March 26, 2025 14:43
@ighosh98

Copy link
Copy Markdown
Contributor

/gcbrun

@ighosh98 ighosh98 merged commit 315b83b into GoogleCloudPlatform:develop Mar 26, 2025
@ndebuhr ndebuhr deleted the feat/c3-c4-nfs-servers branch March 26, 2025 20:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-module-improvements Added to release notes under the "Module Improvements" heading.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants