Add support for latest-generation Google Cloud machine families#6841
Conversation
refactor(google-batch): introduce 'HYPERDISK_ONLY_FAMILIES' constant to identify machine types that only support Hyperdisk disk types. feat(google-batch): automatically configure 'hyperdisk-balanced' as boot disk type for Hyperdisk-only machine families. fix(google-batch): correctly calculate local SSD size for 'c4', 'c4a', and 'c4d' machine types. test(google-batch): add unit tests for 'isHyperdiskOnly' method in 'GoogleBatchMachineTypeSelector'. test(google-batch): add integration tests to verify Hyperdisk boot disk configuration in 'GoogleBatchTaskHandler'. Signed-off-by: Sofiane Ihaddadene <sosoihd@hotmail.fr>
✅ Deploy Preview for nextflow-docs-staging canceled.
|
d9fa5cd to
d752bc2
Compare
…-vm-families Signed-off-by: Jorge Ejarque <jorgee@users.noreply.github.com>
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
|
I have added support for Fusion by modifying the management of |
plugins/nf-google/src/main/nextflow/cloud/google/batch/GoogleBatchTaskHandler.groovy
Show resolved
Hide resolved
Thanks a lot for your help on this, @jorgee! Really appreciate One thing to flag: hyperdisk-balanced disks are not compatible with all machine families. For example, N1, N2, and N2D do not support Hyperdisk types (see https://docs.cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced?hl=en). So the fallback to hyperdisk-balanced when local SSD is not available might fail for those families. However, N2 and N2D do support local SSDs (see https://docs.cloud.google.com/compute/docs/disks/local-ssd?hl=en#machine-series-lssd), so the local SSD path should work fine for them. |
As far as I saw, the only family that do not support either hyperdisk or local-ssd is E2. But this is only required for the extra disk required when Fusion is enabled. |
Agreed, that makes sense. With this approach we should be covering all scenarios. Thanks for the detailed breakdown! |
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
|
Just removed a duplicated |
jorgee
left a comment
There was a problem hiding this comment.
@bentsherman tested with new instances and Fusion setting hyperdisk when local-ssd is not available. It is ready to merge from my side
pditommaso
left a comment
There was a problem hiding this comment.
Just a couple of minor comments
plugins/nf-google/src/main/nextflow/cloud/google/batch/GoogleBatchMachineTypeSelector.groovy
Outdated
Show resolved
Hide resolved
plugins/nf-google/src/main/nextflow/cloud/google/batch/GoogleBatchTaskHandler.groovy
Outdated
Show resolved
Hide resolved
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
plugins/nf-google/src/main/nextflow/cloud/google/batch/GoogleBatchMachineTypeSelector.groovy
Outdated
Show resolved
Hide resolved
Signed-off-by: Ben Sherman <bentshermann@gmail.com>
Add support for latest-generation Google Cloud machine families #6614
Problem
1. Missing support for latest-generation machine families
Google Cloud has introduced several new general-purpose machine families that are not currently supported by Nextflow:
These families offer significant improvements in:
Without this support, users cannot leverage:
2. Inability to specify boot disk type
Currently, Nextflow only allows configuring the boot disk size via
google.batch.bootDiskSize, but not the disk type. This creates several issues:Compatibility problems:
pd-balanceddisks (the Google Cloud default)hyperdisk-balancedorpd-ssdPerformance optimization:
pd-ssd(higher IOPS)pd-standard(lower cost)Reference: Google Cloud Disk Types Documentation
Solution
This PR addresses both issues with a comprehensive solution:
1. Add support for latest-generation machine families
Machine type recognition:
-lssdsuffixTesting:
Changes
GoogleBatchMachineTypeSelector.groovyHYPERDISK_ONLY_FAMILIESlist,isHyperdiskOnly()method, C4/C4A/C4D-lssdhandlingGoogleBatchTaskHandler.groovyhyperdisk-balancedboot disk for Hyperdisk-only familiesGoogleBatchMachineTypeSelectorTest.groovyisHyperdiskOnly(), C4/C4A/C4D local SSDGoogleBatchTaskHandlerTest.groovyTests
References