Skip to content

Commit 79f2067

Browse files
committed
added more references and test validation
1 parent af742dd commit 79f2067

File tree

9 files changed

+99
-7
lines changed

9 files changed

+99
-7
lines changed

examples/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,7 @@ File systems:
261261
2.5 TiB of capacity
262262
* The projectsfs is mounted at `/projects` and is a high scale SSD filestore
263263
instance with 10TiB of capacity.
264-
* The DDN-EXAScaler module is deprecated. The recommended replacement is the
265-
[GCP Managed Lustre module](../../../../modules/file-system/managed-lustre/README.md)
264+
* The managed_lustre is mounted at /lustre and is designed for the highly parallel and random I/O performance. It has a minimum capacity of ~18TiB.
266265

267266
#### Quota Requirements for hpc-enterprise-slurm.yaml
268267

examples/cae/cae-slurm.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,13 @@ deployment_groups:
128128
local_mount: /scratch
129129

130130
# If you require maximum IO performance, you can consider to bring up a dedicated parallel
131-
# file system, e.g.Sycomp GPFS.
131+
# file system, e.g.GCPs Managed Lustre,Sycomp GPFS,NetApp Volumes etc.
132132
# Note: Those solutions may have associated license cost.
133133
#
134134
# Please visit here for more information
135135
# - Sycomp IBM Spectrum Scale: https://console.developers.google.com/marketplace/product/sycomp/sycomp-storage-fueled-by-ibm-spectrum-scale
136-
136+
# - Managed Lustre: https://github.com/GoogleCloudPlatform/cluster-toolkit/blob/main/modules/file-system/managed-lustre/README.md
137+
137138
######## Remote Desktop(s) #######
138139
# This block creates chrome remote desktop.
139140
# For more info: https://github.com/GoogleCloudPlatform/hpc-toolkit/tree/main/community/modules/remote-desktop/chrome-remote-desktop

examples/hpc-enterprise-slurm.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ deployment_groups:
106106
# This file system has an associated license cost.
107107
- id: managed_lustre
108108
source: modules/file-system/managed-lustre
109-
use: [network]
109+
use: [network, private_service_access]
110110
settings:
111111
local_mount: /lustre
112112

examples/pfs-managed-lustre-vm.yaml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,26 @@ deployment_groups:
4545
remote_mount: lustrefs
4646
size_gib: 36000
4747

48+
- id: startup-script
49+
source: modules/scripts/startup-script
50+
settings:
51+
install_ansible: true
52+
runners:
53+
- type: shell
54+
destination: startup.sh
55+
content: |
56+
#!/bin/bash
57+
set -ex
58+
59+
output_dir=/lustre/test
60+
[[ ! -d $output_dir ]] && mkdir -m a+w $output_dir
61+
62+
os_name=\$(sed -nr 's/^ID="?([^"]+)"?/\1/p' /etc/os-release)
63+
echo $os_name > ${output_dir}/${os_name}.txt
64+
4865
- source: modules/compute/vm-instance
4966
id: lustre_ubuntu22_instances
50-
use: [network, lustre-gcp]
67+
use: [network, lustre-gcp, startup-script]
5168
settings:
5269
add_deployment_name_before_prefix: true
5370
name_prefix: lustre-ubuntu22
@@ -56,3 +73,9 @@ deployment_groups:
5673
instance_image:
5774
project: ubuntu-os-cloud
5875
name: ubuntu-2204-jammy-v20250128
76+
- id: wait-lustre-ubuntu22
77+
source: community/modules/scripts/wait-for-startup
78+
settings:
79+
instance_name: $(lustre_ubuntu22_instances.name[0])
80+
timeout: 7200
81+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Copyright 2023 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
---
16+
17+
- name: Create output folder
18+
ansible.builtin.shell: |
19+
[[ -d {{ custom_vars.output_dir }} ]] || sudo mkdir -m a+w {{ custom_vars.output_dir }}
20+
args:
21+
executable: /bin/bash
22+
- name: Write file for Slurm machines
23+
with_items: "{{ custom_vars.partitions }}"
24+
ansible.builtin.shell: |
25+
srun -N 1 -p '{{ item }}' bash -c 'echo {{ item }} > {{ custom_vars.output_dir }}/{{ item }}.txt'
26+
args:
27+
executable: /bin/bash
28+
register: write_file_output
29+
30+
- name: Print console output
31+
ansible.builtin.debug:
32+
msg: "{{ write_file_output }}"
33+
34+
- name: Ensure a file exists for each partition
35+
with_items: "{{ custom_vars.partitions }}"
36+
ansible.builtin.shell: |
37+
test $(cat {{ custom_vars.output_dir }}/{{ item }}.txt) == '{{ item }}'
38+
args:
39+
executable: /bin/bash
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Copyright 2023 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
---
16+
- name: Ensure a file exists for each OS type
17+
with_items: "{{ custom_vars.vm_os_types }}"
18+
ansible.builtin.shell: |
19+
test $(cat {{ custom_vars.output_dir }}/{{ item }}.txt) == '{{ item }}'
20+
args:
21+
executable: /bin/bash

tools/cloud-build/daily-tests/tests/hpc-enterprise-slurm.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ custom_vars:
4848
mounts:
4949
- /home
5050
- /projects
51-
- /scratch
51+
- /lustre

tools/cloud-build/daily-tests/tests/pfs-managed-lustre-slurm.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ controller_node: "{{ slurm_cluster_name }}-controller"
3333
post_deploy_tests:
3434
- test-validation/test-partitions.yml
3535
- test-validation/test-mounts.yml
36+
- test-validation/test-managed-lustre-slurm.yml
3637
custom_vars:
38+
output_dir: /lustre/test
39+
num_slurm_nodes: 1
3740
mounts:
3841
- /lustre
3942
partitions:

tools/cloud-build/daily-tests/tests/pfs-managed-lustre-vm.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ cli_deployment_vars:
2525
lustre_instance_id: "lustre-instance-{{build}}"
2626
post_deploy_tests:
2727
- test-validation/test-mounts.yml
28+
- test-validation/test-managed-lustre-vm.yml
2829
custom_vars:
30+
output_dir: /lustre/test
31+
num_slurm_nodes: 1
2932
mounts:
3033
- /lustre
34+
vm_os_types:
35+
- ubuntu
36+

0 commit comments

Comments
 (0)