什么是分布式存儲概述

今日頭條
mindwind
存儲系統(tǒng)的關(guān)注點 關(guān)于存儲系統(tǒng),一般我們關(guān)注下面幾個方面: 數(shù)據(jù)分布與負載均衡 數(shù)據(jù)存儲的可靠性與一致性 數(shù)據(jù)訪問性能 系統(tǒng)容錯能力 系統(tǒng)擴展能力 在單機存儲系統(tǒng)中有一種獨立磁盤冗余陣列...

存儲系統(tǒng)的關(guān)注點

關(guān)于存儲系統(tǒng),一般我們關(guān)注下面幾個方面:

數(shù)據(jù)分布與負載均衡

數(shù)據(jù)存儲的可靠性與一致性

數(shù)據(jù)訪問性能

系統(tǒng)容錯能力

系統(tǒng)擴展能力

在單機存儲系統(tǒng)中有一種獨立磁盤冗余陣列(RAID,redundant array of independent disks)技術(shù),

是把相同的數(shù)據(jù)存儲在多個硬盤不同地方的方法。通過把數(shù)據(jù)放在多個硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能。

這個技術(shù)基本解決了我們上面提到的前三點,數(shù)據(jù)可以通過磁盤陣列控制程序均勻分布在多個硬盤上,

以實現(xiàn)負載均衡,并通過冗余來保障可靠性。類似單機掛載多磁盤,數(shù)據(jù)在磁盤陣列上的冗余副本要保持一致也容易。

存儲系統(tǒng)的訪問性能基本受制于磁盤的性能,通過分散到多磁盤確實達到了提升性能的效果。

真正的問題難點在于后兩點:

磁盤陣列解決了單一磁盤的脆弱性,但并不能提升存儲子系統(tǒng)整體的可用性,或者說容錯能力。

同理擴展能力同樣受制于磁盤陣列的物理擴展槽的限制。

分布式存儲的定義與分類

所以分布式存儲應(yīng)運而生,作為存儲系統(tǒng)它同樣需要面對上述問題。

先來看下它的定義:

分布式存儲系統(tǒng)是大量普通PC服務(wù)器通過網(wǎng)絡(luò)互聯(lián),對外作為一個整體提供存儲服務(wù)。

從上面的定義看,更多時候我們把分布式存儲作為一種服務(wù)面向各種不同的數(shù)據(jù)存儲需求。

從數(shù)據(jù)存儲模型上,我們可以進一步分類分布式存儲服務(wù)為:

文件模型:對應(yīng)分布式文件系統(tǒng),如:GFS、HDFS

關(guān)系模型:對應(yīng)分布式數(shù)據(jù)庫系統(tǒng),如:Google Spanner、Taobao OceanBase

鍵值模型:很多NoSQL系統(tǒng)采用,如:Redis

分布式存儲的得與失

面對單機存儲系統(tǒng)面對兩個難點,分布式存儲系統(tǒng)通過集群方式擴展到幾百甚至幾千臺集群規(guī)模來解決系統(tǒng)擴展能力,

通過軟件層面對單機服務(wù)器的硬件容錯能力大大提升了整體集群的容錯能力。

在獲得這些好處時,自然也有所犧牲,所謂有得必有失。

說到存儲不得不提單機數(shù)據(jù)庫存儲的事務(wù)特性:A(原子性)C(一致性)I(隔離性)D(持久性),

而擴展到分布式存儲后,受限于分布式C(一致性)A(可用性)P(分區(qū)容忍性)理論,幾乎不可能滿足完整得事務(wù)特性。

各種分布式存儲服務(wù)實現(xiàn)都對單機存儲的事務(wù)特性作了權(quán)衡取舍,滿足特定的服務(wù)場景需求。

另外分布式存儲系統(tǒng)是基于網(wǎng)絡(luò)互聯(lián)的,所以除了基本得磁盤訪問性能開銷,還多了網(wǎng)絡(luò)性能開銷。

通常一般機械硬盤得平均尋道時間為10ms,而機房內(nèi)網(wǎng)得網(wǎng)絡(luò)訪問開銷一般小于0.5 ms,相對性能損失較小。

而原本由磁陣控制程序負責得數(shù)據(jù)在磁盤中的分布、負載均衡策略和一致性保障,

在分布式存儲中都需要軟件在整個機器集群層面去考慮,復雜度大大提高。

來源:CSDN

原文:https://blog.csdn.net/mindfloating/article/details/47811665

THEEND