极密曝光! GCP架构实战! - Cloud Storage
在使用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,应用于热储存资料,存取频率高。 | 最低 | 无限制 |
Nearline | Cold Data,应用于冷储存资料,存取频率稍低。 | 中 | 30天 |
Coldline | Cold Data,应用于冷储存资料,存取频率低。 | 高 | 90天 |
Archive | Cold Data,应用于冷储存资料,存取频率最低。 | 最高 | 365天 |
要注意的是,在选择储存级别的时候,应根据业务的资料属性与特征来选择适当的储存方案。假设选择Nearline的储存方案,但30天内存取了两次,GCP会以最短储存时间为准,向您收取额外次数的费用。此外,因为Standard标准级别让您无限次存取,所以虽然其每次存取费用最低,可若频率很高,累计起来仍旧可观,反之其余类别虽然每次存储价格较高,但考量到其存取频率较低,费用可能也会比Standard来的低廉。
上述储存的类别选择完成后,在存取机制上亦分为两种类别,可参照下表:
存取权控管机制
应用场景 | |
统一 | 属于Bucket的层级权限,整个Bucket的存取机制会一致。 |
精细 | 属于单一Object的权限设置,可以使用Bucket的存取以及物件层级层级权限(ACL) |
在安全机制上,使用者可以选择:
- Google 代管的加密金钥
- 使用者自行管理的加密金钥 (CMEK)
并且可以根据自己的使用情况来设定资料保留策略。另外,Google Cloud Storage也提供使用者一个相当方便的功能 - 生命周期管理。生命周期管理的功能让使用者可以自行设定条件,当条件符合时,可以自行删除资料、转移级别(例如Standard -> Coldline)等等。Google Cloud Storage的服务可以说是相当实用,除了可以作为资料储存外,也能放置静态网站。

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