-
Notifications
You must be signed in to change notification settings - Fork 175
[Feature]: GCP Hyperdisk Volumes #2588
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Simple Proposal
type: volume
name: myhypervol
backend: gcp
region: us-central1
size: 100GB
volume_type: gcp_hyperdisk_balanced
This is easy to implement, but I wonder whether there is a more robust, generalizable way to specify backend-specific resource options. Extensible Proposal
type: volume
name: myhypervol
backend: gcp
region: us-central1
size: 100GB
backend_options:
gcp:
volume_type: hyperdisk-balanced
|
@dakota-shop, thanks for a detailed proposal! We should go with Extensible since we plan to support more backend-specific volume options (e.g. various parameters for AWS EBS volumes), and it would be much better covered by Extensible than Simple. Some comments on how I'd implement it:
|
@dakota-shop, Speaking of hyperdisks specifically, are you planning to support only Hyperdisk Balanced or other types like Hyperdisk ML as well? Since one of the core features of hyperdisks is configurable IOPS/throughput, do you want to make it configurable via |
Just to confirm, I think you're suggesting we have
If we only implement
I think it makes sense to expose Hyperdisk options in the
I'm curious if you had a preferred implementation in mind for this. I can imagine adding a method to the ABC for |
Yes, we'd support new types by adding from dstack._internal.core.backends.gcp.models import (
GCPHyperdiskVolumeOptions,
)
AnyVolumeOptions = Union[GCPHyperdiskVolumeOptions, ...]
# If there is only one type, use type alias instead of Union:
# AnyVolumeOptions = GCPHyperdiskVolumeOptions In class GCPHyperdiskVolumeOptions(CoreModel):
type: Literal["hyperdisk"] = "hyperdisk"
# oips, throughput, etc
We could work around this later by using prefixes only when they are necessary and/or adding aliases for those without prefixes. But to make the implementation more straightforward, let's always use prefixes like "gcp_hyperdisk", "gcp_persistent_disk", "aws_ebs", etc – I don't have a strong stance on this.
For volumes, now, we don't need to introduce any new interfaces. The backend will accept If |
Uh oh!
There was an error while loading. Please reload this page.
Problem
Currently, Dstack only supports using
pd-balanced
GCE Disks. For higher performance persistent storage on GCP, we want the ability to specify the underlying disk type (e.g.hyperdisk-balanced
).Solution
Add the ability to specify the Volume type that the Backend can interpolate into the GCE disk type (instead of hardcoding
pd-balanced
).Workaround
No response
Would you like to help us implement this feature by sending a PR?
Yes
The text was updated successfully, but these errors were encountered: