FusionStorage的ZK盤和幾個視圖的工作原理


ZK(zookeeper)盤:是個開源軟件。3個ZK盤和MDC構成了FusionStorage的集群管理軟件,管理VBS和OSD的心跳,將視圖信息(OSD view,IO view,Partision view)保存在ZK盤中。而且,一旦在ZK盤中的r視圖與其它盤中的視圖產生沖突,以ZK盤存放的元數據為主。

  ZK盤:server端(為MDC提供選主機制,來保證MDC元數據的可靠性)

  MDC:client端(1、MDC的搶主機機制是通過ZK來實現的。

          2、ZK保存MDC的元數據,MDC啟動時讀取的元數據是通過ZK來讀取的

          3、如果ZK集群是好的,MDC只要有一個是活的就可以正常工作,如果ZK集群掛了,MDC也不能正常工作。

          4、MDC之間的數據是會互相同步的。

         

 

MDC:管理元數據、分布式規則、數據重建規則、

OSD:具體的落盤規則
VBS:是將IO轉化成轉化成FS能夠識別的key/value模式,給OSD。

 

ZK是投票選主,

MDC是注冊選主,

         就是誰先向ZK注冊,誰就是主MDC

OSD是由MDC指定誰是主OSD,因為MDC會生成一個partition視圖(保存的是主備OSD的狀態),而且partition視圖是緩存在OSD里面的。

    IO視圖也是由MDC生成的。作用是:partition視圖對應的OSD的關系,將如何去找到數據落到那一塊盤中。IO視圖緩存在VBS里面的。

              OSD視圖包括OSD  ID和狀態,是OSD啟動之后將信息報送給歸屬MDC,由MDC生成   

    

 

下圖表示的是三個視圖的組成的成分:

  

 

 

  IO視圖的信息不會經過MDC,MDC只是負責計算IO視圖(即當上層將IO視圖發送到VBS,VBS應該將該IO視圖發送給哪一個OSD),這個IO視圖在VBS和OSD本地也會保存一份。如果OSD故障的話,那么IO視圖就會發生變化。MDC就會修改IO視圖,將IO視圖同步給VBS,VBS拿到IO視圖之后,會將自己的IO引流到另一個副本。

  partision視圖是主備復制的重要環節,OSD收到IO后,會根據這個partision對應的副本在哪個OSD上,並發送復制請求給備副本所在的OSD。partision視圖信息都是由MDC來維護的。

  OSD視圖記錄了OSD id和其對應的關系,例如UP/DOWN,OSD狀態發生變化后先更新OSD 視圖,在更新Partision 視圖。

 

     MDC是采用一主兩備的部署方式。當MDC模塊進程啟動后,會主動的向ZK注冊選主,首先注冊的會成為第一個主MDC。在MDC的運行過程中,ZK記錄MDC主備信息,並且通過心跳機制去監控MDC的正常狀態。一旦,主MDC故障,會觸發MDC重新選主機制。

    主MDC和其他MDC互相監控心跳,一旦某個MDC故障后,主MDC將會決定誰來接替。其他MDC監控到主MDC故障,就會和ZK互動升任主MDC。

 

OSD如何找到歸屬MDC?

當OSD開始工作的時候,向MDC去查詢歸屬MDC,查詢到了,就向歸屬MDC報告狀態,歸屬MDC把狀態發送給VBS, 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM