关闭
极密曝光! GCP架构实战! - Cloud Storage

在使用Cloud Storage之前,必须要先了解所谓的「物件存储」与「一般传统存储」有什么样的差异,请看下图:
 

极密曝光! GCP架构实战! - Cloud Storage

图片来源:https://arthurcheng.gitbooks.io/ceph/content/chapter1/what-is-object.html

Block Storage(块储存)

块储存就如上图所示,由多个数据单元(块)所组成,通常所谓的单一磁碟、磁碟阵列可以视作块储存,并且这些裸硬碟空间会直接对应给主机系统来使用;且这些块各自独立存在,不连续储存,在CAP定理(CAP theorem)当中,属于强一致性的储存。块储存可以视作File Storage、Object Storage的底层基础。最具代表性的方案为DAS(Direct Attach Storage)、SAN(Storage Area Network),在高效、速率上具备优势,但在档案共用的表现较差,且维护成本与技术门槛较高。

举例:
现在有物理硬碟5颗(12345共五个),各为2GB,所以总共有10GB,而我可以进一步分割成5GB、2GB、3GB的「逻辑块」(ABC),而在5GB的逻辑块A当中,有可能2GB来自物理硬碟1、2GB来自物理硬碟2,1GB来自物理硬碟3。

换言之,在储存资料的时候,以Block Storage进行储存,会将资料分布储存在不同的块中,若需要使用时,则可以从不同的块中去读取,并组合成完整数据。
 

File Storage(文件储存)

参照上图可以发现,文件储存是具备文件结构的一种储存类别,最常见的就是NAS或者是个人电脑中的文件存储格式。并且,可以利用以档案为主的传输协议,通过TCP/IP,实现以网路为基础的档案储存、存储的解决方案。文件储存的好处在于,会有完整的物件存储路径,清晰易于管理;但同时在Metadata上所能记载的资料有限。
 

Object Storage(物件储存)

参照上图可以知道,物件储存的存储单元为「物件」(Object),同时看不到所谓的「块」与「文件结构」,物件储存的存储属于同一平面上的储存,并以键值的形式 (Key-Value)来进行资料的读写。且物件可以不断扩增,扩充性相当良好。

物件储存同时将资料与Metadata分别储存,当读写请求发送至伺服器时,会根据Metadata上的资料,反馈实际资料储存在哪些分散的硬碟中,并让使用者同时存取多个碟,提升读写效率。而在某些档案系统则是会将所有资料包含Metadata一同存储,切割成多个小资料块放至不同硬碟中存储,而使用者必须先找到第一个资料块,才能依序往下读写,造成效率低落。

物件储存实际上结合了块储存与档案系统的优点,达成读写快、且能够让使用者共享档案的效果。

 
Google Cloud Storage (GCS)

GCP中提供了各种各样的储存服务,其中最常用且最常见的服务即为Google Cloud Storage,它是典型的物件存储服务,同时也具备扩充性以及支援API存取的功能。通常可以用来作为资料备援、映像档存储、和结合GCP的资料服务,建构ETL流程。其存储单元称作「值区」(Bucket),并且区分为三种区域类别、四种存储空间级别如下表。

三种区域类别

应用场景可用性与延迟               
Multi-Region具备Geo-Redundency,也具备最高的可用性,同时若需要将内容提供给不同区域者,可选择此项。可用性最高
Dual-Region具备Geo-Redundency,需求低延迟与可用性可选择此项。提供高可用性与低延迟
Region针对低延迟的资料分析。单一地区最低延迟

表格制作:Ted

四种存储空间级别

 应用场景每万次操作价格最短储存时间
Standard Hot Data,应用于热储存资料,存取频率高。最低无限制
NearlineCold Data,应用于冷储存资料,存取频率稍低。30天
ColdlineCold Data,应用于冷储存资料,存取频率低。90天
ArchiveCold Data,应用于冷储存资料,存取频率最低。最高365天
表格制作:Ted


要注意的是,在选择储存级别的时候,应根据业务的资料属性与特征来选择适当的储存方案。假设选择Nearline的储存方案,但30天内存取了两次,GCP会以最短储存时间为准,向您收取额外次数的费用。此外,因为Standard标准级别让您无限次存取,所以虽然其每次存取费用最低,可若频率很高,累计起来仍旧可观,反之其余类别虽然每次存储价格较高,但考量到其存取频率较低,费用可能也会比Standard来的低廉。

上述储存的类别选择完成后,在存取机制上亦分为两种类别,可参照下表:

存取权控管机制

 应用场景
统一   属于Bucket的层级权限,整个Bucket的存取机制会一致。
精细属于单一Object的权限设置,可以使用Bucket的存取以及物件层级层级权限(ACL)
表格制作:Ted


在安全机制上,使用者可以选择:

  1. Google 代管的加密金钥
  2. 使用者自行管理的加密金钥 (CMEK)

并且可以根据自己的使用情况来设定资料保留策略。另外,Google Cloud Storage也提供使用者一个相当方便的功能 - 生命周期管理。生命周期管理的功能让使用者可以自行设定条件,当条件符合时,可以自行删除资料、转移级别(例如Standard -> Coldline)等等。Google Cloud Storage的服务可以说是相当实用,除了可以作为资料储存外,也能放置静态网站。
 



撰写人
极密曝光! GCP架构实战! - Cloud Storage

解决方案架构师
吴佑德 Ted Wu