File servers on Compute Engine

A file server, also called a storage filer, provides a way for applications to read and update files that are shared across machines. Some file solutions are scale-up, and consist of storage attached to a single VM. Some solutions are scale-out, and consist of a cluster of VMs with storage attached that present a single file-system namespace to applications.

Although some file systems use a native POSIX client, many file servers use a protocol that enables client machines to mount a file system and access the files as if they were hosted locally. The most common protocols for exporting file shares are Network File System (NFS) for Linux and the Common Internet File System (CIFS) or Server Message Block (SMB) for Windows.

This solution describes the following options for sharing files:

Compute Engine persistent disks and local SSDs

Managed filer solutions:

Supported filer solutions in Google Cloud Marketplace:

An underlying factor in the performance and predictability of all of the Google Cloud services is the network stack that Google evolved over many years. With the Jupiter Fabric, Google built a robust, scalable, and stable networking stack that can continue to evolve without affecting your workloads. As Google improves and bolsters its network abilities internally, your file-sharing solution benefits from the added performance. For more details on the Jupiter Fabric, see the 2015 paper that describes its evolution.

One feature of Google Cloud that can help you get the most out of your investment is the ability to specify Custom VM types. When choosing the size of your filer, you can pick exactly the right mix of memory and CPU, so that your filer is operating at optimal performance without being oversubscribed.

Further, it is important to choose the correct Compute Engine persistent disk capacity and number of vCPUs to ensure that your file server's storage devices receive the required storage bandwidth and IOPs as well as network bandwidth. A VM receives 2 Gb/s of network throughput for every vCPU (up to the max). For tuning persistent disk, see Optimizing persistent disk and local SSD performance.

Note that Cloud Storage is also a great way to store petabytes of data with high levels of redundancy at a low cost, but Cloud Storage has a different performance profile and API than the file servers discussed here.

Summary of file server options

The following table summarizes the features of persistent disks and the filer options:

Filer solution Optimal data set Throughput Managed support Export protocols
Filestore 1 TB to 64 TB Up to 1.2 GB/s Fully managed service by Google NFSv3
NetApp Cloud Volumes 1 TB to 100 TB Up to 4.5 GB/s Fully managed service by Google and NetApp NFSv3, NFSv4, SMB2, SMB3
Elastifile (acquired by Google Cloud) 10s of TB to > 1 PB Up to 10s of GB/s Elastifile (acquired by Google Cloud) NFSv3
OneFS 108 TiB up to 50 PiB Up to 97 MB/s per TiB Fully managed service by Google and Dell Technologies NFSv3, NFSv4, SMB1, SMB2, SMB3, HDFS (upon request)
Panzura 10s of TB to > 1 PB Up to several GB/s Panzura NFSv3, NFSv4, SMB1, SMB2, SMB3
Read-only PD < 64 TB 240 to 1,200 MB/s No Direct attachment

Compute Engine persistent disks and local SSDs

If you have data that only needs to be accessed by a single VM or doesn't change over time, you might use Compute Engine's persistent disks, and avoid a file server altogether. With persistent disks, you can format them with a file system such as Ext4 or XFS and attach volumes in either read-write or read-only modes. This means that you can first attach a volume to an instance, load it with the data you need, and then attach it as a read-only disk to hundreds of virtual machines simultaneously. Employing read-only persistent disks does not work for all use cases, but it can greatly reduce complexity, compared to using a file server.

Persistent disks deliver consistent performance. All disks of the same size (and for SSD persistent disks, the same number of vCPUs) that you attach to your instance have the same performance characteristics. You don't need to pre-warm or test your persistent disks before using them in production.

The cost of persistent disks is easy to determine because there are no I/O costs to consider after provisioning your volume. Persistent disks can also be resized on the fly, allowing you to start with a low-cost and low-capacity volume, and not requiring you to spin up additional instances or disks to scale your capacity.

If total storage capacity is the main requirement, you can use low-cost standard persistent disks. For the best performance while continuing to be durable, you can use the SSD persistent disks.

If your data is ephemeral and requires sub-millisecond latency and high I/O operations per second (IOPS), you can leverage up to 9 TB of local SSDs for extreme performance. Local SSDs provide GB/s of bandwidth and millions of IOPS, all while not using up your instances' allotted network bandwidth. It is important to remember though that Local SSDs have certain trade-offs in availability, durability, and flexibility.

For a comparison of the many disk types available to Compute Engine instances, see the documentation for block storage.

Considerations when choosing a filer solution

Choosing a filer solution requires you to make tradeoffs regarding manageability, cost, performance, and scalability. Making the decision is easier if you have a well-defined workload, which isn't often the case. Where workloads evolve over time or are highly variant, it's prudent to trade cost savings for flexibility and elasticity, so you can grow into your solution. On the other hand, if you have a temporal and well-known workload, you can create a purpose-built filer architecture that you can easily tear down and rebuild to meet your immediate storage needs.

One of the first decisions to make is whether you want to pay for a managed filer service, a filer solution that includes product support, or an unsupported solution.

  • Managed filer services are the easiest to operate, because either Google or a partner is handling all operations. These filer services might even provide an SLA for availability like most other Google Cloud services.
  • Unmanaged yet supported solutions provide additional flexibility. Partners can help with any issues, but the day-to-day operation of the filer is left to the user.
  • Unsupported solutions require the most effort to deploy and maintain, leaving all issues to the user. These solutions are not covered in this document.

Your next decision involves figuring out the filer's durability and availability requirements. Most filer solutions are zonal solutions and do not by default provide protection if the zone fails. So it's important to consider if a disaster recovery solution that protects against zonal failures is required. Further, it's important to understand your application requirements for durability and availability. For example, the choice of local SSDs or persistent disks in your deployment has a big impact, as does the configuration of your filer solutions software. Each solution requires careful planning to achieve high durability, availability, and even protection against zonal and regional failures.

Finally, consider the locations (that is, zones, regions, on-premises data centers) of where you need to access the data. The locations of the compute farms that access your data influence your choice of filer solution because only some solutions allow hybrid on-premises and in-cloud access.

Managed filer solutions

Filestore

Filestore is Google's fully managed Network Attached Storage (NAS) solution.

You can easily mount Filestore file shares on Compute Engine VMs. Filestore is also tightly integrated with Google Kubernetes Engine so your containers can reference the same shared data.

Filestore offers two performance tiers, Standard and Premium. Both tiers provide consistent performance and predictable costs.

For more information follow these links:

NetApp Cloud Volumes

NetApp Cloud Volumes Service for Google Cloud is a fully-managed cloud-native storage service that is integrated in the Google Cloud console, with seamless billing and support from Google.

The service allows you to quickly mount persistent shared storage to your compute instances. This storage delivers high throughput to your applications at low latency, with robust data-protection capabilities (snapshots and copies). With enterprise-grade architecture, the service provides high performance for both sequential and random workloads, which can scale across hundreds or thousands of Compute Engine compute instances. In seconds, volumes that range in size from 1 TB to 100 TB can be provisioned and protected with automated space-efficient snapshots. Commands to mount the created volumes to compute instances, are available in the Cloud Console, further enhancing the user experience.

Architecture of NetApp Cloud Volumes Services

There's no need to rewrite apps as Cloud Volumes provides POSIX compliance shares required by a broad range of file-based workloads including web and rich media content, used across many industries such as electronic design automation (EDA) and Media & Entertainment.

With three service levels—standard, premium, and extreme—that you can change on demand, Cloud Volumes Service for Google Cloud delivers the right performance fit for your workload, without impacting availability of your workloads. NetApp can also help sync your data between On-Premises and Cloud Volumes Service for Google Cloud.

For more information, follow these links:

Elastifile (acquired by Google Cloud)

Elastifile (acquired by Google Cloud) simplifies enterprise storage and data management on Google Cloud and across hybrid clouds. Elastifile delivers cost-effective, high-performance parallel access to global data while maintaining strict consistency powered by a dynamically scalable, distributed file system. With Elastifile, existing NFS applications and NAS workflows can run in the cloud without requiring refactoring, yet retain the benefits of enterprise data services (high availability, compression, deduplication, replication, and so on). Native integration with Google Kubernetes Engine allows seamless data persistence, portability, and sharing for containerized workloads.

Elastifile is deployable and scalable at the push of a button. It lets you create and expand file system infrastructure easily and on-demand, ensuring that storage performance and capacity always align with your dynamic workflow requirements. As an Elastifile cluster expands, both metadata and I/O performance scale linearly. This scaling allows you to enhance and accelerate a broad range of data-intensive workflows, including high-performance computing, analytics, cross-site data aggregation, DevOps, and many more. As a result, Elastifile is a great fit for use in data-centric industries such as life sciences, electronic design automation (EDA), financial services, and media and entertainment.

Elastifile's CloudConnect capability enables granular, bidirectional data transfer between any POSIX file system and Cloud Storage. To optimize performance and minimize costs, CloudConnect ensures that data is compressed and deduplicated before transfer and sends changes only after the initial data synchronization. When leveraged for hybrid cloud deployments, CloudConnect allows you to efficiently load data into Cloud Storage from any on-premises NFS file system, delivering a cost-effective way to bring data to Google Cloud. When leveraged in Google Cloud, CloudConnect enables cost-optimized data tiering between an Elastifile file system and Cloud Storage.

Diagram of Elastifile data storage and management

For more information, follow these links:

Dell Technologies Cloud OneFS for Google Cloud

Dell Technologies Cloud OneFS for Google Cloud is an integrated cloud-native file service for Google Cloud users powered by Dell EMC Isilon, the industry’s #1 scale-out NAS storage system. This turnkey offering, managed by Dell Technologies Services, combines the performance and capacity at scale of Isilon OneFS and the flexibility and cost economics of Google Cloud.

OneFS for Google Cloud is a simple, easy-to-use service with annual subscriptions and guaranteed, predictable pricing. Customers simply order it from the Google Cloud Marketplace, and once provisioned they can configure and manage their OneFS clusters directly from the Google Cloud Console. Google sends a single monthly bill, and support comes from Google, while Dell Technologies experts provide complete lifecycle management of the environment.

With OneFS for Google Cloud, organizations can deploy a dedicated, secure Isilon instance with sub-millisecond latency access to Google Cloud on-demand compute and analytics services while retaining the value they enjoy with Isilon without having to make any changes to their applications. OneFS for Google Cloud provides multi-protocol access and scale-out up to 50 PB in a single namespace along with other enterprise-class features such as multi-protocol access, native replication, and snapshots. Backed by enterprise-level uptime and performance SLAs, customers can expand existing and add new file storage capabilities – all without additional investment in their data center, facilities, people, hardware, engineering, or integration.

Google Cloud provides a broad range of compute and analytics services for on-demand, cost-effective processing and analysis of high-throughput, filed-based workloads. Together, OneFS for Google Cloud enables enterprises to run the most demanding file-based workloads in the cloud - from Big Data Analytics, Artificial Intelligence, and Machine Learning to Genome Sequencing and Media and Entertainment, taking advantage of flexible cloud consumption models and cloud economics.

Architecture of Dell Technologies Cloud OneFS for Google Cloud.

For more information, follow these links:

Supported filer solutions in Google Cloud Marketplace

Panzura

Panzura is a leader in managing unstructured data in the cloud. Enterprises in media and entertainment, genomics, life sciences, healthcare, financial services, and more choose Panzura Freedom NAS to consolidate their data islands into a single source of truth in Google Cloud without sacrificing performance or application rewrites. By consolidating unstructured data (NFS, SMB, and Object) into Google Cloud, you can gain access to all your data, collaborate on this data, and analyze and control it for compliance.

Panzura CloudFS underpins the Freedom Family and is a scale-out, distributed file system built for the cloud. It incorporates intelligent file services backed by 26 patents. The Freedom product family cost-effectively allows you to address the following use cases: cloud migration, global collaboration, and search and analytics.

Together, Panzura Freedom and Google Cloud enable IT leaders to:

  • Migrate thousands of legacy applications to Google Cloud without rewrite, changing workflows or sacrificing performance.
  • Eliminate copy data sprawl for backup and secondary storage by consolidating data to a single source of truth.
  • Collaborate globally on large-scale projects to improve productivity and time to market.
  • Modernize your legacy NAS while realizing a 70% cost saving and reducing your file infrastructure in your data center by 90%.
  • Rehydrate legacy tape data for advanced analytics and machine learning.

Learn more: