思考的問題
資料應該要存放於甚麼位置呢?
資料儲存時,需要思考其儲存設備。
不同儲存設備的效果、成本不一。需要依據需求選擇合適對象。
常見的儲存設備包含:DAS, NAS, SAN, RAID, Block Storage, Object Storage
DAS
描述
Direct attached storage (DAS) 通過硬體直接掛載硬碟來連接磁碟機。可使用SATA, SAS, USB等方式連接硬碟。
使用情境
優點
- 架構單純: 只要掛載硬碟即可使用
- 價格便宜: 相對於NAS與DAS,不須額外設定與伺服器
缺點
- 絕大部分的DAS裝置,無法與其他伺服器共享硬碟存取
NAS
描述
Network attached storage (NAS) 為獨立的檔案存取伺服器,伺服器透過網路連接硬碟。
使用情境
優點
- 可同時供多台伺服器存取資料
- 可同時掛載多個硬碟,提供更大的磁碟儲存空間
- 搭配RAID等機制可提供減少單一硬碟損壞造成資料遺失的缺點
缺點
- 價格較高: 相對於DAS,需要獨立的伺服器,且同時有多顆硬碟,因此成本較高
- 架構與管理複雜: NAS需要管理伺服器、網路與儲存設定,因此管理較為困難
- 單點故障風險: 如果NAS伺服器的網路或電源中斷,則無法提供資料存取服務
SAN
描述
Storage area network (SAN) 使用獨立光纖網路、多台磁碟陣列、多台Switch共同組成儲存空間。雖然是由多台磁碟陣列組成,但是對伺服器來說,仍然可如同一般硬碟一樣進行掛載磁碟使用。SAN可解決NAS單點故障的風險,存取速度也更快,但是價格十分高昂。
使用情境
優點
- 避免單點故障: 由於同時有多台磁碟陣列提供存取,避免單一磁碟陣列損壞而無法連接的問題
- 快速存取: SAN透過光纖存取資料,因此存取速度較快
- 不佔用區網流量: SAN透過獨立網路進行資料存取,不會影響其他區域網路服務
- 易於水平擴展: 由於有多台磁碟陣列,可分批增加磁碟陣列的儲存空間,而不影響服務運行
缺點
- 價格十分高昂: SAN需要多台磁碟陣列及光纖網路,這都需要較高的成本
- 管理十分複雜: SAN需額外管理各磁碟陣列之設備及維護光纖網路的設定,因此管理複雜並且難以學習曲線較高
RAID
描述
RAID(Redundant Array of Independent Disks)是以多個硬碟互相備援資料,以降低單一硬碟損壞造成資料遺失的風險。有多種RAID的等級,例如RAID 0, RAID 1, RIAD6等。各自有不同的備援邏輯及備份次數。可通過硬體或軟體實現RAID架構。
使用情境
優點
- 冗餘備援:透過多個硬碟互相備援減低資料損失風險
- 讀寫效率高:由於有多個硬碟,可同時並行讀寫多個不同的硬碟
缺點
- 價格較高:按照不同的RAID等級,需要更多的冗餘備份硬碟,並且可能需要採購專門的RAID磁碟陣列
- 管理複雜:需要考慮不同的RAID等級等儲存設定
- 寫入速度可能降低:某些RAID模式下,因為需要同時寫入多個硬碟,可能會降低寫入速度
- 無法應對區域性風險:無法避免區域性的停電或天災的資料損失風險
Block Storage
描述
若有大量資料儲存需求,以一個一個資料區塊為單位,分散儲存於多台伺服器中。可以連續或隨機地讀取檔案,也可以儲存結構性與關聯性的多組檔案。
使用情境
- 企業內部共用資料夾
- 虛擬機器(VM)或容器掛載的資料夾
優點
- 可儲存大量的檔案:透過水平擴展,Block Storage能夠應對大容量的儲存需求。
- 可儲存結構性的檔案:Block Storage支援儲存結構化的資料,如關聯式數據庫。
缺點
- 架構較複雜,管理較複雜:Block Storage需要較多的配置和管理,包括區塊分配、存取控制等。
- 建置成本高昂:建立和維護Block Storage的成本通常較高,包括硬體設備、存儲軟體、數據保護等方面的投入。
Object Storage
描述
Object Storage是一種儲存架構,以每一個檔案為單位,各檔案給予一個獨立的ID。通過這個ID搭配RESTful API進行存取。檔案的類型可以為圖片、影片或一般文件。這些檔案可以彈性地存放於分散式環境。通常搭配冗餘多重備份機制,以避免因災難造成資料遺失。
使用情境
- 大量的檔案儲存需求
- CDN、相簿、影片串流
- 獨立的檔案: 儲存大量的圖片、影片、一般文件,較不適合儲存一組相關聯的結構性檔案。例如: 資料庫
優點
- 易於儲存與備份: 各個檔案獨立,方便分散式儲存與備份
- 易於存取: 通過RESTful API即可存取檔案
缺點
- 無法儲存結構性資料: Object Storage主要用於儲存非結構化的檔案,不適合存儲結構化資料或關聯性數據。
- 無法掛載為傳統作業系統的網路磁碟機: Object Storage無法像傳統的Block Storage那樣直接掛載為傳統作業系統的網路磁碟機,而是通過API進行存取。
- 架構較複雜: Object Storage的架構相對複雜,需要更多的配置和管理。