Object Storage(物件儲存)
Object Storage - 雲端系統上最流行的儲存方式
Object storage和File storage一樣,是基於Block storage的,但有幾個關鍵的不同點。File storage就像是一棵樹,從根開始有多層資料夾(樹枝)和檔案(葉子),是典型的層次結構。而Object storage則是扁平化的結構,所有檔案都存在單一資料夾中,沒有子資料夾,這使得資料索引和訪問變得更加直接和快速。
Metadata 的彈性設計
Object storage 的 metadata 不是固定的 inode 結構,而是可以自定義的。這種彈性設計讓使用者可以根據需求設計適合自己應用的 metadata,提升檢索效率。
大數據與非結構化資料的完美搭配
Object storage 特別適合存放靜態且不常變動的大數據,例如影片、音樂等。它提供大量、安全且低成本的儲存服務,特別適合長期保存。
HTTP API 的簡單操作
從高層次來看,Object storage 是透過 HTTP API 進行資料的增刪改查,這比 File system API 和 Block storage 的 SCSI 更加簡單易用。不同語言都可以輕鬆使用這些 API 來操作 Object storage,這使得它適合各種應用情境。
天生適合分散式儲存
由於其扁平化架構,Object storage 非常適合用於分散式儲存。資料可以輕易地分散到多台機器上,並且可以快速擴展。增加新的機器就像擴大這個”資料夾”的空間,不僅提升儲存容量,也提高了資料的可靠性。例如,一個 object 可以被複製多份,這樣即使一台機器發生故障,資料仍然安全。
可靠性與成本效益
雖然直接複製物件簡單易行,但大多數雲端服務提供商會使用更高效的方式來節省空間,例如 RAID5,這種方式只需使用 150% 的空間就能達到相同的可靠性。
優點
- 方便擴增:
由於Object storage是扁平化架構,只需增加機器就能增加儲存空間,無需額外修改架構。 - 成本低:
公有雲上的Object storage非常便宜,例如Amazon S3。 - API 簡單:
使用HTTP進行增刪改查,支持跨國使用。例如你在台灣可以使用位於美國的Amazon S3儲存服務。
缺點
- 不能修改:
一個Object不能部分修改,必須整個替換。而File system則可以直接在末尾增加資料。 - 無法與database整合:
傳統的database是結構化數據,例如SQL, MySQL,而Object storage主要存放非結構化數據,且讀寫速度較慢。 - 無法與一般作業系統整合:
一般的作業系統都是基於File system,下載一個Object就像下載一個檔案,需要整體下載。
總結
- 扁平化結構便於擴展
- 彈性的 metadata 設計
- 適合存放靜態大數據
- API 簡單易用
- 成本效益高