README.md

June 23, 2026 ยท View on GitHub

Warning

This module is deprecated and will be removed on August 31, 2026. The recommended replacement is the GCP Managed Lustre module

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

  # Private Service Access (PSA) requires the compute.networkAdmin role which is
  # included in the Owner role, but not Editor.
  # PSA is required for all Parallelstore functionality.
  # https://cloud.google.com/vpc/docs/configure-private-services-access#permissions
  - id: private_service_access
    source: 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.

Additional configuration for DAOS agent and dfuse

Use daos_agent_config to provide additional configuration for daos_agent, for example:

- id: parallelstorefs
  source: modules/file-system/pre-existing-network-storage
  settings:
    daos_agent_config: |
      credential_config:
        cache_expiration: 1m

Use dfuse_environment to provide additional environment variables for dfuse process, for example:

- id: parallelstorefs
  source: modules/file-system/parallelstore
  settings:
    dfuse_environment:
      D_LOG_FILE: /tmp/client.log
      D_APPEND_PID_TO_LOG: 1
      D_LOG_MASK: debug

Copyright 2026 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

NameVersion
terraform>= 1.12.2
google>= 6.13.0
null~> 3.0
random~> 3.0

Providers

NameVersion
google>= 6.13.0
null~> 3.0
random~> 3.0

Modules

No modules.

Resources

NameType
google_parallelstore_instance.instanceresource
null_resource.hydrationresource
random_id.resource_name_suffixresource

Inputs

NameDescriptionTypeDefaultRequired
daos_agent_configAdditional configuration to be added to daos_config.ymlstring""no
deployment_nameName of the HPC deployment.stringn/ayes
dfuse_environmentAdditional environment variables for DFuse processmap(string){}no
directory_stripeThe parallelstore stripe level for directories.stringnullno
file_stripeThe parallelstore stripe level for files.stringnullno
import_destination_pathThe name of local path to import data on parallelstore instance from GCS bucket.stringnullno
import_gcs_bucket_uriThe name of the GCS bucket to import data from to parallelstore.stringnullno
labelsLabels to add to parallel store instance.map(string){}no
local_mountThe mount point where the contents of the device may be accessed after mounting.string"/parallelstore"no
local_mount_ownerLocal mount owner, string in format :.string""no
local_mount_permissionsLocal mount permissions, specified as mode according to chmod(2).string""no
mount_optionsOptions describing various aspects of the parallelstore instance.string"disable-wb-cache,thread-count=16,eq-count=8"no
nameName of parallelstore instance.stringnullno
network_idThe ID of the GCE VPC network to which the instance is connected given in the format:
projects/<project_id>/global/networks/<network_name>"
stringn/ayes
private_vpc_connection_peeringThe name of the VPC Network peering connection.
If using new VPC, please use modules/network/private-service-access to create private-service-access and
If using existing VPC with private-service-access enabled, set this manually."
stringn/ayes
project_idProject in which the HPC deployment will be created.stringn/ayes
size_gbStorage size of the parallelstore instance in GB.number12000no
zoneLocation for parallelstore instance.stringn/ayes

Outputs

NameDescription
instructionsInstructions to monitor import-data operation from GCS bucket to parallelstore.
network_storageDescribes a parallelstore instance.