1. 程式人生 > >Seafile深入理解(一).如何理解異地分散式部署

Seafile深入理解(一).如何理解異地分散式部署

把複雜的問題簡單化,是大師的水平,是對技術的真正理解,所謂簡單是能切中要害,深入淺出地表達,所以提煉產品的技術亮點,是與客戶交流的基礎功課。但並非高深的技術一定是複雜的,任何產品都有它“獨特”的技術,關鍵是你條理地表達。我們常常遇到這樣的情況,我們銷售的產品使用起來非常“傻瓜”,好象沒有什麼可說的,客戶認為太簡單而沒有技術含量,沒有技術,靠什麼競爭,比價格是很殘酷的。     

核心的理解就是:每個地點的Seafile叢集只需要和本地的資料庫節點、物件儲存節點通訊就可以了,但是不同地點之間的資料是可以通過mariaDB叢集和物件儲存的自動資料同步來實現。

  Seafile通過異地的分散式部署,為中國、美國兩地的使用者提供網盤服務,同時保證兩地使用者訪問到的資料是一致的。由於Seafile的資料儲存在資料庫和物件儲存中,所以我們需要保證兩地資料庫和物件儲存資料的一致性。

      如下圖所示,資料庫資料的一致性是通過MariaDB叢集的方式來實現的,MariaDB叢集是一個多主的資料庫同步方案,資料的讀寫可以在任意一個數據庫節點上進行,其它節點會自動對資料讀寫進行同步,以保證所有節點上資料的一致性。MariaDB叢集至少需要三個資料庫節點,下圖中按照最小的三節點來部署,可以在中國部署兩個資料庫節點,在美國部署一個數據庫節點。

      物件儲存資料的一致性,通過Xsky內部技術來實現Xsky物件儲存節點間資料的自動同步。

      除了保證兩地資料的一致性,我們還需要在兩地分別部署Seafile伺服器叢集對兩地的使用者提供Seafile網盤服務。兩地的Seafile叢集僅需要分別與本地的MariaDB節點和Xsky物件儲存節點通訊即可。