Enable higher performance self-managed NFS server configurations#3807
Merged
ighosh98 merged 10 commits intoMar 26, 2025
Conversation
Contributor
|
/gcbrun |
Contributor
|
@SwarnaBharathiMantena can you please work with Neal to merge this PR? |
ighosh98
previously approved these changes
Mar 26, 2025
Contributor
|
/gcbrun |
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. |
…OPS, and throughput selection for self-managed NFS
auto-merge was automatically disabled
March 26, 2025 14:09
Head branch was pushed to by a user without write access
5d02c66
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. |
Contributor
Author
|
Aside: Happy to take a look at #3566 while I'm "fresh" working on this self-managed NFS module. |
SwarnaBharathiMantena
approved these changes
Mar 26, 2025
ighosh98
approved these changes
Mar 26, 2025
Contributor
|
/gcbrun |
Contributor
|
/gcbrun |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_diskdefault disk type ofpd-standard[1][2][3]. However, the NFS server module doesn't currently allow for an override of the defaultpd-standardboot 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