Filestore in Google Cloud
A complete, plain-English guide to Google's managed file storage service: what it is, how it works inside, how to choose a tier, how to keep data fast, safe and affordable, and how real teams use shared files at scale.
Picture an office where every employee needs to open the same folder of documents. Everyone sees the same files, anyone can add a new one, and when one person saves a change, the others see it right away. Now imagine that folder is not in one office but is shared by hundreds of computers running in the cloud, all at the same moment.
That shared folder is what Filestore provides. It is Google Cloud’s managed service for file storage. You ask for a certain amount of space, and Google gives you a network folder that many machines can open together, as if it were a normal folder on their own disk. Google runs the servers, the disks, the repairs and the backups. You just use the folder.
In this guide you will learn what Filestore is, why it exists, how file storage differs from other kinds of storage, how its parts fit together, what happens inside when a computer reads or writes a file, how its service levels differ, and how to make it fast, safe, reliable and cost-friendly. Every new word is explained the first time it appears, and almost every idea comes with an everyday example.
WWhat Filestore Is and Why It Exists
Before the details, let us understand the problem that Filestore solves, using a simple story.
The problem: many machines, one set of files
A normal computer disk belongs to one computer. If you save a file on it, only that computer can open it directly. That is fine for a laptop. But modern systems often run on many machines at once. A website might run on twenty servers, and all twenty must show the same uploaded pictures. A video studio might use five hundred machines to draw one film, and every machine needs the same models and textures. A scientific lab might run a thousand jobs that all read the same data.
If each machine kept its own copy of the files, the copies would drift apart. One server would have the new picture, and nineteen would not. Copying files around by hand is slow and full of mistakes. What these systems need is one single, shared place for files that every machine can reach.
Think of a group of students working on a project. If each student keeps notes in a private notebook, the group keeps arguing over who has the latest version. If instead everyone writes in one big shared notebook on the table, there is only one version, and everyone sees updates at once. Filestore is that shared notebook for computers.
The old way: running your own file server
Before managed services, teams built their own file servers. They set up a machine, attached disks, installed software to share folders over the network, planned backups, watched for failures, applied updates and hoped nothing broke at night. If the file server failed, every machine that depended on it stopped working. Running a file server well is real work, and it is easy to get wrong.
The Filestore way: a managed shared folder
Filestore removes that work. It is a managed service, which means Google takes care of the hardware, the operating system, the software that shares the files, the repairs and the upgrades. It uses a very common sharing method called NFS, which stands for Network File System. NFS has been used for decades, and almost every Linux program already knows how to talk to it. That means your existing software usually works with Filestore without being rewritten.
A short history
Google Cloud introduced Filestore in the late 2010s, at first with simple service levels aimed at general file sharing. Over time Google added faster and bigger levels for heavy workloads, and then levels designed for high availability, which survive the loss of a data center building. The product has grown from a basic shared folder into a family of options for different needs.
Where Filestore sits among Google Cloud storage options
Google Cloud offers several kinds of storage. Each is best at a different job.
| Service | Kind of storage | Best for |
|---|---|---|
| Filestore | Shared file storage over NFS | Many machines sharing the same folders, with normal file behavior |
| Persistent Disk and Hyperdisk | Block storage attached to a VM | The main disk of one machine, databases |
| Cloud Storage | Object storage reached over web requests | Huge amounts of files, backups, media, data lakes |
| NetApp Volumes | Managed file storage with extra enterprise features | Teams needing NetApp-style tools and protocols |
| Parallelstore and similar | Very fast parallel file storage | Supercomputing and AI training that need huge speed |
A simple rule: if many machines must read and write the same files and your software expects a normal folder, think Filestore. If you just need to store lots of files cheaply and can use web-style access, think Cloud Storage. If one machine needs its own fast disk, think Persistent Disk.
Production example: shared content for websites
Companies that run content management systems, such as publishing sites and online shops, often have many web servers that must all show the same uploaded images and documents. A shared file service lets each new web server mount the same folder at startup, so adding servers during a traffic spike does not mean copying gigabytes of files first.
FFile, Block and Object Storage Explained
The word “storage” hides three very different ideas. Understanding the difference makes every later chapter easier.
Block storage: the raw disk
Block storage is the plainest kind. The storage is cut into equal-sized pieces called blocks, and the computer that owns the disk decides how to arrange files on them. It looks to the computer like an empty hard drive. Persistent Disk is block storage. It is fast and flexible, but it is normally attached to one machine at a time. The computer using it must run the software that organizes files on it.
File storage: folders and files
File storage adds the organization for you. It gives you folders, file names, permissions and the usual actions: open, read, write, rename, delete, lock. Many machines can connect to the same file storage at once through the network, and the service keeps them all consistent. Filestore is file storage.
Object storage: a giant bucket of items
Object storage keeps each item as a whole object with a name and some descriptive information. You usually reach it through web requests rather than as a mounted folder. It is extremely scalable and cheap, but it does not behave exactly like a normal disk. For example, you generally replace a whole object instead of changing a few bytes in the middle. Cloud Storage is object storage.
Block storage is an empty warehouse floor, and you decide where to put each shelf. File storage is a tidy filing room with labeled cabinets that many people can use together. Object storage is a huge self-storage facility where you drop off a box, get a ticket, and later ask for the whole box back.
| Feature | Block | File (Filestore) | Object |
|---|---|---|---|
| How you see it | A raw disk | A mounted folder tree | Named objects in buckets |
| Shared by many machines | Limited | Yes, by design | Yes, through requests |
| Change part of a file | Yes | Yes | Usually replace the whole object |
| Works with old software | Yes | Yes, very well | Often needs changes |
| Cost for huge volumes | Medium | Higher | Lowest |
| Best at | Databases, boot disks | Shared working data | Archives, media, big data |
Why not just use Cloud Storage for everything?
Cloud Storage is wonderful, but many older programs expect a normal folder with fast small reads and writes, file locking and instant visibility of changes. Tools exist that make a bucket look like a folder, but the behavior and speed are different from a true file system. When an application depends on classic file behavior, Filestore is usually a closer fit.
Why not just share one Persistent Disk?
A Persistent Disk can be attached to several machines only in limited ways, mostly in read-only mode for extra machines. It does not coordinate many writers. Filestore is built for exactly that: many readers and writers, with a server that keeps order.
Do not choose Filestore only because the word “file” sounds familiar. Filestore costs more per gigabyte than object storage. If you are storing a huge archive that is rarely touched, Cloud Storage is the better and cheaper home.
Production example: matching storage to the job
A typical media company uses all three. Finished films and old projects rest in object storage because it is cheap. Artists’ working files and render inputs sit on shared file storage because many machines need them at once. Each machine’s operating system lives on a block disk. Choosing the right kind for each job is how teams keep both speed and cost under control.
CCore Concepts You Must Know First
Filestore has a small vocabulary. Learn these words once, and the rest of the guide will feel familiar.
Instance
A Filestore instance is one managed file server that you create. It is not a virtual machine you log in to. It is a service object that Google runs for you. Each instance has a name, a location, a service level, a size and a network.
File share
A file share is the actual folder tree that clients mount. Inside an instance, you create a share with a name, such as “media” or “uploads”. Machines connect to a share, not to the instance as a whole. Some newer levels allow several shares inside a single instance.
Capacity
Capacity is the amount of space you ask for. Filestore bills you for the capacity you provision, whether or not you fill it. That is different from object storage, where you pay for what you store.
Service tier
A tier, also called a service level, is the kind of Filestore you choose. Tiers differ in speed, size limits, availability and features. We study them in a later chapter.
Location: zone and region
Like other Google Cloud resources, a Filestore instance lives in a zone or, for some tiers, a region. A zone is one isolated group of data center resources. A region is a geographic area with several zones. Choosing a regional tier means your data is kept across more than one zone.
VPC network
A Virtual Private Cloud, or VPC, is your own private network inside Google Cloud. A Filestore instance gets a private address inside it. Filestore is meant to be reached privately, from machines on your network, not from the open internet.
NFS, mount and export
NFS is the language machines use to share files over a network. The machine that offers files is the server. The machines that use them are clients. To mount a share means to attach the remote folder so that it appears at a chosen path on the client, for example a path called /mnt/media. After mounting, programs read and write there as if the files were local. The server decides which clients may connect and what they may do, which is often called the export or access rules.
Snapshot and backup
A snapshot is a quick point-in-time picture of a share that stays close to the live data. A backup is a separate, protected copy of the share kept in another place. Both help you recover from mistakes. We cover them in the data protection chapter.
Instance
The managed file server that Google runs for you.
File Share
The named folder tree that machines mount and use.
Capacity
The space you provision and pay for.
Tier
The speed, size and safety level you choose.
NFS
The common language for sharing files across a network.
Snapshot and Backup
Pictures and copies that let you undo mistakes.
Filestore names, size limits and features have changed over the years, and new options keep appearing. Treat the numbers in this guide as general examples, and check the current limits in Google’s documentation before you plan a real system.
An instance is the building that houses the filing room. A share is one particular filing cabinet inside. Capacity is the number of drawers you rent. The tier is whether it is a basic office, a fast office with extra staff, or a fireproof vault with a second copy in another city.
AArchitecture and Main Components
Now let us zoom out and see how Filestore connects to the machines that use it.
A typical setup has four groups of parts. First, the clients: virtual machines, containers or other services that need the shared files. Second, the network: your VPC, with firewall rules and a private address for the Filestore instance. Third, the Filestore service itself: the managed file servers and the storage behind them. Fourth, the supporting services: identity and access controls, monitoring, logging and backup storage.
flowchart TD
subgraph VPC["Your VPC Network"]
subgraph COMP["Client Machines"]
VM1["Compute Engine VM 1"]
VM2["Compute Engine VM 2"]
GKE["GKE Pods using CSI driver"]
RUN["Cloud Run service with NFS mount"]
end
FW["VPC Firewall Rules"]
end
VM1 -->|"NFS requests"| FW
VM2 -->|"NFS requests"| FW
GKE -->|"NFS requests"| FW
RUN -->|"NFS requests"| FW
FW --> EP["Filestore Private Endpoint"]
subgraph FS["Filestore Service Managed by Google"]
EP --> SRV["NFS Server Layer"]
SRV --> STO["Distributed Storage Layer"]
end
STO --> SNAP["Snapshots"]
STO --> BKP["Backups in Regional Storage"]
IAM["IAM Permissions"] -.-> FS
MON["Cloud Monitoring and Logging"] -.-> FS
Walking through the picture
On the top are the clients. Here we show two Compute Engine virtual machines, a group of Kubernetes pods and a Cloud Run service. All of them mount the same share. Each client sends NFS requests, which are small messages like “read this part of this file” or “write these bytes to that file”.
The requests travel inside your VPC network. The firewall rules act as guards, allowing NFS traffic only from the places you approve. The traffic reaches the private endpoint of the Filestore instance. This is a private address, so the service is not open to the whole internet.
Inside the Filestore service, an NFS server layer receives the requests, checks permissions, and organizes the files. Behind it is a distributed storage layer where the data is kept on many disks, so a single disk failure does not lose your files. You never see these internal machines, and you never patch them.
Supporting parts surround the service. Snapshots and backups protect against mistakes. IAM, which means Identity and Access Management, controls who can create, change or delete instances. Monitoring and logging collect numbers and messages about how the service is doing.
This is like a public library. The readers are your client machines. The library’s front desk is the private endpoint, and the security guard checking cards is the firewall. The librarians are the NFS server layer. The shelves in the back rooms are the storage layer. Backup copies are kept in a second building. The readers never need to know how the back rooms are arranged.
Why this design works
The separation of jobs is the secret. Clients only need to speak NFS. The service hides the servers and the disks, so Google can replace broken parts, add faster hardware and move data around without your programs noticing. And because the endpoint is private and managed, you avoid the single lonely file server that someone has to babysit.
Production example: render farms
Visual effects and animation studios run hundreds or thousands of machines at once to draw frames of a film. Every machine reads the same scene files and textures, and writes finished frames back to a shared folder. A shared file service in the middle gives every machine one consistent view, and the studio can add or remove machines freely as deadlines change.
IInternal Working: How NFS Really Works
This is the part many tutorials skip. Knowing it explains why Filestore behaves the way it does.
Clients and servers talking in small requests
NFS is a conversation. The client does not download an entire file when you open it. Instead, it sends many small requests: find this file name, tell me its size, read the bytes from this position to that position, write these bytes here. The server answers each one. This lets programs work with very large files while touching only the pieces they need.
Versions of NFS
NFS has several versions. NFS version 3 is simple, widely supported and “stateless” in its core design, which means the server does not need to remember much about each client between requests. NFS version 4.1 is newer, keeps more information about open files and locks, and adds features such as better security options and the ability to talk to servers in parallel. Different Filestore tiers support different versions, so check which one your application needs.
Mounting: the first step
When a client mounts a share, it contacts the server at its private address, asks for the share by name, and receives a handle, which is a small token that refers to the root folder. From then on, every operation uses handles. The mount command also carries mount options, such as how large each read or write may be and how the client should behave if the server is slow to answer.
Mounting is like checking into a hotel. You show the front desk who you are, and they give you a key card for your floor. After that, every door you open only needs the key card, not another long conversation at the desk.
Reading and writing
When a program reads a file, the client’s operating system turns the request into NFS read messages. The Filestore server fetches the data from its storage layer and sends it back. For writes, the client sends data to the server. The server can confirm in two styles. A stable write is confirmed only after the data is safely stored. An unstable write is confirmed sooner, and the client later sends a commit message that asks the server to make sure everything is safely stored. This trick makes many writes faster while still giving a safety point.
Client-side caching
To go faster, clients keep copies of recently read data and file details in their own memory. This is caching. It makes repeated reads very quick, since no network trip is needed. The trade-off is that a client’s copy might be slightly out of date if another client has just changed the file. NFS clients check back with the server from time to time, controlled by timers in the mount options. This is why two machines may briefly see slightly different views right after a change, and why programs that need strict instant agreement must use locking or special mount settings.
Locking
When two programs might change the same file, they need a way to take turns. A lock says, “I am using this file, please wait.” NFS supports locking, and Filestore supports it. Good applications use locks for shared files, rather than hoping that two writers will never collide.
Permissions and identities
Files have owners and permissions. In NFS version 3, the client simply tells the server which user number and group number are asking, and the server believes it, as long as the client’s address is allowed. This means the server trusts the client machines, so it is important to control which machines can connect. The server can also apply root squashing, which treats the all-powerful “root” user from a client as an ordinary user, so a compromised client cannot freely take over every file.
Behind the scenes: the storage layer
Below the NFS layer, Filestore stores data on many disks managed by Google, with redundancy so that single failures do not lose data. The exact design depends on the tier. Some tiers keep data inside one zone. Higher-availability tiers keep it across zones. As a user, you do not manage any of this, but it explains why some tiers are more expensive: they do more copying to protect you.
Because every operation is a network round trip, many tiny operations are slower than a few large ones. Opening ten thousand small files takes much longer than reading one big file of the same total size. This single fact explains a large part of Filestore performance tuning.
Do not assume that all clients always see the newest data at the same instant. Client caching can delay visibility for a short time. If your application needs strict agreement between machines, use file locks and test your mount options with realistic workloads.
Production example: shared home directories
Research and engineering teams often give every user a “home directory” on shared file storage, so that wherever a person logs in, on whichever machine, their files and settings are there. NFS was designed for exactly this idea, and it remains one of the most common uses of managed file storage today.
SService Tiers: Choosing the Right Level
Filestore comes in several tiers. Picking the right one is the single most important decision you will make.
Why tiers exist
Different jobs need different things. A small team sharing office documents needs a modest, low-cost folder. A genomics lab needs enormous capacity and fast reads. A bank’s core application needs a folder that keeps working even if a whole data center building loses power. One product cannot be perfect for all three, so Google offers tiers.
Tiers are like hotel room types. A basic room is clean and cheap. A premium room has more space and better service. A suite in a building with its own backup power and a second building across town gives the strongest comfort and safety, at the highest price.
The main tiers
Basic HDD
Lowest cost, hard-drive style speed. Good for general file sharing, small teams, development and light workloads. Lives in a single zone.
Basic SSD
Solid-state speed for the entry level. Better for applications that need quicker responses and more operations per second. Single zone.
Zonal
Large capacity and high speed that grows with size. Built for demanding workloads such as analytics, rendering and scientific computing. Lives in a single zone, with options to protect data.
Regional
Large capacity with data spread across several zones in a region, so the folder keeps working if a zone is lost.
Enterprise
Designed for production and business-critical use. Regional protection, snapshots, backups and features such as multiple shares in one instance for container platforms.
Google has renamed and reorganized Filestore tiers over time. For example, a high-speed tier once called High Scale SSD became the Zonal tier. Always confirm the current tier names and limits in the console or documentation before you decide.
Comparing the tiers on the things that matter
| Question | Basic tiers | Zonal | Regional and Enterprise |
|---|---|---|---|
| Where is data kept? | One zone | One zone | Several zones in a region |
| Survives loss of a zone? | No, unless you restore from backup elsewhere | No, unless replicated or restored | Yes, by design |
| Speed grows with size? | Yes, to a limit | Yes, strongly | Yes |
| Snapshots | Not offered in the basic style | Offered | Offered |
| Backups | Offered | Offered | Offered |
| Typical use | Dev, test, small shared folders | Heavy compute and analytics | Production systems and Kubernetes |
| Relative cost | Lowest | Medium | Highest |
Capacity and size limits
Each tier has a minimum and a maximum size. Entry-level tiers start in the low terabytes. Higher tiers allow very large instances, into the tens or even over a hundred terabytes, and some allow resizing in small steps. A terabyte is about one thousand gigabytes, a unit that is easy to picture as roughly a few hundred thousand photos. Do not memorize numbers. Look them up when you plan.
NFS versions by tier
Basic tiers use NFS version 3. Higher tiers add support for NFS version 4.1. If your application needs stronger locking behavior or other version 4 features, choose a tier that offers it.
How to choose
Decide how bad an outage is
If the application can wait an hour for a restore, a single-zone tier may be fine. If it cannot, choose a tier that spans zones.
Estimate size and growth
Check the minimum size of each tier. A tier with a high minimum can be wasteful for a small folder.
Estimate speed needs
Count how many machines, how much data per second, and how many small operations each second you expect.
Check features
Need snapshots, multiple shares, NFS 4.1 or customer-managed encryption keys? These narrow the list quickly.
Test with real data
Create a trial instance, copy a sample of real files, run your real workload and measure. Move to the next tier only if the numbers demand it.
Many teams pick a basic tier for a production system because it is cheap, then discover that a single-zone design means one zone problem stops the whole application. Match the tier to the true cost of downtime, not just the monthly bill.
Production example: one company, three tiers
A software company might run its developer test environments on a basic tier to save money, its nightly data-processing jobs on a performance tier for speed, and its customer-facing application on a regional tier so that a zone problem never reaches customers. Matching tiers to risk is a common and sensible pattern.
TThe Life of a Filestore Instance: Data Flow and Lifecycle
From creation to deletion, every instance follows a story. Knowing it avoids surprises.
Creating an instance
You create an instance through the console, the command line tool or an automated tool such as Terraform. You choose a name, a location, a tier, a capacity, a VPC network, and the name of the first file share. You may also set access rules, which say which client addresses may connect and with which rights.
Request and checks
Google checks that you are allowed to create the resource, that you have quota, and that the network settings are valid.
Creating
Google builds the managed servers and storage and connects them to your network with a private address. The state shows as Creating. This can take several minutes, and larger tiers may take longer.
Ready
The instance is available. You can read its address and share name and mount it from clients.
Updating and resizing
You can grow capacity, and on some tiers shrink it. You can change labels and access rules. During some changes the state shows Repairing or Updating.
Protection activities
Snapshots and backups run on demand or on a schedule while the instance stays in use.
Deleting
When you delete the instance, its data is removed. Backups you made are separate and can remain until you delete them.
Mounting from a client
sequenceDiagram participant A as Application participant K as Client OS NFS Driver participant F as Filestore Endpoint participant S as Storage Layer A->>K: Open file for reading K->>F: Look up file name F-->>K: File handle and size K->>F: Read bytes from position F->>S: Fetch data blocks S-->>F: Data blocks F-->>K: Data returned K-->>A: Data delivered A->>K: Write changes K->>F: Write request F->>S: Store data safely S-->>F: Stored F-->>K: Write confirmed K-->>A: Write complete
What the picture shows
The application does not know it is using a network. It simply opens, reads and writes. The client operating system’s NFS driver translates those actions into messages. The Filestore endpoint finds the file, asks the storage layer for the data, and sends it back. For a write, the data is stored before the success message returns, if the write is a stable one.
Data flow at runtime
Once running, data moves in several directions. File reads and writes go from clients to the service. Snapshots and backups move data inside Google’s systems, without using your clients’ bandwidth. Monitoring numbers flow to Cloud Monitoring. Administrative actions, such as creating or resizing instances, appear in audit logs.
Locations of instances and clients
For best speed, place clients in the same zone as a single-zone instance, or in the same region as a regional instance. Crossing zones or regions adds delay for every request, and may add network charges. Latency is the delay in each round trip, and in NFS it is paid again and again, so it matters a great deal.
Asking for a file from a server in another region is like asking a colleague in another city to hand you each page by post. The pages are the same, but each round trip is far slower than asking the person at the next desk.
Deleting an instance deletes the data inside it. Deleting does not automatically keep a copy. If you might need the files later, create a backup before you delete, and confirm that the backup completed.
Production example: rendering pipelines
A rendering pipeline may create a Filestore instance at the start of a project, copy in the scene files, run a large number of machines against it for a few weeks, and then back up the results to cheaper storage and delete the instance. This matches cost to the life of the project, because capacity is billed only while the instance exists.
NNetworking and Access Control
Filestore is private by design. Understanding how machines reach it, and who is allowed in, keeps your data safe and your mounts working.
A private address in your VPC
Each Filestore instance receives a private IP address inside a network. An IP address is the number that identifies a machine on a network. Your clients use this private address to mount the share. The address is not reachable from the public internet.
How the connection is made
Filestore runs in a network owned by Google, and your clients run in your own VPC. These two must be joined. For many tiers this is done with private services access, which creates a private link, called peering, between your network and Google’s service network. You reserve a block of private addresses for it. Newer options use Private Service Connect, which exposes the service as a single endpoint inside your own network and avoids reserving a big range. Which method is available depends on the tier, so check the current documentation.
Think of two neighboring private compounds. Peering builds a gate in the shared wall, and both compounds agree on the roads that lead to it. A private endpoint is more like a single mailbox placed in your own compound, which forwards messages to the other compound without opening a whole gate.
flowchart LR
subgraph YOURS["Your VPC Network"]
C1["Client VM in Zone A"]
C2["Client VM in Zone B"]
GK["GKE Nodes"]
FW["Firewall Rules allow NFS from approved clients"]
end
subgraph ONP["On-premises Network"]
OFF["Office or Data Center Servers"]
end
subgraph GOOG["Google Managed Service Network"]
FSI["Filestore Instance"]
end
C1 --> FW
C2 --> FW
GK --> FW
FW -->|"Private connection"| FSI
OFF -->|"Cloud VPN or Interconnect"| YOURS
OFF -.->|"via your VPC"| FSI
Firewall rules
A firewall rule decides which network traffic is allowed. For NFS to work, the rules must allow traffic between your clients and the Filestore address. Allow only the client machines that need access, not your whole network. Many teams use network tags or service accounts to target the right machines.
Access control on the file share
Besides the firewall, Filestore lets you define access rules on a share. A rule names an address or a range of addresses and states what those clients may do, for example read-only or read-write. It also says whether root squash applies. If no rules are set, all clients that can reach the instance are allowed by default, so setting explicit rules is a good habit for sensitive data.
Two layers: IAM and NFS permissions
Two different permission systems apply. IAM decides who can manage the Filestore instance itself, such as creating, resizing or deleting it. NFS permissions decide who can read and write files inside the share. Giving someone IAM rights does not give them file access, and the reverse is also true.
Reaching Filestore from outside Google Cloud
Servers in your own office or data center can mount a Filestore share if they have private connectivity to your VPC, using Cloud VPN, an encrypted tunnel over the internet, or Cloud Interconnect, a dedicated private line. Routing and firewall rules must allow the traffic. Expect extra delay compared with machines inside Google Cloud, so test performance before depending on it.
Planning address ranges
Address ranges must not overlap between the networks that are joined. If your office network and your cloud network both use the same private range, traffic cannot be routed cleanly. Plan ranges before you start, as changing them later is painful.
Name and document your Filestore firewall rules and access rules together. When someone asks, “Why can this machine not mount the share?” the answer is nearly always in one of these two places, or in a mismatch of zones and addresses.
Production example: hybrid studios and labs
Organizations with workstations on site and large compute in the cloud often keep the heavy working data in Filestore and connect their office through a private line. Artists or scientists open files from their desks, and large jobs in the cloud read the same files, without copying them back and forth.
PPerformance and Scalability
Speed is where file storage choices become real. Let us learn what to measure and how to improve it.
The three measures of speed
- Throughput is how much data moves per second, such as megabytes per second. It matters most for big files, like videos and large data sets.
- IOPS stands for input and output operations per second. It counts how many separate small reads and writes can happen each second. It matters most for many small files and for databases.
- Latency is the time one request takes from start to finish. It matters most when programs wait on each answer before sending the next request.
Picture a road. Throughput is how many cars pass each minute across all lanes. IOPS is how many separate trips can start each minute. Latency is how long one car takes to reach its destination. A wide road with a long distance has high throughput and high latency.
Performance grows with capacity
In several tiers, the performance you get depends on the capacity you provision. A bigger instance is allowed more throughput and more IOPS. This surprises many beginners: sometimes you buy extra capacity not because you need the space, but because you need the speed that comes with it. Check the published performance tables for each tier and size.
Performance depends on the client too
The server is only half of the picture. The client machine’s size matters, since small VMs have lower network limits. The number of parallel requests matters, since a single reader cannot keep a fast server busy. The mount options matter, since they set the size of each read and write. And the application’s habits matter, since many tiny operations are slower than a few big ones.
Ways to improve performance
Stay close
Put clients in the same zone or region as the instance to cut the delay on every request.
Use many readers
Spread work across several threads and machines so the server stays busy. One reader rarely uses the full capability.
Tune mount options
Larger read and write sizes and a modern NFS version often help big files. Use the settings recommended for your tier.
Reduce tiny files
Combine many small files into fewer larger ones, such as archives, where your application allows it.
Cache locally
Copy hot, read-only data to a local disk on each client, so repeated reads never cross the network.
Choose size for speed
If a tier ties speed to capacity, provision enough to reach the speed you need.
Scalability: growing in both directions
Filestore scales in two ways. First, scale up: you can increase the capacity of an instance, which raises its performance limits, often without taking it offline. Second, scale out: you can create several instances and spread different shares across them, so that no single instance is overloaded. Some higher tiers are built to serve very large numbers of clients at once.
Measuring before and after
Never tune by feeling. Use Cloud Monitoring to watch throughput, operations per second and latency on the instance. Use common benchmarking tools, run on clients, to measure the real speed of your workload before and after each change. Change one thing at a time, so you know what helped.
Understanding a slow share
Check the instance
Are throughput or operation counts close to the tier’s limit? If yes, the server is the bottleneck, and you need more capacity or another tier.
Check the client
Is the VM’s network cap or processor the limit? A larger VM may help.
Check the location
Are the client and server in the same zone or region? Distance adds delay.
Check the access pattern
Does the program read thousands of tiny files one at a time? Batch or cache them.
Do not test a Filestore share with one thread copying one big file and then decide it is slow. A single stream cannot show the full strength of a parallel system. Test with a workload that looks like your real application, with many parallel clients.
Production example: genomics and analytics pipelines
Life-science labs run huge numbers of analysis jobs that read the same reference data and write results. They commonly choose a performance tier, provision more capacity than the raw files need to reach the required speed, and spread work across many machines in the same zone as the file server.
CCapacity Management and Resizing
Because you pay for the space you provision, managing capacity is about balancing safety and cost.
Provisioned, not used
Filestore bills for provisioned capacity. If you create a one-terabyte instance and store ten gigabytes, you still pay for a full terabyte. This is the opposite of object storage. So the first lesson is: do not create a large instance “just in case”. Start with what you need, and grow when needed.
Growing an instance
Increasing capacity is usually a simple operation that can happen while clients are using the share, though large changes may briefly affect speed. Each tier has a step size, which is the smallest amount you can add. Check it in the documentation. Because growing is easy, run with a comfortable margin but not a huge one.
Shrinking an instance
Shrinking is more limited. Some tiers allow reducing capacity down to the amount of data stored plus some margin. Others do not allow shrinking at all, in which case you must create a new, smaller instance, copy the data over and delete the old one. Plan for this: it is much easier to grow than to shrink.
It is like renting storage units. Moving into a bigger unit when you run out of room is easy, but moving back to a smaller one means sorting through everything and carrying it over yourself. So you rent a size that fits now, with a little spare room.
Watching free space
A full file share is dangerous. Programs that cannot write may crash, lose data or fail in strange ways. Monitor used space and set alerts, for example at seventy and ninety percent of capacity. Alerts should reach a person who can act, and a runbook should say how to grow the instance or clean up files.
Finding what takes space
When space runs low, find the biggest users. Common culprits are old temporary files, logs that nobody rotates, forgotten test copies and many versions of the same output. Use standard tools from a client machine to list large folders. Set a rule for how long scratch data may stay, and delete it on a schedule.
A simple capacity plan
- Measure how much data you have now and how fast it grows per month.
- Set a target of keeping at least twenty to thirty percent free space.
- Calculate when you will cross seventy percent, and schedule a resize before then.
- Review the numbers every month. Compare the forecast with reality and adjust.
- Move cold data, files nobody opens anymore, to cheaper object storage.
Tiering data to save money
Most data cools with age. Last month’s project files are busy, but last year’s are almost never opened. A smart habit is to keep hot data on Filestore and move cold data to Cloud Storage, where it costs much less per gigabyte. Some teams use scripts, or storage management tools, that move files older than a set age to a bucket and leave a note about where they went.
Give every top-level folder an owner, such as a team or a project name. When space is short, you can ask the owners to clean up. Folders with no owner tend to grow forever.
Production example: project-based storage hygiene
Creative and engineering studios that work on time-limited projects often finish each project by copying the final files to object storage, verifying the copy, and clearing the working space on the file server. This returns capacity to the pool and keeps the monthly bill from creeping upward.
DData Protection: Snapshots, Backups and Replication
Files get deleted by mistake, overwritten by bugs and sometimes attacked. Data protection is how you get them back.
Why redundancy is not a backup
Filestore already stores your data with redundancy, which means extra copies inside Google’s systems, so a failed disk does not lose files. But redundancy copies mistakes too. If someone deletes a folder, the deletion is instantly applied to every copy. A backup is different: it is a separate, older copy that is not changed when the live data changes. Redundancy protects against hardware failure. Backups protect against human error, bad software and attacks.
Redundancy is like having two identical pages that both change when you scribble on one. A backup is a photograph of the page taken yesterday. If you ruin the page today, only the photograph can bring it back.
Snapshots
A snapshot captures the state of a file share at one moment. It is created quickly, because it records the current layout and then tracks only later changes. Snapshots are stored with the instance and let you restore single files or folders, or revert a whole share to an earlier moment. Snapshots are offered on the Zonal, Regional and Enterprise tiers. They are ideal for quick “undo” needs, such as recovering a file deleted an hour ago.
Snapshots live with the instance. If the instance is deleted, its snapshots go with it. So snapshots alone are not enough for disaster protection.
Backups
A backup is a copy of a file share stored separately from the instance, in Google-managed storage, usually in a region of your choice. The first backup copies all the data. Later backups copy only what changed, which saves time and cost. A backup remains even if the instance is deleted, and you can restore it into a new instance. Backups can be taken on demand or on a schedule that you automate.
Replication
Some tiers support replication, which means continuously copying a share to another Filestore instance, often in another region. If the primary location suffers a disaster, you can promote the copy and carry on. Replication gives a much shorter recovery time than restoring from a backup, but it costs more because a second instance runs all the time.
flowchart TD APP["Applications on clients"] --> PRIM["Primary Filestore Instance Region 1"] PRIM -->|"point in time pictures"| SNAP["Snapshots with the instance"] PRIM -->|"scheduled copies"| BKP["Backups stored separately"] PRIM -.->|"continuous copy"| REPL["Replica Instance Region 2"] BKP -->|"restore"| NEW["New Instance after incident"] REPL -->|"promote in disaster"| PROM["Promoted Replica serves clients"] SNAP -->|"restore single file"| PRIM
Comparing the three
| Feature | Snapshot | Backup | Replica |
|---|---|---|---|
| Speed to create | Very quick | Takes longer | Continuous |
| Survives instance deletion | No | Yes | Yes, it is a separate instance |
| Survives region loss | No | Yes, if stored in another region | Yes |
| Recovery speed | Fastest | Slower, must restore data | Fast, promote the copy |
| Relative cost | Low | Low to medium | Highest |
| Protects against mistakes | Yes | Yes | Mostly not, copies changes quickly |
Recovery targets
Two numbers guide your design. RPO, the Recovery Point Objective, is how much recent data you can afford to lose, measured in time. RTO, the Recovery Time Objective, is how long you can afford to be down. Daily backups give an RPO of up to a day. Frequent snapshots give an RPO of minutes or hours for small mistakes. Replication gives an RPO of seconds or minutes for disasters. Choose the mix that matches your business needs.
A sensible protection plan
Snapshots every few hours
Quick undo for deleted or overwritten files. Keep a short history, for example a few days.
Daily backups
Independent copies kept for weeks or months, in another region for critical data.
Replication for critical systems
A second instance in another region for fast recovery from a regional disaster.
Regular restore tests
Every quarter, restore a backup into a test instance and check the files. An untested backup is only a hope.
Protection from attacks
Modern attacks, such as ransomware, encrypt or delete files. A backup that attackers cannot reach is your best defense. Limit who can delete backups through IAM, keep backups in a separate project with tighter access, and keep some long-lived copies that nobody can change quickly.
Do not rely on snapshots as your only protection. They share the same fate as the instance. If the instance is deleted by mistake, or the zone has a major problem, the snapshots can disappear with it. Keep at least one backup outside the instance.
Production example: layered protection in regulated companies
Financial and healthcare organizations commonly combine frequent snapshots for operator mistakes, nightly backups held for a fixed number of years for rules and audits, and a replica in a second region for disaster recovery. They also rehearse recovery so that the first real restore is not also the first attempt.
HHigh Availability and Reliability
A shared file server is a shared dependency. If it stops, everyone who depends on it stops. This chapter explains how to keep it available.
What availability means
Availability is the share of time a service works. It is often described in “nines”. Ninety-nine point nine percent allows under nine hours of downtime a year. Ninety-nine point ninety-nine percent allows under an hour. Higher availability costs more, because it needs more copies in more places. Reliability is the wider idea that the service gives correct answers quickly over a long time.
Single zone versus multi zone
Entry-level and performance tiers keep an instance in one zone. Google protects the data inside it against disk and server failures, but a major problem with the whole zone could make the instance unavailable until it is restored. Regional and Enterprise tiers spread data and serving capacity across zones in a region. If one zone fails, the service continues from the others, usually with only a short pause while clients reconnect. Google offers a written uptime promise, called an SLA, for its higher-availability tiers. Read the current SLA for exact numbers and conditions.
A single-zone instance is like a shop with one building. It has good locks and a strong roof, but if the whole building loses power, it closes. A regional instance is like a shop that keeps stock and staff in three nearby buildings and can serve customers from any of them.
What happens during maintenance
Google updates the service from time to time. On higher-availability tiers, updates are designed to cause little or no interruption. On some tiers, a brief pause in access may occur during maintenance. Applications should be written to tolerate short pauses, by retrying instead of crashing.
Client behavior during a pause
NFS mounts have two styles. A hard mount makes the client keep retrying forever until the server answers. Programs wait, but nothing is lost. A soft mount gives up after a set number of tries and returns an error to the program, which can corrupt data if the program does not handle errors. For almost all workloads that write data, hard mounts are the safer choice. The trade-off is that programs can freeze while the server is unreachable.
Design habits for reliable file storage
Match tier to risk
Choose a multi-zone tier for systems where downtime is costly.
Use hard mounts
Let clients wait and retry through short pauses instead of failing writes.
Spread clients
Run clients in several zones so that the loss of one zone leaves others working.
Practice recovery
Rehearse restoring from backups and promoting replicas before a real emergency.
Avoid hidden single points
One share used by every service is a shared fate. Split critical and non-critical data into different instances.
Monitor and alert
Watch latency, errors and free space, and alert on symptoms users feel.
Blast radius
The blast radius of a failure is how much it harms. If all your applications share one big instance, a problem in that instance harms them all. If you give each important application its own instance, a problem harms only one. Separate instances cost a little more in minimum sizes, but they limit the damage and make troubleshooting simpler.
Recovery from a zone failure
Detect
Monitoring and alerts show errors and slow responses from the share.
Decide
For a regional tier, wait for the service to continue from other zones. For a single-zone tier, decide whether to wait or restore elsewhere.
Recover
Restore the latest backup into a new instance in a healthy zone, or promote a replica, and point clients at the new address.
Review
After the incident, write down what happened and what to change.
Production example: business applications on shared files
Large enterprise applications, such as shared document systems and some business software, expect a dependable shared folder. Teams that move them to the cloud commonly choose a regional tier and run the application servers across several zones, so that no single building is a single point of failure.
SSecurity for Filestore
Shared storage holds shared secrets. Good security uses several layers, so that one mistake does not open the door.
The shared responsibility model
Google secures the data centers, the hardware, the managed servers and the storage system behind Filestore. You are responsible for who can reach the service, who can manage it, which machines may mount it, what permissions the files carry, and how your applications behave. Because Filestore is managed, your share of the work is smaller than for a file server you run yourself, but it is never zero.
Using Filestore is like keeping valuables in a bank’s safe-deposit room. The bank guards the building and the vault. You still decide who gets a copy of your key, and what you put inside.
Layer 1: network isolation
Filestore is reached through private addresses only. Keep it that way. Do not expose it to the internet through tricks such as forwarding traffic from a public machine. Use firewall rules that allow NFS only from the specific clients that need it. Place sensitive instances in separate projects or separate networks so that a problem in a test network cannot reach production files.
Layer 2: access rules on the share
Set explicit access rules for each share. Allow only needed address ranges, give read-only rights where writing is not needed, and turn on root squash so that a client’s all-powerful root user is treated as an ordinary user. Without root squash, someone who takes control of a single client machine could read or change every file.
Layer 3: IAM for management
IAM controls who may create, resize, back up or delete instances. Follow least privilege: give each person or program only the roles it needs. Separate the people who can delete backups from the people who run daily operations. Use audit logs to record who did what to the instance, so you can answer questions after an incident.
Layer 4: file permissions
Inside the share, normal Linux permissions apply. Plan owners, groups and permission bits carefully. NFS version 3 trusts the user and group numbers that clients send, so make sure these are managed consistently across machines. A directory service, such as a central login system, helps keep user numbers the same everywhere.
Encryption
Data is encrypted at rest in Google’s storage by default, which means it is scrambled on disk so a stolen disk would be unreadable. By default, Google manages the keys. Some tiers let you use customer-managed encryption keys through Cloud KMS, the Key Management Service, so that you control the keys and can disable them if needed. For data in transit, remember that NFS traffic inside your private network is not encrypted by default in the basic style. For highly sensitive data, check which tiers and versions offer protection on the wire, and consider extra network controls and policies that restrict who can see the network path.
Protecting backups
Treat backups as sensitive as the live data, since they contain the same files. Restrict who can restore them, because restoring creates a readable copy. Also restrict who can delete them, because deleting removes your safety net.
Organization-wide guardrails
Organization policies let a central team set rules for many projects at once, for example requiring encryption keys of a certain kind or limiting which regions may hold data. Rules enforced by the platform are stronger than rules written in a document that people may forget.
Isolate
Private addresses only, narrow firewall rules, separate networks for separate sensitivity levels.
Restrict
Explicit access rules, read-only where possible, root squash on.
Authorize
Least-privilege IAM, separate duties for operations and deletion.
Encrypt
Default encryption at rest, customer-managed keys where needed.
Watch
Audit logs and alerts on unusual access or administrative changes.
Leaving access rules open to the entire network range is the most common mistake. Any machine that lands in that network, including one that was hacked or created by mistake, could then mount your shares. Always name the clients that truly need access.
Production example: sensitive research data
Organizations that handle personal or confidential data on shared storage typically place it in dedicated projects, restrict mounting to named machines, use customer-managed keys and keep detailed logs. This helps them prove to auditors where the data lives and who touched it.
UUsing Filestore with Compute Engine, GKE and Cloud Run
Filestore is only useful when something mounts it. Let us see how the common Google Cloud compute services connect.
Compute Engine virtual machines
The simplest case is a Linux virtual machine. You install the standard NFS client tools if they are not already there, create a folder for the mount point, and mount the share using the instance’s private address and share name. To keep the mount after a restart, you add an entry to the machine’s file system table, or you handle the mount in a startup script. Windows machines can also use NFS with the proper client feature, though Windows shares are more commonly served by other services.
Put the mount step in your machine image or in an instance template’s startup script. Then every new machine that joins a managed instance group automatically attaches to the shared files, with no manual work.
Google Kubernetes Engine
Kubernetes is a system for running many containers across many machines. Google Kubernetes Engine, or GKE, is Google’s managed Kubernetes. Containers are temporary by nature, and their own disks vanish when they stop. Containers that need shared or lasting files can use Filestore through a CSI driver. CSI stands for Container Storage Interface, a standard way for Kubernetes to talk to storage systems. With the Filestore CSI driver enabled, you describe the storage you need, and Kubernetes asks Filestore to create and attach it.
Two concepts appear. A persistent volume claim, or PVC, is a request for storage made by an application. A storage class names the type of storage to give. Many pods can use the same claim at once if it is a shared, read-write-many type, which Filestore supports naturally.
Multishares for Kubernetes
Each Filestore instance has a minimum size, often in the terabyte range. Giving every small application its own instance would waste money. The Enterprise tier offers multishares, which lets the CSI driver carve many small shares out of one instance, with each share as small as a few gigabytes. Several small claims share the cost and the management of one instance, while each still has its own folder.
flowchart TD
subgraph CLUSTER["GKE Cluster"]
P1["Pod A - web"]
P2["Pod B - web"]
P3["Pod C - worker"]
PVC1["Claim 1 - 10 GiB"]
PVC2["Claim 2 - 50 GiB"]
CSI["Filestore CSI Driver"]
end
P1 --> PVC1
P2 --> PVC1
P3 --> PVC2
PVC1 --> CSI
PVC2 --> CSI
CSI -->|"creates shares"| INST["One Filestore Enterprise Instance"]
INST --> SH1["Share for Claim 1"]
INST --> SH2["Share for Claim 2"]
Cloud Run and other services
Cloud Run, Google’s service for running containers without managing servers, can mount an NFS share such as Filestore as a volume. This allows serverless services to read and write shared files, which was once hard to do. The service must be connected to your VPC network so that it can reach the private address. Other services, such as some batch and managed notebook products, can also work with Filestore through their network settings.
On-premises and hybrid clients
As covered in the networking chapter, servers outside Google Cloud can mount a share through a private connection. This is useful during migration and for hybrid workflows, where some people or systems remain on site.
Choosing a client
| Client | Typical mount method | Good for |
|---|---|---|
| Compute Engine VM | Standard NFS mount in startup script or system table | Traditional servers, render farms, shared applications |
| GKE pod | Persistent volume claim using the CSI driver | Containerized apps needing shared or lasting files |
| Cloud Run | Volume mount of an NFS share | Serverless services that need shared files |
| On-premises server | NFS mount over VPN or Interconnect | Hybrid and migration scenarios |
Do not use a shared file share as the data folder of a busy database cluster unless the database software documents it as supported. Many databases need local, fast, block-style storage and exact locking behavior. A network file share can make them slow or unsafe.
Production example: stateful web content on Kubernetes
Content platforms that run in containers, such as blogs and shops that accept uploaded images, often give all web pods a single shared volume. Pods can then be added, removed or moved freely, and every one sees the same uploads. This avoids the problem of pictures uploaded through one pod being invisible to the others.
MMonitoring, Logging and Metrics
You cannot fix what you cannot see. Monitoring turns a mysterious slow share into a clear picture.
The three kinds of signals
Metrics are numbers over time, such as bytes read per second. Logs are written messages about events, such as someone creating a backup. Alerts are messages that tell a person something needs attention. Together they answer: Is something wrong? What went wrong? Who needs to act?
Metrics Filestore provides
Filestore sends numbers to Cloud Monitoring automatically. They typically include the capacity used and free, read and write throughput, the count of read and write operations, and in some tiers the delays of operations. Use these to build a dashboard for each important instance. Names and details can change, so check the current metric list in the console.
Metrics from clients
The server’s view is only half the story. Clients also keep useful numbers, such as how long NFS requests take from their side and how many retries happen. Install the Ops Agent on virtual machines to collect system metrics and logs. Tools on the client can report NFS statistics, which help you see whether a slowdown is the server, the network or the client itself.
Logs and audit trails
Administrative actions on instances, such as creation, resizing, backup creation and deletion, appear in Cloud Audit Logs. Search them to find out who changed something and when. These logs are your first stop after any unexpected change. Retain them long enough to meet your rules.
What to watch
Free capacity
Alert at seventy and ninety percent used, so you can grow or clean up in time.
Throughput
Compare current numbers with the tier’s limits to see how close you are to the ceiling.
Operation counts
A sudden jump may show a runaway program reading or writing thousands of small files.
Latency
Rising delay means users and programs will feel slowness even if throughput looks fine.
Backup status
Alert when a scheduled backup fails or has not completed for longer than planned.
Admin actions
Watch for unexpected deletions, access rule changes and permission changes.
Alerts that help, not annoy
Good alerts point to problems that matter and that a person can act on. Bad alerts fire constantly for small things, and people learn to ignore them. Alert on symptoms, such as space nearly full or latency too high for a sustained time, rather than every small blip. Attach a short runbook to each alert. A runbook is a written list of steps for fixing the problem.
Capacity and cost dashboards
Besides health, track trends in used space, growth rate and cost per instance. Share these with the owners of each project. When people see their own numbers, they clean up more willingly.
Monitoring is the dashboard of a car. The fuel gauge is free capacity, the speedometer is throughput, the temperature light is latency, and the warning lamps are alerts. Driving without a dashboard means you learn about trouble only when the engine stops.
Production example: finding a runaway job
A common story: operations suddenly rise tenfold and every user complains of slowness. A glance at the dashboard shows one batch job opening millions of tiny files in a loop. The team stops the job, fixes it to read a single archive, and the share returns to normal. Without metrics, the team would have spent days blaming the file server.
PPricing and Cost Control
File storage costs more per gigabyte than object storage, so understanding the bill matters.
What you pay for
- Provisioned capacity, charged per gigabyte for each hour the instance exists, at a rate that depends on the tier and the location.
- Backups, charged for the amount of backup data stored, per month.
- Snapshots, which on some tiers use space that counts toward capacity or are charged as stored data.
- Replication, which means paying for a second instance and for the data sent to it.
- Network traffic, especially data that crosses zones or regions or leaves Google Cloud.
Prices change and differ by region, so always read the current pricing page and use the pricing calculator before you commit to a design.
Why the bill can surprise you
Paying for empty space
An oversized instance bills for every gigabyte, used or not.
Forgotten instances
A test instance that nobody deleted keeps billing every hour.
Never-expiring backups
Backups that are never deleted pile up quietly month after month.
Cross-zone traffic
Clients in a different zone from a single-zone instance can add network charges and delay.
Ways to save money
- Choose the lowest tier that meets the need. Do not buy availability or speed you do not need.
- Right-size capacity. Keep a healthy margin, but avoid large unused space.
- Move cold data to Cloud Storage. Keep only active files on Filestore.
- Delete test and finished-project instances. Use labels and owners to find them.
- Set backup retention rules. Keep backups as long as rules require, and no longer.
- Use multishares for many small needs. Share one instance across small container workloads rather than creating many small instances.
- Keep clients close. Put clients in the same zone or region to avoid network charges and speed up reads.
- Set budgets and alerts so someone is told before costs grow too far.
Comparing with the alternatives
| Option | Cost shape | Watch out for |
|---|---|---|
| Filestore | Paid on provisioned size, higher per gigabyte | Idle capacity and minimum sizes |
| Cloud Storage | Paid on stored data, lowest per gigabyte | Request charges and slower small-file behavior |
| Self-built file server on VMs | VM and disk costs, plus your team’s time | Hidden operations work, single point of failure |
| Persistent Disk | Paid on provisioned size, cheaper per gigabyte | Not designed for many writers |
Filestore is like renting a furnished office with a front desk. It costs more per square meter than a plain warehouse, but you do not hire a receptionist, repair the lights or clean the carpet. The right question is not “What is the cheapest space?” but “What does the whole arrangement cost, including my own time?”
Put the real cost of your own time into the comparison. A self-built file server may look cheaper on paper, but patching, monitoring, tuning, recovering from failures and being woken at night all have a price. Many teams find the managed service cheaper in total.
Production example: cost discipline in shared storage
Teams that run shared storage well usually tag each instance with an owner and a project, send each owner a monthly report of space and cost, and enforce a retention rule for scratch folders. Costs stay predictable because someone is responsible for every gigabyte.
DDesign Patterns and Anti-patterns
A pattern is a proven way to solve a common problem. An anti-pattern looks reasonable but causes pain later.
Patterns that work
Shared content folder
Many stateless web or application servers mount one share for uploads and assets, so servers can be added and removed freely.
Scratch and archive split
Hot working data lives on Filestore, and finished data moves to Cloud Storage for long-term, low-cost keeping.
One instance per risk level
Critical and non-critical workloads use separate instances, so a problem in one cannot harm the other.
Local cache for hot reads
Clients copy frequently read, read-only data to local disks to avoid repeated network trips.
Multishare per cluster
Container platforms use multishares so many small claims share one Enterprise instance.
Layered protection
Snapshots for quick undo, backups for independent copies, and replicas for fast disaster recovery.
The scratch and archive split is like a busy kitchen. Ingredients being cooked today stay on the counter within reach. Everything else goes to the pantry or the freezer. A kitchen with the whole warehouse on the counter would be slow and crowded.
Anti-patterns to avoid
What it looks like
Every application in the company shares one giant Filestore instance, with open access rules for the whole network.
Why it hurts
A busy job slows everyone. A mistaken deletion or a security problem spreads far. No team owns the space, so it only grows.
What to do instead
Create separate instances or shares for separate applications, with explicit access rules and a named owner for each.
What it looks like
A single-zone basic instance holds business-critical data, with no backups and no tested recovery plan.
Why it hurts
A zone problem, a deletion or a bug can mean permanent loss or long downtime, with no reliable way to return.
What to do instead
Choose a tier that matches the risk, schedule backups, keep copies in another region, and rehearse a restore.
What it looks like
Filestore is used as a dumping ground for archives, old logs and rarely opened files, because it is easy to mount.
Why it hurts
You pay file-storage prices for data that would cost far less in object storage, and the space fills up with clutter.
What to do instead
Move cold data to Cloud Storage automatically, and keep Filestore for data that needs shared, folder-style access.
What it looks like
A program opens, reads and closes ten million small files in a single thread, across zones, and the team blames the file service for being slow.
Why it hurts
Every file operation is a network round trip, and the delay of each one adds up. The server sits mostly idle while the program waits.
What to do instead
Run the work in parallel, keep clients in the same zone, bundle small files into larger ones, and cache read-only data locally.
What it looks like
Nobody watches free space, and the share fills completely on a busy day.
Why it hurts
Programs cannot write, jobs crash, and some may leave half-written, damaged files.
What to do instead
Alert at seventy and ninety percent, plan resizes ahead of time and delete scratch data on a schedule.
BBest Practices and Common Mistakes
This chapter gathers the habits of teams that run shared storage well, and the mistakes of those who learned the hard way.
Best practices: planning
- Choose the tier from your real needs for availability, speed and features, not from habit.
- Check size limits, step sizes and NFS version support for the tier before you commit.
- Place instances and clients in the same zone or region.
- Use separate projects and networks for development, testing and production.
- Define infrastructure as code, using a tool such as Terraform, so every instance is reviewed and repeatable.
- Label every instance with owner, project, environment and cost center.
Best practices: operations
- Automate mounts in images or startup scripts, so new machines attach to the share without manual work.
- Use hard mounts with sensible timeouts for writable data.
- Monitor free space, throughput, operations and latency, with alerts and runbooks.
- Schedule snapshots and backups, set retention rules and test restores regularly.
- Review capacity every month and resize before you are short of space.
- Clean scratch folders on a schedule and archive finished data to Cloud Storage.
Best practices: security
- Allow NFS only from named client ranges, using firewall rules and share access rules.
- Turn on root squash and use read-only access where writing is not needed.
- Apply least-privilege IAM and separate the power to delete backups from daily operations.
- Use customer-managed encryption keys when your rules require control over keys.
- Keep audit logs and review them.
Common mistakes
| Mistake | What goes wrong | Fix |
|---|---|---|
| Choosing a basic tier for critical systems | Single-zone outage stops the application | Use a multi-zone tier or add replication and tested recovery |
| Open access rules for the whole network | Any machine on the network can mount the data | Allow only named clients, enable root squash |
| Over-provisioning capacity | Paying for unused gigabytes every hour | Right-size and resize as data grows |
| Relying on snapshots only | Snapshots disappear with the instance | Keep independent backups, ideally in another region |
| Clients in the wrong zone | Slow responses and extra network charges | Place clients next to the instance |
| Testing with a single stream | Wrong conclusions about speed | Test with realistic parallel workloads |
| Soft mounts for writable data | Write errors silently corrupt files | Use hard mounts for writes |
| Ignoring free space alerts | Share fills and jobs fail | Alert early and plan resizes |
| Forgetting to delete test instances | Quiet hourly charges forever | Label with owners and review monthly |
Before putting any important system on a shared file service, ask four questions. What happens if the share is unreachable for ten minutes? What happens if a folder is deleted by mistake? What will this cost if data grows tenfold? Who gets alerted when space or speed runs short? If you cannot answer all four, you are not ready.
RReal-World and Industry Examples
Let us look at the kinds of work that shared file storage carries every day. Companies seldom publish detailed architectures, so these examples describe typical patterns in each industry.
Film, animation and visual effects
Studios draw each frame of a film on many machines at once. All of them need the same scene files and textures. They write finished frames back to a shared folder, where artists review them. A shared file service in the cloud lets a studio rent hundreds of machines for a deadline and release them afterwards, without buying a render farm.
Life sciences and genomics
Labs run analysis jobs over large reference data sets. Tools in this field are often older Linux programs that expect normal folders and cannot talk to web-style storage. A fast shared file system lets those programs run in the cloud with few changes, while results are archived to cheaper object storage when the project ends.
Chip design and engineering simulation
Electronic design teams run huge numbers of simulations that read shared libraries and write many output files. These workloads create heavy demands for small file operations and high parallel access, and they favor performance tiers placed close to the compute machines.
Web publishing and e-commerce
Content platforms and online shops, many built on popular content management systems, store uploaded images and documents in a shared folder mounted by every web server. Adding servers for a sale day or a news spike then needs no copying of files.
Enterprise applications and lift-and-move
Many business applications were written for traditional file servers. Companies moving them to Google Cloud often use Filestore as the replacement for their old network storage, so the applications keep working with little change while the company retires its hardware.
Machine learning and data preparation
Teams preparing data for model training often use shared folders for raw data, intermediate files and results, accessed by many notebooks and training jobs at once. Fast shared storage keeps expensive accelerator machines busy instead of waiting for data.
Developer tools and build systems
Build and test systems share source code, caches and build outputs across many build machines. A shared folder for caches can cut build times, because one machine’s work can be reused by the rest.
What these stories have in common
Every example shares the same habits. Many machines need one consistent view of the same files. The software expects normal folders. Capacity is rented only for as long as the work lasts. Cold data moves to cheaper storage. Tiers are chosen for speed and risk. Backups and monitoring are in place from the start. The details differ between industries, but the core design is the same.
These examples describe common industry patterns rather than specific company designs. Your own design should always start from your own workload, your own data and your own risk.
MMigrating Data and Operating Day to Day
Most teams do not start with an empty share. They have existing files that must be moved safely, and a long life of operations ahead.
Moving data in
Several tools can copy data into Filestore. For files on a machine you control, standard copy tools that work over NFS, such as those that copy only changes, are simple and reliable. For large amounts of data from other places, Google offers transfer services that move data from on-premises storage or from other clouds in a managed way, with checks that the copy is complete. For huge, one-time moves from offline systems, physical transfer devices may be an option.
A safe migration path
Inventory
List the folders, their sizes, the number of files, who uses them and how often files change.
Pick the tier and size
Use the inventory to choose a tier, a size with growth room, and a location close to the clients.
Build the network path
Create private connectivity, firewall rules and access rules for the clients and for the copy machines.
Do the first full copy
Copy everything while the old system is still in use. This can take a long time for large data.
Sync changes
Repeat copies that move only changed files. Each pass is shorter, until the final gap is small.
Verify
Compare file counts, sizes and checksums, and have owners test their applications against the new share.
Cut over
Pause writes on the old system, run a final sync, point clients at the new share and keep the old one read-only for a while as a safety net.
Migrating files is like moving house. You pack and carry most of the boxes while still living in the old place. On moving day you carry only the last few items, and you keep the old keys until you are sure the new home works.
Things that surprise teams
- Many small files copy slowly. A million tiny files can take much longer than a few huge ones of the same total size. Run copies in parallel.
- User numbers must match. If user and group numbers differ between old and new systems, permissions look wrong. Plan how to map them.
- Special features may not carry over. Some old systems use extra attributes or access lists that a simple copy does not preserve.
- Locks and open files. Files that are open and changing during the copy may be copied in a half-finished state. Schedule the final sync when writers are paused.
- Network limits. The link between your site and the cloud sets the speed. Estimate transfer times before you promise a date.
Operating day to day
After the move, life becomes routine. Check the dashboards each morning. Review the capacity forecast each month. Confirm that backups completed. Test a restore each quarter. Review access rules when teams change. Review costs and delete what is no longer needed. Keep your runbooks current, because a runbook that describes last year’s system is worse than none.
Infrastructure as code
Write the definition of your instances, shares, access rules and backup schedules in code, using a tool such as Terraform or Google’s own deployment tools, and store it in version control. This gives you a record of every change, lets you review changes before they happen, and lets you rebuild the whole setup quickly in another project or region.
Keep the old system read-only and powered on for at least a few weeks after cutover. Problems with permissions or missing files often appear only when people do their month-end work, and a safe fallback turns those surprises into small repairs.
Production example: office file servers moving to the cloud
Organizations retiring old office network storage commonly copy data in waves by department, starting with a low-risk team to learn the process. They keep the old storage read-only for a period, and only then switch it off, which turns a risky weekend into a calm, step-by-step project.
FFrequently Asked Questions
Short, direct answers to questions that beginners ask most often.
SSummary and Key Takeaways
You have now seen Filestore from the outside and from the inside. Here is the whole story in one place.
Filestore gives many machines one shared, managed folder over NFS. Clients send small requests through your private network to a managed server layer, which stores data redundantly on Google’s storage. You choose a tier for speed, size and safety, provision capacity, set access rules, and protect data with snapshots, backups and replication. Google runs the hardware and the service, and you design the use of it.
Key Takeaways
- Use it for shared folders. Choose Filestore when many machines need the same files with normal folder behavior. Use Cloud Storage for cheap, huge archives and Persistent Disk for a single machine’s own disk.
- Match the tier to the risk. Basic tiers suit small and test needs, performance tiers suit heavy compute, and regional or Enterprise tiers suit critical systems that must survive a zone failure.
- Stay close and go parallel. Put clients near the instance, use many parallel requests, and avoid millions of tiny sequential operations.
- Pay for what you provision. Right-size capacity, grow when needed, move cold data to object storage, and delete forgotten instances and backups.
- Protect in layers. Use snapshots for quick undo, backups for independent copies, replicas for fast disaster recovery, and test restores regularly.
- Lock the doors. Keep access private, allow only named clients, use root squash and least-privilege IAM, and consider customer-managed keys for sensitive data.
- Watch and plan. Monitor free space, throughput, operations and latency, alert on symptoms, keep runbooks current, and define everything as code.