云存儲對于一系列的存儲需求是一種有效的選擇。理解各種云存儲系統的關鍵特性有助于識別合適的用例,并避免潛在且昂貴的錯誤。
我們使用術語“云存儲”,仿佛存在一個單一的數據存儲服務。實際上有多種類型的云存儲系統。通過確定合適用例的特性有助于將這些系統分類。比如,你不想使用花費數小時來響應一個讀請求的歸檔系統來運行庫存車管理系統。類似的,也沒理由在基于磁盤的存儲有效的情況下為低延遲的SSD存儲付費。
羅列出云存儲系統的類型
為了便于回顧,我們將存儲系統根據四種通用的技術特性分類:
1.可靠性
2.可訪問性
3.文件 vs. 對象存儲
4.大小限制
雖然這些都是主要的特性,但是在選擇云存儲系統時,這些并不是你可能必須考慮從的唯一因素。也有聚焦業務的特性,比如成本和延遲,這些都應該考慮在內。加密技術的有效性以及訪問控制為例,可能是選擇標準的關鍵考量。這些安全特性可以在存儲系統中找到不同的類型,而且獨立于我們分類存儲系統的方式。
可靠性。可靠性是跨越一段持續期的考量存儲系統的可訪問性和功能的方式。
一個具備99.99%可靠性的存儲系統預計每月大概4.5分鐘宕機時間。一個具備99.999%可靠性的存儲系統預計每月宕機時間少于30秒。
一個相關的度量——耐久性——是度量數據可能丟失的程度的。亞馬遜簡單存儲服務(亞馬遜S3)使用多種數據備份來承諾99.999999999%的耐久性。這意味著你每年存儲的對象丟失的概率為0.000000001%。
需要注意的是這些評估基于低估潛在的系統性失靈的假設。比如,如果存儲在三個不同的數據中心的數據都有備份,如果失敗隨機發生,所有這個三個同時失敗的概率相當小。然而,如果制造或者設計缺陷存在于磁盤驅動器中,而且所有的三個比分都存儲在相同類型的驅動上,那么這三個同時丟失的概率要高很多。
可訪問性。可訪問性確定了存儲設備被如何使用。對象數據存儲,包括亞馬遜S3和Windows Azure塊存儲,允許你將數據作為Web可訪問對象存儲。程序或者交互用戶可以使用REST界面檢索對象。文件在對象存儲庫中存儲,但是這些系統并不具備文件系統的全方位的特性和選擇。如果多種服務器可能需要同時訪問數據,這種類型的存儲尤其有用。
對象存儲系統通常維護多種數據備份,從而改善可訪問性和耐久性。改變對象要保持所有的備份都一直,盡管也可能兩個用戶會看到不同的結果,如果他們使用不同的對象備份服務查詢。
塊存儲服務,比如亞馬遜Web服務(AWS)的彈性塊存儲(EBS),比起對象存儲更像直接或者網絡連接存儲系統。塊設備更適合需要低層級磁盤訪問的應用,比如原始格式化驅動、標準文件系統或者一致的I/O性能。
正如物理存儲設備一樣,塊存儲設備有時候附屬于一個服務器。這種情況下和數據庫以及其他旨在共Linux或者Windows文件系統的應用能更好的工作。在亞馬遜EBS中,你也可以選擇用預分配I/O性能創建EBS容量。這里也存在預分配I/O的額外費用,但是他們允許你為你的服務需求定制你的I/O性能。
此外,EBS容量可以被復制,而且副本看以附屬于其他的服務器,允許更高層級的讀性能。讀副本并不適用于哪些需要在延伸實踐內容進行高容量讀操作的應用。
大小限制。存儲限制是考慮塊存儲設備的另一個因素,提供了實質上不受限的存儲,EBS容量限制為1TB。歸檔存儲——可選云存儲的第三種類型 ——提供了低成本存儲,亞馬遜Glacier每月0.01美元/GB,但是有極高的延遲。歸檔存儲適用于數據必須保留的情況,即便是不怎么使用了。