當前位置:
首頁 > 科技 > 緩存分散式一致性難題,它解決了

緩存分散式一致性難題,它解決了

很久之前有個客棧,由於客流量眾多,所以有兩個人在前台負責辦理入住退房。他們共同維護了一個bitmap,凡某間房已入住,則標記一個黑點,白點表示該房無人住

但是這個bitmap只有一份,兩個人都要使用,很不方便。於是將其複製了一份,每人各記錄各的。這就產生了問題,這兩個人相互都不知道哪間房退房了以及哪間空房被入住了。於是他們約定,在更改bitmap時,要向對方吼一聲,對方把接收的變更落地到自己本地的bitmap中

這故事,聽起來是不是有些耳熟?

這不就是區塊鏈的部分原理嗎?第一個佔據某個節點的人要在系統內廣而告之,宣布此節點名花有主,系統內所有人都會收到消息,轉而開始對下一個節點的進攻。

今天小編並不想說區塊鏈,而是一致性

凡分散式系統,都不可避免地要應對一致性要求。

但在分散式系統中,很少有產品啟用緩存。因為除了需要採用NVRAM/NVDIMM來做掉電保護之外,最重要的是解決分散式緩存的一個關鍵問題——Cache Coherency(緩存一致性)

? 這個問題,戴爾易安信Isilon解決了。

一騎絕塵的橫向擴展NAS.....

緩存分散式一致性難題,它解決了

戴爾易安信的Isilon是一個分散式集群NAS系統,支持主流的網路文件系統、對象、REST、SWIFT、HDFS等訪問協議。Isilon系統分為三個子型號:F、H、A。

Isilon F800 All-Flash▼

緩存分散式一致性難題,它解決了


Isilon還擁有一系列的數據管理軟體功能,包括:INSIGHTIQ、SMARTPOOLS、SMARTQUOTAS、SMARTCONNECT、SNAPSHOTIQ、CLOUDPOOLS、SMARTDEDUPE、SYNCIQ、SMARTLOCK、ASPERA。

Isilon的核心是OneFS集群文件系統。作為一個分散式、對稱式、並行集群文件系統,OneFS將傳統存儲體系結構的文件系統卷管理器數據保護三層合併為一個統一的軟體層,從而構建了一個跨集群中所有節點的單一智能文件系統。

緩存分散式一致性難題,它解決了

分散式緩存的挑戰.....

OneFS屬於對稱式集群,這意味著任何一個節點均可以承載I/O訪問,由此也帶來一個問題,比如節點1和節點2同時緩存了數據A,Host1向節點1發起寫請求更改了數據A為B,那麼此時節點2上的數據A就必須立即作廢。

我們不妨先看看PowerMax這個分散式集群SAN系統是如何處理緩存一致性問題的。戴爾易安信的PowerMax採用Hash方式來確定某個數據塊唯一的緩存節點,這樣就不存在緩存一致性的問題,但代價是需要跨節點產生數據流量,而不僅僅是控制流量,因為此時數據需要在多個節點中傳來傳去。

比如數據塊A只能緩存在節點1,如果節點2需要訪問數據塊A,則先計算Hash得出數據塊A所在的節點,然後向該節點發送請求讓其傳遞數據塊A的部分或全部到節點2,再將數據發送給Host端,同時節點2將數據塊A從其本地緩衝區刪除,不能作為下次訪問使用,因為節點2根本不知道數據塊A在其他節點上是否已經發生了變化。

Isilon如何實現緩存一致性.....

這時大家自然想到,如果數據塊A的變化情況能讓集群中所有節點都知道,廣播出去,不就可以保證數據一致性了么

沒錯,多核心多CPU其實也是一個分散式集群,它就是這麼管理緩存的,藉助於核間、片間高帶寬低時延網路,能夠讓分散式緩存的訪存時延降低到一個可接受的範圍內。緩存一致性協議規定了多個緩存之間在什麼時候傳送什麼消息、以什麼方式問答等。比如Intel使用MESIF協議,AMD使用MOESI協議。

Isilon的OneFS採用了與CPU類似的緩存一致性協議實現了緩存一致性,而開發這套協議需要相當的技術水平。

Isilon採用Infiniband互聯,以Sockets Direct Protocol (SDP) over InfiniBand (IB)實現節點間同步,採用MESI協議實現緩存一致性

MESI表示每個緩存行的4種狀態:

M – Modified: The data exists only in local cache, and has been changed from the value in shared cache. Modified data is typically referred to as dirty.

E – Exclusive: The data exists only in local cache, but matches what is in shared cache. This data is often referred to as clean.

S – Shared: The data in local cache may also be in other local caches in the cluster.

I – Invalid: A lock (exclusive or shared) has been lost on the data

每個節點均記錄本地緩存行的狀態,決定是否要發出廣播。比如訪問一個E狀態的緩存行,就無需通知其他節點,因為E表示該緩存行只存在於本地,其他節點沒有緩存。

不得不說,Isilon通過軟體把CPU集群所採用的緩存一致性協議搬移到了集群節點間,這種正宗的分散式緩存實現,在市面上的分散式集群系統中是不多見的。所謂品質決定市場表現,Isilon之所以能成為全球存儲市場上的橫向擴展架構典範,與其獨特的開創性特色是分不開的

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 至頂網 的精彩文章:

Red Hat收購跨雲數據管理初創公司NooBaa
思科收購英國網路軟體公司Ensoft

TAG:至頂網 |