Create a Filestore instance using the gcloud CLI

This quickstart shows you how to get up and running quickly with Filestore using the Google Cloud CLI. In this quickstart, you learn how to:

  • Create a Filestore instance.
  • Mount the file share from that instance on a Compute Engine client VM.
  • Create a file on the mounted file share.
  • Delete the Filestore instance.

Before you begin

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  4. To initialize the gcloud CLI, run the following command:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  7. Verify that billing is enabled for your Google Cloud project.

  8. Enable the Filestore API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable file.googleapis.com
  9. Install the Google Cloud CLI.

  10. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  13. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  14. Verify that billing is enabled for your Google Cloud project.

  15. Enable the Filestore API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable file.googleapis.com

Required roles

To get the permissions that you need to complete this quickstart, ask your administrator to grant you the following IAM roles on your project:

For more information about granting roles, see Manage access to projects, folders, and organizations.

You might also be able to get the required permissions through custom roles or other predefined roles.

When you finish the tasks that are described in this document, you can avoid continued billing by deleting the resources that you created. For more information, see Clean up.

Create a Compute Engine VM

Linux

  1. Create a Compute Engine instance. Configure the instance as follows:
    • Name the instance nfs-client.
    • Set the --zone flag to us-central1-c.
    • Set the --image-project flag to debian-cloud.
    • Set the --image-family flag to debian-11.
    • Set the --tags flag to http-server,.
    gcloud compute instances create nfs-client --zone=us-central1-c --image-project=debian-cloud --image-family=debian-11 --tags=http-server,

Windows

  1. Create a Compute Engine instance. Configure the instance as follows:
    • Name the instance nfs-client.
    • Set the --zone flag to us-central1-c.
    • Set the --image-project flag to windows-cloud.
    • Set the --image-family flag to windows-2012-r2.
    • Set the --tags flag to http-server,http-server,.
    gcloud compute instances create nfs-client --zone=us-central1-c --image-project=windows-cloud --image-family=windows-2012-r2 --tags=http-server,http-server,

Create a Filestore instance

This quickstart shows how to create an instance in the regional service tier with custom performance enabled. For details on creating instances, see create an instance.

  1. Create a Filestore instance. Configure the instance as follows:

    • Name the instance nfs-server.
    • Set the --region flag to us-central1.
    • Set the --tier flag to REGIONAL.
    • Set the --performance flag to max-iops-per-tb=17000.

    • Set the --file-share flag to name="vol1",capacity=1TB.

    • Set the --network flag to name="default".

      gcloud filestore instances create nfs-server --region=us-central1 --tier=REGIONAL --performance=max-iops-per-tb=17000 --file-share=name="vol1",capacity=1TB --network=name="default"
  2. Get information about the Filestore instance you created:

      gcloud filestore instances describe nfs-server --region=us-central1 

    The command returns something like:

        createTime: '2025-02-12T09:15:08.163246004Z'
        customPerformanceSupported: true
        fileShares:
         -capacityGb: '1024'
            name: vol1
        name: projects/yourproject/locations/us-central1/instances/nfs-server
        networks:
        -connectMode: DIRECT_PEERING
          ipAddresses:
           - 10.0.0.2
          network: default
          reservedIpRange: 10.0.0.2/26
        performanceConfig:
          iopsPerTb:
            maxIopsPerTb: '17000'
        performanceLimits:
          maxIops: '17000'
          maxReadIops: '17000'
          maxReadThroughputBps: '417792000'
          maxWriteIops: '5100'
          maxWriteThroughputBps: '139264000'
        protocol: NFS_V3
        state: READY
        tier: REGIONAL

Copy down the IP address of the instance for use when mounting the file share. For this quickstart, we use the IP address 10.0.0.2.

Mount the Filestore file share on the nfs-client instance

Linux

  1. Establish an SSH connection to the nfs-client instance:
    gcloud compute ssh nfs-client

  1. Install NFS by running the following commands on the terminal window of nfs-client:

    sudo apt-get -y update &&
    sudo apt-get -y install nfs-common
    
  2. Create a mount directory on the nfs-client instance for the Filestore file share:

    sudo mkdir /mnt/test
    
  3. Mount the file share to the nfs-client instance with the mount command by specifying the IP address of the Filestore instance, the name of the file share, and the mount directory to mount to:

    sudo mount MOUNT-POINT-DIRECTORY /mnt/test
    

    where:

    MOUNT-POINT-DIRECTORY is the path to the directory where the Filestore file share is mounted. For example: 10.0.0.2:/vol1

  4. Optional: Confirm that the Filestore file share is mounted:

    df -h --type=nfs

  5. Make the file share accessible by changing its permissions:

    sudo chmod go+rw /mnt/test
    

Windows

Sign in to the nfs-client instance and open a Command Prompt as an administrator

  1. Create an account and set an initial password for the nfs-client instance:

    gcloud compute reset-windows-password nfs-client
    
  2. Configure your instance to enable connecting to serial ports:

    gcloud compute instances add-metadata nfs-client --metadata=serial-port-enable=1
    
  3. Enter an interactive session:

    gcloud compute connect-to-serial-port nfs-client --port=2
    
  4. At the SAC> prompt, create a new channel:

    cmd
    

    A channel with the name Cmd0001 is created.

  5. Connect to the channel:

    ch -sn Cmd0001
    
  6. Enter the username and password of the nfs-client instance and leave the Domain field blank. You are connected to the Command Prompt interface of the nfs-client instance.

Install NFS client

  1. In the Command Prompt of nfs-client, switch to Windows PowerShell:

    powershell
    
  2. Install the NFS client:

    Install-WindowsFeature -Name NFS-Client
    
  3. Restart the nfs-client instance when prompted:

    restart-computer
    
  4. At the SAC> prompt, wait for the following notification to appear:

    EVENT: The CMD command is now available.

    Then, run the cmd and ch -sn commands as previously instructed to sign in and reconnect to the nfs-client instance.

Configure the user ID used by the NFS client

  1. In the Command Prompt, run powershell to switch to Windows PowerShell.
  2. In PowerShell, run the following commands to create two new registry entries, AnonymousUid and AnonymousGid:

    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
        -Name "AnonymousUid" -Value "0" -PropertyType DWORD
    
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
        -Name "AnonymousGid" -Value "0" -PropertyType DWORD
    
  3. Restart the NFS client service:

    nfsadmin client stop
    
    nfsadmin client start
    

Map the vol1 file share to the nfs-client instance

  1. Exit PowerShell:

    exit
    
  2. From Command Prompt, mount the file share to the nfs-client instance with the mount command by specifying the IP address of the Filestore instance, the name of the file share, and the drive letter to mount to:

    mount -o mtype=hard 10.0.0.2:/vol1 z:
    

Create a file on the mounted file share

Linux

  1. In the nfs-client terminal window, create a file named testfile by running the following command:

    echo 'This is a test' > /mnt/test/testfile
    
  2. Confirm the file was created by running the following command and verifying that testfile is in the directory contents returned:

    ls /mnt/test
    

Windows

  1. In the Command Prompt window of the nfs-client instance, create a file named testfile:

    echo 'This is a test' > Z:\testfile
    
  2. Confirm the file was created by running the following command:

    dir Z:
    

    and verifying that testfile is in the directory contents returned.

Clean up

To avoid incurring charges to your Google Cloud account for the resources used on this page, delete the Google Cloud project with the resources.

Delete the Google Cloud project

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

Delete the Filestore instance

Delete the nfs-server instance:

gcloud filestore instances delete nfs-server --zone=us-central1-c

Delete the Compute Engine instance

Delete the instance:
gcloud compute instances delete nfs-client

What's next