Filestore 是 Google Cloud 上完全託管的 Network FileSystem(簡稱 NFS),目的讓不同的機器甚至是不同的作業系統都可以彼此分享檔案。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Elastic File System (EFS)
  • Microsoft Azure : Azure Files

Filestore 讀寫速度超級快,作為 file storage 並支持併發同時訪問同一個檔案,還提供其他不同種類的存儲類型一些可選替代方案,例如把 Filestore 作為一種「 Persistent Disk 的 block storage 存儲種類 」或者「 類似 Cloud Storage FUSE 的 object storage 存儲種類」等等,因此它適用連接整合到多種 GCP Client 端服務如:VM、GKE、Cloud Run 等等。


一般來說 VM 的 Disk 要多寫多讀是做不到的。為解決此問題,當時在 Linux 上有 Network FileSystem 的產生,它可以將網路遠端的 NFS 伺服器分享的目錄,掛載到不同機器上。對於不同機器上自己看起來,那個遠端 NFS 主機的目錄就好像是自己的一個磁碟分割槽一樣。 Filestore 用法跟 NFS 用法完全一樣,只是託管給 GCP , Google 還進一步將 NFS 和 Multi-Writer 功能統整,允許多個 User 在 Filestore 對共用檔案進行併發讀寫訪問,並支援 NFSv3 protocol 和新增最新的 NFSv4.1 protocol

NFSv4.1 protocol 至 2024/7 還是 preview 版本

接下來看其中的設置:

Service tiers

Filestore 對於 service tiers 也有蠻大的變動,在過去的 Legacy service tiers 有: Standard、Premium、High scale SSD、Enterprise,但現在 Console 上精簡成: Basic、Zonal、Regional。每個 tier 都提供不同的容量選項和性能,以下價錢均為 2024-07-24 當天擷取的畫面:

Basic

Basic-tier 有分成 Basic-HDD 和 Basic-SSD :

  • Basic-HDD 取代舊的 Standard
  • Basic-SSD 取代舊的 Premium

SSD 在 Read/Write throughput 及 IOPS 上比 HDD 表現好很多,兩個均適用於一般文件共享。Basic tier 在容量上比較有限制,只有 1 ~ 63.9 TiB,若對於容量有更大的要求的話就只能考慮 Regional 、 Zonal。

Basic-SSD 起跳是2.5 ~ 63.9 TiB

Zonal 、 Regional

Zonal/Regional tier 容量範圍選擇比 Basic-tier 寬廣不少,從 1 ~ 100 TiB。

  • Zonal (10 ~ 100 TiB) 取代舊的 High scale SSD
  • Regional (1 ~ 9.75 TiB) 取代舊的 Enterprise

Zonal 相比 Basic-SSD 和 Regional 有更便宜的價格,性能上也比 Basic-HDD 還要好上一些 ; Regional 基本上要注意的點和 Zonal 差不多,但提供比 Zonal 還要更好的平均性能,價錢上也比 Basic-SSD 還便宜一些。

Zonal 、 Regional 的性能和容量有存在一些線性關係,可藉由自行調整容量對應至需求的 Read/Write throughput 及 IOPS

省錢 Tip

所有使用過 Filestore 的人應該都有被那恐怖的費用驚嚇到,最讓人詬病的缺點就是容量低消至少要 1 TiB ,再加上是依照創建時劃分的容量收費而非實際使用的容量,所以換算下來最便宜 Basic-HDD 的方案一個月要破 5000 台幣,絕對是第一次使用 GCP 會踩到的坑…,以下針對一些使用情境來優化價格花費:

  • 使用 Basic-SSD 之前,一定先看看 Zonal 、 Regional 能不能先行滿足需求
  • Basic-HDD 要容量超過 10 TiB 才會有一個性能的跳躍,容量再往上升性能也不會增加,故可詳細比較 Zonal 、 Regional 的線性增量來選擇價格合理的方案
  • SSD 的性能是固定的,不會因為容量變大而增強,這和 Basic-HDD 不一樣,不要誤用
  • 對於檔案的 share,Google 也有推出 GCS FUSE,若不需要支持高併發讀寫,這個不錯的選擇,價格也比 Filestore 便宜。

特別注意 Basic-HDD 和 Basic-SSD 的價格差非常多。換到 Basic-SSD 前可以先看看 Regional、Zonal 能不能先符合需求

雲端儲存服務 Network FileSystem 的發展

相對於 Block Storage 與 Object Storage 類型的 cloud 儲存服務,File Storage 類型的 cloud 儲存服務相當晚才推出:

  • 2006 AWS S3 - Object Storage
  • 2008 AWS Elastic Block Store(EBS) - Block Storage
  • 2015 Azure File Storage - File Storage
  • 2016 AWS Elastic File System(EFS) - File Storage
  • 2018 GCP Filestore - File Storage

雖然雲端的 File Storage 推出比較晚,但其實對於傳統的本地 IT 環境,基於 NFS/SMB 共享儲存應用如 NAS 與檔案伺服器設備的使用,都已經有超過 10 幾年以上的歷史了,例如大量的 NAS 都是被應用於這個目的。當年在公有雲 File Storage 服務尚未推出之前,因為雲端缺乏基於 NFS/SMB 傳輸架構的儲存服務這一點,也成了妨礙企業用戶將 IT 環境移植到公有雲的障礙之一,因此後續個家雲服務商陸續推出支援 NFS 的儲存服務,算解決了自建 File Storage 服務在可用性、穩定性、擴展性、管理與成本等方面的問題,提供完全托管、按需收費等特性。

再次提醒,至少 GCP Filestore 使用體感,並不算是按需收費就是了…


參考資料