Skip to content

Latest commit

 

History

History
164 lines (127 loc) · 7.75 KB

File metadata and controls

164 lines (127 loc) · 7.75 KB

Description

This module creates parallelstore instance. Parallelstore is Google Cloud's first party parallel file system service based on Intel DAOS

Supported Operating Systems

A parallelstore instance can be used with Slurm cluster or compute VM running Ubuntu 22.04, debian 12 or HPC Rocky Linux 8.

Parallelstore Quota

To get access to a private preview of Parallelstore APIs, your project needs to be allowlisted. To set this up, please work with your account representative.

Parallelstore mount options

After parallelstore instance is created, you can specify mount options depending upon your workload. DAOS is configured to deliver the best user experience for interactive workloads with aggressive caching. If you are running parallel workloads concurrently accessing the sane files from multiple client nodes, it is recommended to disable the writeback cache to avoid cross-client consistency issues. You can specify different mount options as follows,

  - id: parallelstore
    source: modules/file-system/parallelstore
    use: [network, ps_connect]
    settings:
      mount_options: "disable-wb-cache,thread-count=20,eq-count=8"

Example - New VPC

For parallelstore instance, Below snippet creates new VPC and configures private-service-access for this newly created network.

 - id: network
    source: modules/network/vpc

  - id: private_service_access
    source: community/modules/network/private-service-access
    use: [network]
    settings:
      prefix_length: 24

  - id: parallelstore
    source: modules/file-system/parallelstore
    use: [network, private_service_access]

Example - Existing VPC

If you want to use existing network with private-service-access configured, you need to manually provide private_vpc_connection_peering to the parallelstore module. You can get this details from the Google Cloud Console UI in VPC network peering section. Below is the example of using existing network and creating parallelstore. If existing network is not configured with private-service-access, you can follow Configure private service access to set it up.

  - id: network
    source: modules/network/pre-existing-vpc
    settings:
      network_name: <network_name> // Add network name
      subnetwork_name: <subnetwork_name> // Add subnetwork name

  - id: parallelstore
    source: modules/file-system/parallelstore
    use: [network]
    settings:
      private_vpc_connection_peering: <private_vpc_connection_peering> # will look like "servicenetworking.googleapis.com"

Import data from GCS bucket

You can import data from your GCS bucket to parallelstore instance. Important to note that data may not be available to the instance immediately. This depends on latency and size of data. Below is the example of importing data from bucket.

  - id: parallelstore
    source: modules/file-system/parallelstore
    use: [network]
    settings:
      import_gcs_bucket_uri: gs://gcs-bucket/folder-path
      import_destination_path: /gcs/import/

Here you can replace import_gcs_bucket_uri with the uri of sub folder within GCS bucket and import_destination_path with local directory within parallelstore instance.

Copyright 2024 Google LLC

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Requirements

Name Version
terraform >= 0.13
google-beta >= 5.25.0
null ~> 3.0
random ~> 3.0

Providers

Name Version
google-beta >= 5.25.0
null ~> 3.0
random ~> 3.0

Modules

No modules.

Resources

Name Type
google-beta_google_parallelstore_instance.instance resource
null_resource.hydration resource
random_id.resource_name_suffix resource

Inputs

Name Description Type Default Required
deployment_name Name of the HPC deployment. string n/a yes
import_destination_path The name of local path to import data on parallelstore instance from GCS bucket. string null no
import_gcs_bucket_uri The name of the GCS bucket to import data from to parallelstore. string null no
labels Labels to add to parallel store instance. map(string) {} no
local_mount The mount point where the contents of the device may be accessed after mounting. string "/parallelstore" no
mount_options Options describing various aspects of the parallelstore instance. string "disable-wb-cache,thread-count=16,eq-count=8" no
name Name of parallelstore instance. string null no
network_id The ID of the GCE VPC network to which the instance is connected given in the format:
projects/<project_id>/global/networks/<network_name>"
string n/a yes
private_vpc_connection_peering The name of the VPC Network peering connection.
If using new VPC, please use community/modules/network/private-service-access to create private-service-access and
If using existing VPC with private-service-access enabled, set this manually."
string n/a yes
project_id Project in which the HPC deployment will be created. string n/a yes
size_gb Storage size of the parallelstore instance in GB. number 12000 no
zone Location for parallelstore instance. string n/a yes

Outputs

Name Description
instructions Instructions to monitor import-data operation from GCS bucket to parallelstore.
network_storage Describes a parallelstore instance.