Skip to content

Commit 97a464e

Browse files
authored
Integrate storage profile in GCSFuse (#5476)
1 parent b258225 commit 97a464e

22 files changed

Lines changed: 292 additions & 275 deletions

File tree

examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -303,45 +303,24 @@ deployment_groups:
303303
k8s_service_account_name: workload-identity-k8s-sa
304304
outputs: [instructions]
305305

306-
# Create a remote mount of training_bucket using
307-
# mount options optimized for reading training data.
308-
# Based on Source of truth https://github.com/GoogleCloudPlatform/gcsfuse/blob/d1373b665b7f60e98856d2181f1193396ef16427/samples/gke-csi-yaml/gpu/training-pv.yaml#L15
309-
# Some of the options might be available only on latest GKE version, please check the cluster version to meet the required version https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-storage-fuse-csi-driver-perf
310-
- id: gcs-training
311-
source: modules/file-system/pre-existing-network-storage
312-
settings:
313-
remote_mount: $(training_bucket.gcs_bucket_name)
314-
local_mount: /training-data
315-
fs_type: gcsfuse
316-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true"
317-
318-
# Create a remote mount of checkpoint_bucket using mount
319-
# options optimized for writing and reading checkpoint data.
320-
# Based on Source of truth https://github.com/GoogleCloudPlatform/gcsfuse/blob/d1373b665b7f60e98856d2181f1193396ef16427/samples/gke-csi-yaml/gpu/checkpointing-pv.yaml#L15
321-
# Some of the options might be available only on latest GKE version, please check the cluster version to meet the required version https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-storage-fuse-csi-driver-perf
322-
- id: gcs-checkpointing
323-
source: modules/file-system/pre-existing-network-storage
324-
settings:
325-
remote_mount: $(checkpoint_bucket.gcs_bucket_name)
326-
local_mount: /checkpoint-data
327-
fs_type: gcsfuse
328-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true,file-cache:enable-parallel-downloads:true,rename-dir-limit=200000"
329-
330-
# Persistent Volume for training data
306+
# When utilizing GCS Fuse Storage Profiles, you must ensure the GKE Service Agent
307+
# possesses the 'gke.gcsfuse.profileUser' custom IAM role assigned out-of-band.
308+
# Please refer to 'modules/file-system/gke-persistent-volume/README.md' for instructions.
309+
# Persistent Volume for training data using GCS Fuse Storage Profile
331310
- id: training-pv
332311
source: modules/file-system/gke-persistent-volume
333-
use: [gcs-training, a3-ultragpu-cluster]
312+
use: [training_bucket, a3-ultragpu-cluster]
334313
settings:
335-
gcs_bucket_name: $(training_bucket.gcs_bucket_name)
336314
capacity_gib: 1000000
315+
gcsfuse_storage_class_name: gcsfusecsi-training
337316

338-
# Persistent Volume for checkpoint data
317+
# Persistent Volume for checkpoint data using GCS Fuse Storage Profile
339318
- id: checkpointing-pv
340319
source: modules/file-system/gke-persistent-volume
341-
use: [gcs-checkpointing, a3-ultragpu-cluster]
320+
use: [checkpoint_bucket, a3-ultragpu-cluster]
342321
settings:
343-
gcs_bucket_name: $(checkpoint_bucket.gcs_bucket_name)
344322
capacity_gib: 1000000
323+
gcsfuse_storage_class_name: gcsfusecsi-checkpointing
345324

346325
# This is an example job that will install and run an `fio`
347326
# benchmark against the training and checkpointing buckets.

examples/gke-a4/gke-a4.yaml

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -322,45 +322,24 @@ deployment_groups:
322322
k8s_service_account_name: workload-identity-k8s-sa
323323
outputs: [instructions]
324324

325-
# Create a remote mount of training_bucket using
326-
# mount options optimized for reading training data.
327-
# Based on Source of truth https://github.com/GoogleCloudPlatform/gcsfuse/blob/d1373b665b7f60e98856d2181f1193396ef16427/samples/gke-csi-yaml/gpu/training-pv.yaml#L15
328-
# Some of the options might be available only on latest GKE version, please check the cluster version to meet the required version https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-storage-fuse-csi-driver-perf
329-
- id: gcs-training
330-
source: modules/file-system/pre-existing-network-storage
331-
settings:
332-
remote_mount: $(training_bucket.gcs_bucket_name)
333-
local_mount: /training-data
334-
fs_type: gcsfuse
335-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true"
336-
337-
# Create a remote mount of checkpoint_bucket using mount
338-
# options optimized for writing and reading checkpoint data.
339-
# Based on Source of truth https://github.com/GoogleCloudPlatform/gcsfuse/blob/d1373b665b7f60e98856d2181f1193396ef16427/samples/gke-csi-yaml/gpu/checkpointing-pv.yaml#L15
340-
# Some of the options might be available only on latest GKE version, please check the cluster version to meet the required version https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-storage-fuse-csi-driver-perf
341-
- id: gcs-checkpointing
342-
source: modules/file-system/pre-existing-network-storage
343-
settings:
344-
remote_mount: $(checkpoint_bucket.gcs_bucket_name)
345-
local_mount: /checkpoint-data
346-
fs_type: gcsfuse
347-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true,file-cache:enable-parallel-downloads:true,rename-dir-limit=200000"
348-
349-
# Persistent Volume for training data
325+
# When utilizing GCS Fuse Storage Profiles, you must ensure the GKE Service Agent
326+
# possesses the 'gke.gcsfuse.profileUser' custom IAM role assigned out-of-band.
327+
# Please refer to 'modules/file-system/gke-persistent-volume/README.md' for instructions.
328+
# Persistent Volume for training data using GCS Fuse Storage Profile
350329
- id: training-pv
351330
source: modules/file-system/gke-persistent-volume
352-
use: [gcs-training, a4-cluster]
331+
use: [training_bucket, a4-cluster]
353332
settings:
354-
gcs_bucket_name: $(training_bucket.gcs_bucket_name)
355333
capacity_gib: 1000000
334+
gcsfuse_storage_class_name: gcsfusecsi-training
356335

357-
# Persistent Volume for checkpoint data
336+
# Persistent Volume for checkpoint data using GCS Fuse Storage Profile
358337
- id: checkpointing-pv
359338
source: modules/file-system/gke-persistent-volume
360-
use: [gcs-checkpointing, a4-cluster]
339+
use: [checkpoint_bucket, a4-cluster]
361340
settings:
362-
gcs_bucket_name: $(checkpoint_bucket.gcs_bucket_name)
363341
capacity_gib: 1000000
342+
gcsfuse_storage_class_name: gcsfusecsi-checkpointing
364343

365344
# This is an example job that will install and run an `fio`
366345
# benchmark against the training and checkpointing buckets.

examples/gke-a4x-max-bm/gke-a4x-max-bm.yaml

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ vars:
5454
asapd_lite_installer_path: $(ghpc_stage("./asapd-lite-installer.yaml"))
5555
kueue_configuration_path: $(ghpc_stage("./kueue-configuration.yaml.tftpl"))
5656
accelerator_type: nvidia-gb300
57-
version_prefix: "1.34."
57+
version_prefix: "1.35."
5858

5959
# To enable Managed-Lustre please uncomment this section and fill out the settings.
6060
# Additionally, please uncomment the private_service_access, lustre_firewall_rule, managed-lustre and lustre-pv modules.
@@ -330,45 +330,24 @@ deployment_groups:
330330
force_destroy: false
331331
enable_hierarchical_namespace: true
332332

333-
# Create a remote mount of training_bucket using
334-
# mount options optimized for reading training data.
335-
# Based on Source of truth https://github.com/GoogleCloudPlatform/gcsfuse/blob/d1373b665b7f60e98856d2181f1193396ef16427/samples/gke-csi-yaml/gpu/checkpointing-pv.yaml#L15
336-
# Some of the options might be available only on latest GKE version, please check the cluster version to meet the required version https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-storage-fuse-csi-driver-perf
337-
- id: gcs-training
338-
source: modules/file-system/pre-existing-network-storage
339-
settings:
340-
remote_mount: $(training_bucket.gcs_bucket_name)
341-
local_mount: /training-data
342-
fs_type: gcsfuse
343-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true"
344-
345-
# Create a remote mount of checkpoint_bucket using mount
346-
# options optimized for writing and reading checkpoint data.
347-
# Based on Source of truth https://github.com/GoogleCloudPlatform/gcsfuse/blob/d1373b665b7f60e98856d2181f1193396ef16427/samples/gke-csi-yaml/gpu/checkpointing-pv.yaml#L15
348-
# Some of the options might be available only on latest GKE version, please check the cluster version to meet the required version https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-storage-fuse-csi-driver-perf
349-
- id: gcs-checkpointing
350-
source: modules/file-system/pre-existing-network-storage
351-
settings:
352-
remote_mount: $(checkpoint_bucket.gcs_bucket_name)
353-
local_mount: /checkpoint-data
354-
fs_type: gcsfuse
355-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true,file-cache:enable-parallel-downloads:true,rename-dir-limit=200000"
356-
357-
# Persistent Volume for training data
333+
# When utilizing GCS Fuse Storage Profiles, you must ensure the GKE Service Agent
334+
# possesses the 'gke.gcsfuse.profileUser' custom IAM role assigned out-of-band.
335+
# Please refer to 'modules/file-system/gke-persistent-volume/README.md' for instructions.
336+
# Persistent Volume for training data using GCS Fuse Storage Profile
358337
- id: training-pv
359338
source: modules/file-system/gke-persistent-volume
360-
use: [gcs-training, a4x-max-cluster]
339+
use: [training_bucket, a4x-max-cluster]
361340
settings:
362-
gcs_bucket_name: $(training_bucket.gcs_bucket_name)
363341
capacity_gib: 1000000
342+
gcsfuse_storage_class_name: gcsfusecsi-training
364343

365-
# Persistent Volume for checkpoint data
344+
# Persistent Volume for checkpoint data using GCS Fuse Storage Profile
366345
- id: checkpointing-pv
367346
source: modules/file-system/gke-persistent-volume
368-
use: [gcs-checkpointing, a4x-max-cluster]
347+
use: [checkpoint_bucket, a4x-max-cluster]
369348
settings:
370-
gcs_bucket_name: $(checkpoint_bucket.gcs_bucket_name)
371349
capacity_gib: 1000000
350+
gcsfuse_storage_class_name: gcsfusecsi-checkpointing
372351

373352
# This is an example job that will install and run an `fio`
374353
# benchmark against the training and checkpointing buckets.

examples/gke-a4x/gke-a4x.yaml

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -365,45 +365,24 @@ deployment_groups:
365365
effect: NoSchedule
366366
outputs: [instructions]
367367

368-
# Create a remote mount of training_bucket using
369-
# mount options optimized for reading training data.
370-
# Based on Source of truth https://github.com/GoogleCloudPlatform/gcsfuse/blob/d1373b665b7f60e98856d2181f1193396ef16427/samples/gke-csi-yaml/gpu/training-pv.yaml#L15
371-
# Some of the options might be available only on latest GKE version, please check the cluster version to meet the required version https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-storage-fuse-csi-driver-perf
372-
- id: gcs-training
373-
source: modules/file-system/pre-existing-network-storage
374-
settings:
375-
remote_mount: $(training_bucket.gcs_bucket_name)
376-
local_mount: /training-data
377-
fs_type: gcsfuse
378-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true"
379-
380-
# Create a remote mount of checkpoint_bucket using mount
381-
# options optimized for writing and reading checkpoint data.
382-
# Based on Source of truth https://github.com/GoogleCloudPlatform/gcsfuse/blob/d1373b665b7f60e98856d2181f1193396ef16427/samples/gke-csi-yaml/gpu/checkpointing-pv.yaml#L15
383-
# Some of the options might be available only on latest GKE version, please check the cluster version to meet the required version https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-storage-fuse-csi-driver-perf
384-
- id: gcs-checkpointing
385-
source: modules/file-system/pre-existing-network-storage
386-
settings:
387-
remote_mount: $(checkpoint_bucket.gcs_bucket_name)
388-
local_mount: /checkpoint-data
389-
fs_type: gcsfuse
390-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true,file-cache:enable-parallel-downloads:true,rename-dir-limit=200000"
391-
392-
# Persistent Volume for training data
368+
# When utilizing GCS Fuse Storage Profiles, you must ensure the GKE Service Agent
369+
# possesses the 'gke.gcsfuse.profileUser' custom IAM role assigned out-of-band.
370+
# Please refer to 'modules/file-system/gke-persistent-volume/README.md' for instructions.
371+
# Persistent Volume for training data using GCS Fuse Storage Profile
393372
- id: training-pv
394373
source: modules/file-system/gke-persistent-volume
395-
use: [gcs-training, a4x-cluster]
374+
use: [training_bucket, a4x-cluster]
396375
settings:
397-
gcs_bucket_name: $(training_bucket.gcs_bucket_name)
398376
capacity_gib: 1000000
377+
gcsfuse_storage_class_name: gcsfusecsi-training
399378

400-
# Persistent Volume for checkpoint data
379+
# Persistent Volume for checkpoint data using GCS Fuse Storage Profile
401380
- id: checkpointing-pv
402381
source: modules/file-system/gke-persistent-volume
403-
use: [gcs-checkpointing, a4x-cluster]
382+
use: [checkpoint_bucket, a4x-cluster]
404383
settings:
405-
gcs_bucket_name: $(checkpoint_bucket.gcs_bucket_name)
406384
capacity_gib: 1000000
385+
gcsfuse_storage_class_name: gcsfusecsi-checkpointing
407386

408387
# This is an example job that will install and run an `fio`
409388
# benchmark against the training and checkpointing buckets.

examples/gke-consumption-options/dws-flex-start-queued-provisioning/gke-tpu-7x/gke-tpu-7x.yaml

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ deployment_groups:
171171
))
172172
# Cluster versions cannot be updated through the toolkit after creation
173173
# Please manage cluster version from the Google Cloud Console directly
174-
version_prefix: "1.34.1"
174+
version_prefix: "1.35."
175175
release_channel: REGULAR
176176
maintenance_exclusions:
177177
- name: no-minor-or-node-upgrades-indefinite
@@ -236,34 +236,21 @@ deployment_groups:
236236
jobset:
237237
install: true
238238

239-
- id: gcs-training
240-
source: modules/file-system/pre-existing-network-storage
241-
settings:
242-
remote_mount: $(training_bucket.gcs_bucket_name)
243-
local_mount: /training-data
244-
fs_type: gcsfuse
245-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true"
246-
247-
- id: gcs-checkpointing
248-
source: modules/file-system/pre-existing-network-storage
249-
settings:
250-
remote_mount: $(checkpoint_bucket.gcs_bucket_name)
251-
local_mount: /checkpoint-data
252-
fs_type: gcsfuse
253-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true,file-cache:enable-parallel-downloads:true,rename-dir-limit=200000"
254-
255-
# Persistent Volume for training data
239+
# When utilizing GCS Fuse Storage Profiles, you must ensure the GKE Service Agent
240+
# possesses the 'gke.gcsfuse.profileUser' custom IAM role assigned out-of-band.
241+
# Please refer to 'modules/file-system/gke-persistent-volume/README.md' for instructions.
242+
# Persistent Volume for training data using GCS Fuse Storage Profile
256243
- id: training-pv
257244
source: modules/file-system/gke-persistent-volume
258-
use: [gcs-training, gke-tpu-7x-cluster]
245+
use: [training_bucket, gke-tpu-7x-cluster]
259246
settings:
260-
gcs_bucket_name: $(training_bucket.gcs_bucket_name)
261247
capacity_gib: 1000000
248+
gcsfuse_storage_class_name: gcsfusecsi-training
262249

263-
# Persistent Volume for checkpoint data
250+
# Persistent Volume for checkpoint data using GCS Fuse Storage Profile
264251
- id: checkpointing-pv
265252
source: modules/file-system/gke-persistent-volume
266-
use: [gcs-checkpointing, gke-tpu-7x-cluster]
253+
use: [checkpoint_bucket, gke-tpu-7x-cluster]
267254
settings:
268-
gcs_bucket_name: $(checkpoint_bucket.gcs_bucket_name)
269255
capacity_gib: 1000000
256+
gcsfuse_storage_class_name: gcsfusecsi-checkpointing

examples/gke-consumption-options/dws-flex-start-queued-provisioning/gke-tpu-v6e/gke-tpu-v6e.yaml

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ vars:
4545

4646
system_node_pool_disk_size_gb: 200
4747
v6e_node_pool_disk_size_gb: 100
48-
version_prefix: "1.33."
48+
version_prefix: "1.35."
4949

5050
# --- FLEX START SETTINGS ---
5151
enable_flex_start: true
@@ -235,34 +235,21 @@ deployment_groups:
235235
jobset:
236236
install: true
237237

238-
- id: gcs-training
239-
source: modules/file-system/pre-existing-network-storage
240-
settings:
241-
remote_mount: $(training_bucket.gcs_bucket_name)
242-
local_mount: /training-data
243-
fs_type: gcsfuse
244-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true"
245-
246-
- id: gcs-checkpointing
247-
source: modules/file-system/pre-existing-network-storage
248-
settings:
249-
remote_mount: $(checkpoint_bucket.gcs_bucket_name)
250-
local_mount: /checkpoint-data
251-
fs_type: gcsfuse
252-
mount_options: "implicit-dirs,metadata-cache:ttl-secs:-1,metadata-cache:stat-cache-max-size-mb:-1,metadata-cache:type-cache-max-size-mb:-1,file-cache:max-size-mb:-1,file-cache:cache-file-for-range-read:true,file-cache:enable-parallel-downloads:true,rename-dir-limit=200000"
253-
254-
# Persistent Volume for training data
238+
# When utilizing GCS Fuse Storage Profiles, you must ensure the GKE Service Agent
239+
# possesses the 'gke.gcsfuse.profileUser' custom IAM role assigned out-of-band.
240+
# Please refer to 'modules/file-system/gke-persistent-volume/README.md' for instructions.
241+
# Persistent Volume for training data using GCS Fuse Storage Profile
255242
- id: training-pv
256243
source: modules/file-system/gke-persistent-volume
257-
use: [gcs-training, gke-tpu-v6e-cluster]
244+
use: [training_bucket, gke-tpu-v6e-cluster]
258245
settings:
259-
gcs_bucket_name: $(training_bucket.gcs_bucket_name)
260246
capacity_gib: 1000000
247+
gcsfuse_storage_class_name: gcsfusecsi-training
261248

262-
# Persistent Volume for checkpoint data
249+
# Persistent Volume for checkpoint data using GCS Fuse Storage Profile
263250
- id: checkpointing-pv
264251
source: modules/file-system/gke-persistent-volume
265-
use: [gcs-checkpointing, gke-tpu-v6e-cluster]
252+
use: [checkpoint_bucket, gke-tpu-v6e-cluster]
266253
settings:
267-
gcs_bucket_name: $(checkpoint_bucket.gcs_bucket_name)
268254
capacity_gib: 1000000
255+
gcsfuse_storage_class_name: gcsfusecsi-checkpointing

0 commit comments

Comments
 (0)