[儲存]資料儲存的基礎知識 - Object storage

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 簡單易用
  • 成本效益高