架構原理
作為新型的分散式檔案系統,大魚集群存儲系統充分吸取了學術界和工業界在分散式存儲系統方面的多年研究成果,針對海量數據存儲的核心問題:系統可擴展性及可用性,進行有針對性的研究和最佳化,形成了具有高可擴展、高可用、高性能的彈性體系架構。
DayuFS運行於通過網路互連的集群系統之上,通過在不同節點之上安裝DayuFS的不同邏輯部件,將所有節點的存儲資源整合一個的單一檔案系統空間。DayuFS包含了三個主要的邏輯部件:元數據伺服器(MDS)、數據伺服器(DS)以及客戶端(Client)。其系統結構如下圖:
元數據伺服器(MDS)存儲和管理檔案的元數據信息及目錄結構信息,並實現全局統一命名空間;數據伺服器(DS)以分塊的形式存儲檔案的真實數據;客戶端(Client)則是上層套用訪問數據的接入點,所有上層套用只有通過客戶端才能與MDS和DS進行互動,完成檔案系統操作。DayuFS的主要邏輯部件均可根據套用的具體需求靈活部署,以適配不同類型的數據訪問模式。
同時,為了兼容傳統網路檔案服務,DayuFS還實現了NAS網關,通過該網關,可以將DayuFS以CIFS/NFS/FTP等傳統網路檔案協定輸出。通常這些協定的客戶端在大多數作業系統上均有實現,因此此類用戶無需安裝DayuFS的客戶端軟體即可訪問DayuFS。
儘管系統內包含多個物理節點和功能模組,DayuFS向所有用戶及訪問接口提供單一的檔案系統映像。不同用戶通過任一訪問接口,均訪問到一個全局統一的檔案系統目錄樹。用戶無需了解DayuFS的底層硬體組成和模組部署情況,與傳統檔案系統一樣,用戶只需按照檔案路徑即可訪問DayuFS的所有內容。
訪問接口
訪問接口是由檔案系統提供的面向套用的數據訪問方式。為了兼容更多類型的套用,DayuFS提供了豐富的訪問接口,具體請詳見下表:接口 | 說明 |
專用客戶端 | 支持主流Linux/Windows/OSX |
傳統NAS接口 | 支持NFS(v3/v4)/CIFS/FTP |
API編程接口 | 提供C++/JAVA編程接口 |
大數據處理接口 | 支持Hadoop大數據處理 |
SQL查詢接口 | 提供檔案系統元數據SQL查詢 |
除了SQL查詢接口,上述接口均可看到相同的檔案系統內容,可以實現跨協定、跨平台的檔案共享。
專用客戶端
DayuFS客戶端安裝在客戶的本地套用節點,通過DayuFS私有協定直接訪問集群節點,可提供高可用、高性能的並行檔案訪問。DayuFS客戶端支持主流的Linux,Windows和OSX作業系統。安裝配置後,使用方式與本地檔案系統幾乎無差別,支持POSIX檔案操作,傳統的單機套用可不作更改直接訪問DayuFS系統。此外,專用客戶端還支持一些平台專有特性,如Windows客戶端支持NTFS訪問控制,可融入域控管理。NAS接口
NAS訪問接口支持NFS(v3/v4)、CIFS和FTP等在企業級套用中廣泛使用的網路檔案共享協定,可直接替換基於傳統NAS的網路套用。由於作業系統均內置接口協定支持,用戶不需要安裝客戶端,即可直接訪問DayuFS,十分簡捷方便。API編程接口
API接口可提供更好的訪問效率和更豐富的檔案操作功能,用戶可基於APIs編寫程式,高效靈活的直接訪問大魚存儲系統。傳統檔案訪問接口由於受POSIX接口限制,DayuFS的功能無法全部呈現給用戶應用程式。如果採用API接口,可以提供諸如:數據位置信息、數據存儲位置定製等DayuFS特有的功能,同時也避免兼容作業系統所帶來的額外開銷,非常適合構建大規模的數據處理、集群服務等套用。目前,DayuFS提供C++/Java/PythonAPI接口。大數據處理接口
為了適配Hadoop大數據處理框架,DayuFS提供了Hadoop的HDFS外掛程式,可無縫嵌入Hadoop大數據處理平台之中,替換原有HDFS,提供更好的I/O性能,從而提升整個平台數據處理速度。元數據SQL查詢接口
DayuFS提供了特有的離線檔案系統元數據SQL查詢接口。在用戶的環境中,DayuFS檔案系統可能會管理數以億計的檔案,如果還是使用傳統的檔案查找方式(如,find),這將會是一個相當耗時和消耗系統資源的操作。而且,傳統的檔案查找方式,僅能檢索相對固定的系統元數據(如,檔案名稱,檔案類型等),而不能更加靈活的檢索用戶自定義元數據(usermetadata),極大的限制了靈活性和擴展性。DayuFS支持基於預定義的數據表格式,將所有的檔案系統元數據導入到RDBMS中(如,MySQL。這樣用戶可以直接利用資料庫提供的強大靈活的SQL查詢接口,來檢索檔案元數據。同時,用戶也可以根據自定義的用戶元數據來檢索檔案,更加靈活方便。在實際套用環境中,選用哪種訪問接口,需要考慮多方面因素,包括:用戶使用習慣,套用對掛載方式的要求,套用的性能要求以及用戶的網路配置情況等。
優勢分析
與傳統的存儲設備DAS、SAN和NAS(網路存儲)相比,DayuFS具有如下不可比擬的優勢:
高可擴展
系統可擴展性是衡量系統規模與其性能關係的指標,在傳統存儲系統中,性能/容量通常在系統構建之初就已經確定,很難隨系統規模的增加而動態的增長。以NAS產品為例,可以通過增加擴展磁碟櫃等方式,在設計的範圍之內擴展系統容量,但其性能輸出卻受限於控制器性能和網路接口。某些高端NAS設備可以有限地擴展控制器數量,但由於架構原因,系統性能還受到後端存儲網路的限制,無法做到性能的線性擴展。
DayuFS的設計目標之一就是系統的高可擴展性,所採用的系統架構,數據分布方式,並發訪問流程和多元數據架構,都是為了提升系統可擴展能力。系統所能輸出的聚合性能與系統節點數目呈近似線性關係,通過簡單的模組堆疊即可獲得遠超傳統存儲設備的性能表現。DayuFS高可擴展特性的另一個表現是系統的靈活性,可以根據套用特徵需求,彈性部署DayuFS系統,使用不同硬體設備,不同數量的DayuFS功能模組,從而良好匹配不同類型的套用,均衡系統存儲資源。
高性能
DayuFS的性能優勢表現在兩個方面。首先,對於單個客戶端而言,DayuFS充分利用數據分布存儲的特性,通過並發訪問提升單個客戶端訪問速度,同時使用快取、預取、延遲寫等I/O最佳化技術,提供出眾的單客戶端IO性能。再者,對於整個系統的聚合性能而言,DayuFS具有良好的可擴展性,系統的聚合頻寬和IOPS均可隨節點數目的增長而線性增長。可以獲得傳統存儲難以獲得的系統聚合性能,例如:聚合I/O頻寬達幾十GB/s,聚合IOPS可到百萬級。
高可用
DayuFS系統內不存在單一故障點,對於檔案數據,DayuFS採用了多副本的數據保護機制,檔案元數據服務則採用雙機熱備的方式。當系統內任意單個部件損壞時,數據均不會丟失,數據服務也不會中斷。同時,當故障發生時,DayuFS的故障恢複流程自動開始運行,儘快恢復因故障導致的檔案數據副本的缺失,防止二次故障導致的數據丟失。數據恢復的流程無需人工啟動和干預,能最大程度減少故障修復時間。另一方面,各種DayuFS的相關操作,如升級、擴容、維護等均不需要停止檔案操作。這些特性在不同程度減少了系統服務中斷的機率,降低了系統恢復的時間,相對於傳統存儲系統具有更好的可用性。
低成本
傳統的企業級存儲設備多採用昂貴的專用軟硬體設備,如光纖磁碟,專用存儲網路以及專門設計的存儲伺服器等,所使用的系統軟體,多面向特定硬體專門開發。而基於DayuFS的存儲系統則採用普通X86架構伺服器,普通SAS/SATA磁碟,主流的通信網路(如千兆乙太網)等通用硬體設備,軟體則採用開源作業系統和支撐軟體,成本優勢顯而易見。
另一方面,DayuFS的維護和擴展成本較低,雖然採用了普通商用部件,但是部件故障處理和恢複流程均精心設計,需人工介入的情況相對較少。相對於傳統企業級存儲中的複雜的故障處理、系統擴容等流程,使用難度大大降低。對系統管理人員技術要求也不高,減少了管理人員培訓的開銷,從而進一步降低了系統維護的成本。
兼容性強
DayuFS提供了多種訪問接口,支持當前主流的網路檔案訪問協定NFS、CIFS和FTP,基於這些協定的套用均可無縫的移植到DayuFS之上。DayuFS還提供了Linux、Windows和MacOS客戶端接口,使用方式如同本地磁碟,並且,Linux客戶端支持POSIX檔案共享語義,Windows客戶端支持NTFS訪問控制,可以完好地支持現有的單機類套用。
對於目前常見的集中新型套用,如:大數據處理、雲計算/雲存儲、服務集群等,DayuFS有針對性的提供的API接口、HDFS外掛程式、WebService接口和SQL查詢接口。這些接口結合DayuFS的結構特徵,可高效的支持上述的新型套用。因此,相對於傳統存儲而言,DayuFS可適應更多類型的套用,具有更強的兼容性。
易管理
DayuFS設計時就充分考慮到系統的動態性,將部件故障、系統擴展、數據恢復等事件當作系統可能隨時可能遇到的常見情景。系統管理框架中已經內置了應對這些問題的處理機制,如:自動故障切換、自動數據恢復、自動數據均衡等。事件發生時,無需管理員介入,系統自動偵測問題並開始進行處理。另一方面,DayuFS提供的單一入口的WEB管理界面,通過簡單的界面操作即可完成系統監控、服務管理、用戶管理等操作,使得系統的管理複雜度與節點數目無關,可有效支持大規模系統。
典型套用
DayuFS面向數據密集型套用設計,針對大數據連續讀寫模式進行了最佳化,並採用多MDS機制以滿足元數據密集型套用的需求。同時,DayuFS的高可靠、高可用、高可擴展特性也使其適合各種線上套用和關鍵業務。以下是能充分發揮DayuFS特性的幾種典型套用:
多媒體服務
醫療影像處理
大數據處理
動畫製作
雲存儲服務
數據備份和歸檔
視頻監控
科學計算
目前,DayuFS已經使用在多媒體服務、醫療影像處理、動畫製作、媒資管理、大數據處理等多個套用,效果良好,解決了傳統存儲存在的問題,為該類套用提供了一個低成本的高效解決方案。