March 14, 2023

Google Cloud Filestore with Google Cloud VMware Engine - Part 2

This post explores using Google Cloud Filestore with Google Cloud VMware Engine.

In this multi-part blog series, we have been exploring the various storage options for workloads running within Google Cloud VMware Engine. Previously, Storage Options with Google Cloud VMware Engine – Part 1 introduced the five main offerings and explained the benefits of VMware vSAN running within the SDDC. In this second part of the series, we will cover the Google Cloud Filestore service.

Google Cloud Filestore – Overview

For applications that require file-based data storage, protocols such as Network File System (NFS) have a long history of reliably providing shared file access across networks. Simply put, Filestore instances are fully managed file servers that can present storage to hosts running within Google Cloud, Google Cloud VMware Engine, or even on-premises.

These instances use the NFSv3 file system protocol, can be scaled to very large capacities, and offer multiple service tiers with varying levels of performance and availability (see Table 1 below). In most cases, depending on the service tier, performance scales near-linearly with capacity. When selecting the instance configuration options, the cost and performance estimates are displayed in the right-hand column in the Google Cloud interface.

For protecting data, Filestore’s storage is encrypted automatically, and Google manages the keys for data-at-rest, much like with vSAN. In addition, administrators also have the option of using customer-managed encryption keys depending on the service tier selected.

Table 1: Summary of Google Filestore service tiers, capabilities, and availability

Instance Type

Storage Type

Capacity (TiB)

Min. Step Size

Read/Write IOPS

Read/Write Throughput (MiB/s)

Availability

Data Recovery

BASIC_HDD

HDD

1-10

1.0 GiB

600/1,000

100/100

Zonal

Backups

BASIC_HDD

SDD

10-63.9

1.0 GiB

1,000/5,000

180/120

Zonal

Backups

BASIC_SDD

SSD

2.5-63.9

1.0 GiB

60,000/25,000

1,200/350

Zonal

Backups

HIGH_SCALE_SDD

SDD

10

2.5 TiB

92,000/26,000

2,600/880

Zonal

None

HIGH_SCALE_SSD

SDD

100

2.5 TiB

920,000/260,000

26,000/8,800

Zonal

None

ENTERPRISE

SDD

1

256 GiB

12,000/40,000

120/100

Regional

Snapshots

ENTERPRISE

SDD

10

256 GiB

120,000/40,000

1,200/1,000

Regional

Snapshots

Note: The information has been summarized in the table above, but please consult the Filestore documentation for the latest about the service tiers, expected performance, backups, and snapshots. In addition, check the Filestore Release Notes for the latest certifications and service previews. Only HIGH_SCALE and ENTERPRISE service tiers are certified as Google Cloud VMware Engine Datastores (currently in preview as of March 10, 2023).

Configuration example

In this configuration example, I will show configuring my workload’s application servers named app01-03 (see figure 1) running within Google Cloud VMware Engine to connect to the Filestore Instance running within my Google Cloud project.

Graphical user interface, text, application, email</p>
<p>Description automatically generated Figure 1: Workload application hosts running within Google Cloud VMware Engine (Click images to expand)

These three app hosts run Ubuntu 22.04.2 LTS and have been added to an NSX segment with a CIDR of 192.168.33.0/24.

Creating the Filestore instance

The first step is to create a new Filestore instance. (Filestore can be found from the Google Cloud navigation menu by expanding more products and scrolling down to the storage section.) When creating the instance, you will be prompted for a name and asked to select the service tier, storage type, capacity, and other miscellaneous options (see figure 2).

Graphical user interface, application</p>
<p>Description automatically generated Figure 2: Creating a Filestore instance: General options

As mentioned previously, the upper right corner provides the instance's cost and performance estimate. For this example, I am just allocating 1 TiB of capacity and using the basic HDD option because high performance is unnecessary.

Graphical user interface, text, application, email</p>
<p>Description automatically generated Figure 3: Creating a Filestore instance: Connection options

Towards the bottom of the page are a few more options involving networking and access control. If you have previously set up your private services access, you will see a green check mark (see figure 3). Filestore can use the existing private connection configured for Google Cloud VMware Engine; however, if you have never configured the private service access before, check out the Google Cloud VMware Engine VPC Network Peering demo video.

After supplying a file share name, you must also select the access control. It is highly recommended to restrict access by IP address or range. Depending on the hosts' required security level, one of four access levels can be specified for an IP range or an individual IP address (see figure 4).

Graphical user interface, text, application</p>
<p>Description automatically generated Figure 4: Creating a Filestore instance: Access control options highlighted in red

Depending on the size of the instance, it could take several minutes to provision the storage. However, once the instance is ready you can examine all the details and copy the NFS mount point IP address and file share name (see figure 5).

Figure 5: Filestore instance details

Client configuration

With the Filestore side configured, we can now configure the Ubuntu application hosts in my Google Cloud VMware Engine private cloud.

The first step is installing the nfs-common package on each system:

$ sudo apt install nfs-common

Next, create a mount point directory and set the folder permissions:

$ sudo mkdir -p /nfs/appfarmshare01

$ sudo chmod go+rw /nfs/appfarmshare01

Caution: The chmod command above gives the group and all other users read-write permissions on the directory for testing purposes. More restrictive permissions based on your environment and application needs should be considered.

Finally, you can mount the NFS file share:

$ sudo mount 192.168.70.2:/appfarmshare01 /nfs/appfarmshare01 \

  -o hard,timeo=600,retrans=3,rsize=262144,wsize=1048576,resvport,async

Note: The command options listed after the -o are the mount settings Google recommends for the best performance.

Mounting the share Figure 6: Mounting the Filestore NFS file share from the application server

Note: These same commands must be run on any of the other application servers that need access to the file share.

Once completed, creating a simple text file in the directory will demonstrate that it works correctly (see figure 7).

Testing connectivity Figure 7: Testing the Filestore share from multiple hosts

Note: Once you have confirmed the proper operation of your share, you can add an entry to the /etc/fstab file so that it will be automatically mounted on system startup.

Backups

From within the Filestore instance properties is a backup tab allowing administrators to initiate a data backup manually. Once a backup is started, it will create a copy of the file share stored separately from the instance for data protection (see figure 8).

Graphical user interface, text, application</p>
<p>Description automatically generated Figure 8: Filestore instance backup screen

This backup I created and named “pre-app-patch-01” can restore data if something goes wrong with an update, a deleted file, or some other mishap. Restoring that data can either be done to a new instance, back to the source instance, or another existing instance (see figure 9). If this is a file restore operation, restoring the backup to a new instance will allow one of the application servers to mount the file share to a different directory to compare or copy files.

Caution: Administrators can also restore the backup to the source instance; however, this should be used as a last resort since it will overwrite any data that has changed since the backup and delete all of the existing snapshots (see figure 9).

Graphical user interface, text, application, email</p>
<p>Description automatically generated Figure 9: Filestore recovery - restore to a new instance

Conclusion

Google Cloud Filestore is an easy-to-use solution as file storage for Google Cloud VMware Engine workload machines. It provides multiple scalability, performance, and protection options, all easily managed from the Google Cloud console. In my next post, I will continue the series with another storage option for you to explore, so don’t forget to check back again!

For the latest technical guidance, blogs, or demo videos for Google Cloud VMware Engine, check out VMware Cloud Tech Zone.

Update: Check out the next post in the series -- Google Cloud Storage with Google Cloud VMware Engine - Part 3

Filter Tags

Google Services Google Cloud VMware Engine Blog