File storage, also known as network-attached storage (NAS), provides file-level access to applications to read and update information that can be shared across multiple machines. Some on-premises file storage solutions have a scale-up architecture and simply add storage to a fixed amount of compute resources. Other file storage solutions have a scale-out architecture where capacity and compute (performance) can be incrementally added to an existing file system as needed. In both storage architectures, one or multiple virtual machines (VMs) can access the storage.
Although some file systems use a native POSIX client, many storage systems 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 in some cases Windows) and Server Message Block (SMB) for Windows.
This document describes the following options for sharing files:
- Compute Engine Persistent Disk and local SSDs
- Managed solutions:
- Partner 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.
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.
Furthermore, 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 Gbps 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 solutions
The following table summarizes the file-server solutions and features:
Solution | Optimal dataset | Throughput | Managed support | Export protocols |
---|---|---|---|---|
Filestore Basic | 1 TiB to 64 TiB | Up to 1.2 GiB/s | Fully managed by Google | NFSv3 |
Filestore Zonal | 1 TiB to 100 TiB | Up to 26 GiB/s | Fully managed by Google | NFSv3 |
Filestore Regional | 1 TiB to 100 TiB | Up to 26 GiB/s | Fully managed by Google | NFSv3 |
Google Cloud NetApp Volumes | 1 GiB to 100 TiB | MBs/s to 4.5 GiB/s | Fully managed by Google | NFSv3, NFSv4.1, SMB2, SMB3 |
NetApp Cloud Volumes ONTAP | 1 GiB to 1 PiB | varies | Customer-managed | NFSv3, NFSv4.1, SMB2, SMB3, iSCSI |
Nasuni | 10s of TB to > 1 PB | Up to 1.2 GBps | Nasuni- and customer-managed | NFSv3, NFSv4, NFSv4.1, NFSv4.2, SMB2, SMB3 |
Read-only Persistent Disk | < 64 TB | 240 to 1,200 MBps | No | Direct attachment |
Persistent Disk and local SSD
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 Persistent Disk volumes, 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 mode. 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 VMs 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 simple to determine because there are no I/O costs to consider after provisioning your volume. Persistent disks can also be resized when required. This lets you start with a low-cost and low-capacity volume, and you need not create 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 SSD persistent disks.
If your data is ephemeral and requires sub-millisecond latency and high I/O operations per second (IOPS), you can take advantage of up to 9 TB of local SSDs for extreme performance. Local SSDs provide GBps 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 file storage solution
Choosing a file storage 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 file storage architecture that you can 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 storage service, a solution that includes product support, or an unsupported solution.
- Managed file storage services are the easiest to operate, because either Google or a partner is handling all operations. These services might even provide a service level agreement (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 storage solution 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 determining the solution's durability and availability requirements. Most file solutions are zonal solutions and don't provide protection by default if the zone fails. So it's important to consider if a disaster recovery (DR) solution that protects against zonal failures is required. It's also important to understand the 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 the file solution 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) 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 file storage solutions
This section describes the Google-managed solutions for file storage.
Filestore Basic
Filestore is Google's fully managed NAS solution.
Filestore Basic instances are suitable for file sharing, software development, and GKE workloads. You can choose either HDD or SSD for storing data. SSD provides better performance. With either option, capacity scales up incrementally, and you can protect the data by using backups.
Filestore Zonal
Filestore Zonal simplifies enterprise storage and data management on Google Cloud and across hybrid clouds. Filestore Zonal delivers cost-effective, high-performance parallel access to global data while maintaining strict consistency powered by a dynamically scalable, distributed file system. With Filestore Zonal, existing NFS applications and NAS workflows can run in the cloud without requiring refactoring, yet retain the benefits of enterprise data services (for example, snapshots and backups). The Filestore CSI driver allows seamless data persistence, portability, and sharing for containerized workloads.
You can scale Filestore Zonal instances on demand. This lets you create and expand file system infrastructure when required, ensuring that storage performance and capacity always align with your dynamic workflow requirements. As a Filestore Zonal cluster expands, both metadata and I/O performance scale linearly. This scaling lets you 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, Filestore Zonal is a great fit for use in data-centric industries such as life sciences (for example, genome sequencing), financial services, and media and entertainment.
Filestore Regional
Filestore Regional
is a fully managed cloud-native NFS solution that lets you deploy critical file-
based applications in Google Cloud, backed by an SLA that delivers
99.99% regional availability. With a 99.99% regional-availability SLA,
Filestore Regional is designed for applications that demand
high availability. With a few mouse clicks (or a few gcloud
commands or API
calls), you can provision NFS shares that are synchronously replicated across
three zones within a region. If any zone within the region becomes unavailable,
Filestore Regional continues to transparently serve data to the
application with no operational intervention on your part.
To further protect critical data, Filestore also lets you take and keep periodic snapshots of the file system. With Filestore, you can recover an individual file or an entire file system in less than 10 minutes from any of the prior recovery points.
For critical applications like SAP, both the database and application tiers need to be highly available. To satisfy this requirement, you can deploy the SAP database tier to Google Cloud Hyperdisk Extreme, in multiple zones using built-in database high availability. Similarly, the NetWeaver application tier, which requires shared executables across many VMs, can be deployed to Filestore Regional, which replicates the Netweaver data across multiple zones within a region. The end result is a highly available three-tier mission-critical application architecture.
IT organizations are also increasingly deploying stateful applications in containers on Google Kubernetes Engine (GKE). This often causes them to rethink which storage infrastructure to use to support those applications. You can use block storage (Persistent Disk), file storage (Filestore Basic, Zonal, or Regional), or object storage (Cloud Storage). Filestore multishares for GKE combined with the Filestore CSI driver lets organizations that require multiple GKE Pods have shared file access, providing an increased level of availability for mission-critical workloads.
NetApp Volumes
NetApp Volumes is a fully managed Google service that lets you quickly mount shared file storage to your Google Cloud compute instances. NetApp Volumes supports SMB, NFS, and multi-protocol access. NetApp Volumes delivers high performance to your applications at low latency, with robust data-protection capabilities: snapshots, copies, cross-region replication, and backup. The service is suitable for applications requiring both sequential and random workloads, which can scale across hundreds or thousands of Compute Engine instances. In seconds, volumes that range in size from 100 GiB to 100 TiB can be provisioned and protected with robust data protection capabilities. With three service levels (Standard, Premium, and Extreme) that you can change on demand, NetApp Volumes delivers the appropriate performance for your workload, without affecting availability. For information about the Google Cloud locations where NetApp Volumes is available, see NetApp Volumes locations.
Partner solutions in Cloud Marketplace
The following partner-provided solutions are available in Cloud Marketplace.
NetApp Cloud Volumes ONTAP
NetApp Cloud Volumes ONTAP (NetApp CVO) is a customer-managed, cloud-based solution that brings the full feature set of ONTAP, NetApp's leading data management operating system, to Google Cloud. NetApp CVO is deployed within your VPC, with billing and support from Google. The ONTAP software runs on a Compute Engine VM, and uses a combination of persistent disks and Cloud Storage buckets (if tiering is enabled) to store the NAS data. The built-in filer accommodates the NAS volumes using thin provisioning so that you pay only for the storage you use. As the data grows, additional persistent disks are added to the aggregate capacity pool.
NetApp CVO abstracts the underlying infrastructure and let you create virtual data volumes carved out of the aggregate pool that are consistent with all other ONTAP volumes on any cloud or on-premises environment. The data volumes you create support all versions of NFS, SMB, multi-protocol NFS/SMB, and iSCSI. They support 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 and entertainment.
NetApp CVO supports instant, space-saving point-in-time snapshots, built-in block-level, incremental forever backup to Cloud Storage and cross-region asynchronous replication for disaster recovery. The option to select the type of Compute Engine instance and persistent disks lets you achieve the performance you want for your workloads. Even when operating in a high-performance configuration, NetApp CVO implements storage efficiencies such as deduplication, compaction, and compressions as well as auto-tiering infrequently-used data to the Cloud Storage bucket enabling you to store petabytes of data while significantly reducing overall storage costs.
DDN EXAScaler Cloud
DDN's EXAScaler Cloud platform is an industry leading parallel shared file solution for high-performance data processing and for managing the large volumes of data required to support AI, HPC, and analytics workloads. Life sciences, energy, autonomous vehicles, financial services, and other data-intensive customers can take advantage of EXAScaler Cloud for AI and analytics in the cloud to maximize their return from Google Cloud resources and create agile workflows with cloud bursting and long-term data retention.
Ideal uses of EXAScaler Cloud include deep learning and inference AI applications, hybrid-cloud architectures for cloud bursting to take advantage of on-demand high-performance processing, and as a repository to hold longer-term assets from an on-premises EXAScaler deployment. The cloud-based EXAScaler is simple to deploy and takes advantage of DDN's parallel file system, which powers over two thirds of the top 100 supercomputers.
EXAScaler Cloud is designed to optimize data-intensive cloud workloads to reduce time to insight by reducing I/O contention and delivering resilient access to shared storage for a large number of clients. EXAScaler Cloud optimizes the whole environment for high performance from application through to the storage devices, including the network and the compute instances themselves.
With flexible configurations, EXAScaler Cloud is useful for high-performance scratch workloads, more persistent IOPS or throughput-oriented applications, and even long-term persistent data. By mimicking on-premises architectures in the cloud, customers can transition workloads seamlessly, helping minimize end-user application disruption as workloads move.
DDN EXAScaler Cloud handles scalable workloads and is backed with the expertise learned supporting the largest data environments in the world. With premium support options, customers get the same expert support experience on-premises and in the cloud.
For more information, see the following:
Nasuni Cloud File Storage
Nasuni replaces enterprise file servers and NAS devices and all associated infrastructures, including backup and DR hardware, with a simpler, low-cost cloud alternative. Nasuni uses Google Cloud object storage to deliver a more efficient software-as-a-service (SaaS) storage solution that scales to handle rapid, unstructured file data growth. Nasuni is designed to handle department, project, and organizational file shares and application workflows for every employee, wherever they work.
Nasuni offers three packages, with pricing for companies and organizations of all sizes so they can grow and expand as needed.
Its benefits include the following:
Cloud-based primary file storage for up to 70% less. Nasuni's architecture takes advantage of built-in object lifecycle management policies. These policies allow complete flexibility for use with Cloud Storage classes, including Standard, Nearline, Coldline, and Archive. By using the immediate-access Archive class for primary storage with Nasuni, you can realize cost savings of up to 70%.
Departmental and organizational file shares in the cloud. Nasuni's cloud-based architecture offers a single global namespace across Google Cloud regions, with no limits on the number of files, file sizes, or snapshots, letting you store files directly from your desktop into Google Cloud through standard NAS (SMB) drive-mapping protocols.
Built-in backup and disaster recovery. Nasuni's "set-it and forget-it" operations make it simple to manage global file storage. Backup and DR is included, and a single management console lets you oversee and control the environment anywhere, anytime.
Replaces aging file servers. Nasuni makes it simple to migrate Microsoft Windows file servers and other existing file storage systems to Google Cloud, reducing costs and management complexity of these environments.
For more information, see the following:
- Nasuni overview video
- Nasuni and Google Cloud partnership web page
- Nasuni Enterprise File Storage for Google Cloud solution brief (PDF)
- Nasuni Cloud File Storage in Cloud Marketplace
- Nasuni and Google Cloud blog
Sycomp Storage Fueled by IBM Spectrum Scale
Sycomp Storage Fueled by IBM Spectrum Scale in Google Cloud Marketplace lets you run your high performance computing (HPC), artificial intelligence (AI), machine learning (ML), and big data workloads in Google Cloud. With Sycomp Storage you can concurrently access data from thousands of VMs, reduce costs by automatically managing tiers of storage, and run your application on-premises or in Google Cloud. Sycomp Storage Fueled by IBM Spectrum Scale is available in Cloud Marketplace, can be quickly deployed, and supports access to your data through NFS and the IBM Spectrum Scale client.
IBM Spectrum Scale is a parallel file system that helps to securely manage large volumes (PBs) of data. The IBM Spectrum Scale parallel file system is well suited for HPC, AI, ML, big data, and other applications that require a POSIX-compliant shared file system. With adaptable storage capacity and performance scaling, Sycomp Storage can support small to large HPC, AI, and ML workloads.
After you deploy a cluster in Google Cloud, you decide how you want to use it. Choose whether you want to use it only in the cloud or in hybrid mode by connecting to an existing on-premises IBM Spectrum Scale cluster.
For more information, see the following:
- IBM Spectrum Scale is now available in Google Cloud
- Sycomp Storage Fueled by IBM Spectrum Scale on Google Cloud
- Sycomp Storage Fueled by IBM Spectrum Scale in Cloud Marketplace
Contributors
Author: Sean Derrington | Group Outbound Product Manager, Storage
Other contributors:
- Dean Hildebrand | Technical Director, Office of the CTO
- Kumar Dhanagopal | Cross-Product Solution Developer