Create a Parallelstore instance

A Parallelstore instance is a hosted file storage server that is designed to allow extremely high IOPs and very low latency, by leveraging direct, parallel access to storage media.

When creating a Parallelstore instance, you must define the following properties:

  • The instance's name.
  • The storage capacity. Capacity can range from 12TiB (tebibytes) to 100TiB, in multiples of 4. For example, 16TiB, 20TiB, 24TiB.
  • The location. For best performance, locate your instance in the same zone as your client VMs or clusters.
  • File and directory striping settings. See Performance considerations for details on each of these settings.
  • The VPC network for this instance. This must be the same network as used for your VMs or clusters.

Required permissions

To create a new Parallelstore instance, you must have Parallelstore Admin (roles/parallelstore.admin) IAM permissions for your project.

See Access control with IAM for details.

Performance considerations

To maximize the performance of your Parallelstore instance:

  • Create your instance in the same Google Cloud zone as the Compute Engine VMs or Google Kubernetes Engine clusters that you'll connect with.

  • See Performance considerations to learn about configuration options, including file and directory striping options.

Create an instance

You can create a new Parallelstore instance from the following interfaces.

gcloud

To create a new Parallelstore instance, use the gcloud beta parallelstore instances create command:

gcloud beta parallelstore instances create INSTANCE_ID \
  --capacity-gib=CAPACITY_GIB \
  --location=LOCATION \
  --network=NETWORK_NAME \
  --project=PROJECT_ID \
  --directory-stripe-level=DIRECTORY_STRIPE_LEVEL \
  --file-stripe-level=FILE_STRIPE_LEVEL

Where the following values must be specified:

  • INSTANCE_ID is the name of this Parallelstore instance. It must:

    • Contain only lowercase letters, numbers, and hyphens.
    • Start with a letter.
    • Be between 1-63 characters.
    • End with a number or a letter.
    • Be unique within the project and location.
  • --capacity-gib is the storage capacity of the instance in Gibibytes (GiB). Allowed values are from 12000 to 100000, in multiples of 4000.

  • --location must be a valid Google Cloud zone that is supported by Parallelstore. See Supported locations for a full list.

  • --network is the name of the VPC network that you created in Configure a VPC network.

  • --project is your Google Cloud project ID.

  • --directory-stripe-level defines the striping level for directories. Allowed values are:

    • directory-stripe-level-balanced
    • directory-stripe-level-max
    • directory-stripe-level-min

    See Performance considerations for details.

  • --file-stripe-level defines file striping settings. Allowed values are:

    • file-stripe-level-balanced
    • file-stripe-level-max
    • file-stripe-level-min

    See Performance considerations for details.

A successful request returns an operation ID:

Create request issued for: [$INSTANCE_ID]
Waiting for operation [projects/$PROJECT_ID/locations/us-central1-a/operations/
operation-1234567890-609d21deae6f0-befaf0bc-867b1aa1] to complete...

The instance creation process takes 5-10 minutes.

REST

To create an instance using the REST API, send a request to the following endpoint:

POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/ZONE/instances?instanceId=INSTANCE_NAME
Authorization: Bearer AUTH_TOKEN
{
  "capacityGib": string,
  "network": string,
  "fileStripeLevel": enum (FileStripeLevel),
  "directoryStripeLevel": enum (DirectoryStripeLevel)
}

Where the following values must be specified:

  • PROJECT_ID is your Google Cloud project ID.

  • ZONE must be a valid Google Cloud zone that is supported by Parallelstore. See Supported locations for a full list.

  • INSTANCE_NAME is the name of this Parallelstore instance. It must:

    • Contain only lowercase letters, numbers, and hyphens.
    • Start with a letter.
    • Be between 1-63 characters.
    • End with a number or a letter.
    • Be unique within the project and location.
  • capacityGib is the storage capacity of the instance in Gibibytes (GiB). Allowed values are from 12000 to 100000, in multiples of 4000.

  • network is the name of the VPC network that you created in Configure a VPC network.

  • fileStripeLevel defines the file striping setting for all files on this instance. Allowed values are:

    • FILE_STRIPE_LEVEL_MIN
    • FILE_STRIPE_LEVEL_BALANCED
    • FILE_STRIPE_LEVEL_MAX

    See Performance considerations for details.

  • directoryStripeLevel defines the striping level for directories. Allowed values are:

    • DIRECTORY_STRIPE_LEVEL_MIN
    • DIRECTORY_STRIPE_LEVEL_BALANCED
    • DIRECTORY_STRIPE_LEVEL_MAX

    See Performance considerations for details.

The API supports additional optional fields for instances. See the Instance resource reference documentation for a full list and descriptions.

Google Cloud console

  1. Go to the Parallelstore page in the Google Cloud console.

    Go to Parallelstore

  2. Click Create. The Create an instance page is displayed.

  3. Enter a unique Instance name and, optionally, a description.

  4. Select a region and zone in which to create this instance. You should place your instance in the same region and zone as the Compute Engine VMs or Google Kubernetes Engine clusters that will connect to it.

  5. Select the storage capacity of your instance.

  6. Select the Network that you created in Create a VPC network.

  7. Choose whether to use an automatically allocated IP range, or to specify a custom IP range.

The Summary section of the page updates to show cost and performance estimates based on your selections.

Click Create to continue. The instance creation process takes 5-10 minutes.

Query instance creation status

To query the status of a create operation, use the operation ID from the response.

gcloud beta parallelstore operations describe OPERATION_ID \
  --location=LOCATION \
  --project=PROJECT_ID

When the operation completes successfully, the result is similar to the following response. Note the list of access points in the instance resource; you'll need these access points for client configuration.

done: true
metadata:
  '@type': type.googleapis.com/google.cloud.parallelstore.v1beta.OperationMetadata
  apiVersion: v1beta
  createTime: '2030-01-01T20:25:10.952802976Z'
  endTime: '2030-01-01T20:31:33.238880873Z'
  requestedCancellation: false
  target: projects/$PROJECT_ID/locations/us-central1-a/instances/$INSTANCE_ID
  verb: create
name: projects/$PROJECT_ID/locations/us-central1-a/operations/operation-1699647909979-609d21deae6f0-befaf0bc-867b1aa1
response:
  '@type': type.googleapis.com/google.cloud.parallelstore.v1beta.Instance
  accessPoints:
  - 172.21.95.2
  - 172.21.95.4
  - 172.21.95.5
  capacityGib: '16000'
  createTime: '2030-01-01T20:25:10.949287427Z'
  name: projects/$PROJECT_ID/locations/us-central1-a/instances/$INSTANCE_ID
  network: $NETWORK_NAME
  reservedIpRange: $IP_RANGE_NAME
  state: ACTIVE
  updateTime: '2030-01-01T20:25:10.949287427Z'

What's next