分佈式存儲系統是爲了解決單機存儲所存在的容量、性能等瓶頸,以及可用性、擴展性等方面的問題,經過把數據分散存儲在多臺存儲設備上,爲大規模的存儲應用提供大容量、高性能、高可用、擴展性好的存儲服務。這一系列的文章介紹一種典型的分佈式存儲系統的設計和實現,該系統已經服務大量的業務,達到了數百T的存儲量,經受了海量服務的考驗。架構
系統的總體架構以下圖所示,其中邏輯層是存儲服務的使用方。系統由兩大部分組成,一部分是圖中數據倉庫包含的模塊,是直接提供數據存儲服務的核心部分,由接入層、數據層、配置運維中心組成;另外一部分是輔助系統,主要負責系統的監控、運維和運營備份系統、監控系統、運維管理系統、用戶運營系統組成。負載均衡
一個數據倉庫就是一個存儲集羣,多個業務能夠共享一個數據倉庫的資源,咱們根據需求能夠部署多個數據倉庫,輔助系統是全部數據倉庫共用的。運維
下面簡單介紹一下各個模塊的主要功能。分佈式
接入層主要是提供兩個功能,一是對邏輯層訪問接入層進行負載均衡;二是實現數據分片,即把訪問數據的請求轉發數據所在的數據層設備。工具
數據層就是存儲數據,存儲介質能夠支持內存或SSD。讀寫服務是處理用戶的讀寫請求;同步模塊多份數據拷貝之間的主備同步;運維工具是用於執行主備切換、死機恢復、擴容等運維操做。性能
配置運維中心由3部分組成。配置中心負責整個倉庫的配置維護和下發;配額中心負責各個業務級別的容量、流量、CPU等資源的配額管理;運維中心用於自動或手動下發運維命令。設計
備份系統負責整個系統全部業務的數據備份、回檔和恢復。流水中心會記錄全部寫操做的流水;任務中心管理和調度全部數據備份、回檔和恢復任務的執行。blog
監控系統對系統的關鍵信息和運行情況進行上報和分析,對異常狀況進行監控和告警。打點上報是對系統的關鍵路徑、異常點等進行計數或狀態上報;多維上報是對打點上報的一個補充,上報了更多維度的信息。內存
運維管理系統的使用者是系統運維人員,能夠方便地進行業務管理和運維操做,如進行配置管理、故障管理、業務擴容等經常使用操做;還能夠查看系統運行情況和業務運營數據。資源
用戶管理系統的使用者是使用存儲服務的用戶,用戶經過該系統能夠掌握所接入業務的運營數據,以及進行用戶級的業務管理和運維操做,如續費、擴容、數據清空、數據備份、數據恢復等。