code

2018年1月15日 星期一

Cloud Computing Infrastructure 3 - storages

Storage types and protocols

從low-level access到high level access看起的話:

1. block storage: data bytes以block為單位儲存在裝置中,硬碟或SSD就是此類。如果直接(非透過網路)連接storage,稱為DAS (direct attached storage)。
block storage的速度會以IOPS (IO operations per sec)來判定。

DAS採用的access protocols包括 SATA/USB/SCSI。
非DAS採用的protocols包括iSCSI (internet SCSI) /SAN (storage area network)。


2. file storage: 人類會以files/folders來理解操作storage。
DAS對應的file-level protocol包括FAT/NTFS
非DAS對應的protocol: NFS/SMB等,這類storage又稱為NAS (network attached storage)。

3. object storage: 這又更高階抽象化的儲存單元,這在cloud applications中特別常見,protocols主要的設計方向就是horizontal scaling,這符合cloud的精神。


DAS Storages in the Cloud

<Storage for virtual servers>
cloud vendor為了達成share resources,會採用block storage,實際上是一個DAS,但對每一個virtual machine來說看到的是"local storage instance"。

雖然block storage擁有最快速的access time,但由於一個storage instance是shared resource虛擬化出來的,所以其儲存時間是暫時性的,一旦virtual server關閉,此shared storage instance也將會被釋放資源,回歸shared pool,使用者必須把data儲存在更為persistent的storage上

當然如果client使用的是bare metal架構,那要裝幾個DAS都可以,也可以組成RAID。

<Storage for containers and serverless computing>
containers採用的是file storage,虛擬化之後containers看到的也是namespace中的temporary local storage,不過containers之間可以share storage。

serverless computing通常不會有storage (因為這是一種state),不過cloud vendor有可能給予暫時性的storage。



SAN storage in the cloud

當然cloud也可以佈署SAN (storage area networks),這是block storage的protocol。SAN storage可以跟virtual server分開佈署,所以不受限於virtual server的life cycle

不過每次跟某一個virtual server連接(邏輯上的)時,這個SAN storage就必須要format/partition並且重新mount file systems,所以一次只能跟一個virtual server attach。

SAN storage的IOPS取決於網路的速度。


NAS storage in the cloud

SAN storage要format/partition,當然cloud vendors也可以提供快速mounting的file system,前提就是non-attached。


Object storage in the cloud

object就是non-structured data,俗稱blobs,通常是media/backups 等binary raw data。
blob會友伴隨著meta data,方便search和indexing。

S3 (simple storage service)就是Amazon的object storage implementation。

由於blobs通常檔案size很大(例如照片影像),所以storage consistency通常可以容忍delay,以秒為計算單位,這在internet application (e.g. FB)是可以接受的時間,但不適合需要極度synchronization的applicatoin,例如金融或是安全applications。


CDN (content delivery network)

CDN是比storage更上位的單位,通常是為了加速access而將資訊複製在不同geological的data center中,看資訊型態而言,通常會以object storage的方式在低階儲存,因為CDN通常是serve media。


沒有留言:

張貼留言