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。