博睿數據-企業應用性能管理服務商,賦能IT運營智能化
福建36选7 手机捕鱼哪个好玩 赚钱使人开心的下一句 众益彩票首页 做烤蛋糕之类的赚钱吗 快速时时彩 形容老百姓赚钱难的成语 冒泡社区幻想三国卖金币赚钱 心悦辽宁麻将赢钱技巧 幸运农场 splatoon赚钱 问道80级以下怎么赚钱 广东26选5 玩儿手机游戏赚钱 问道玩队伍号赚钱 雷速体育在线 qq捕鱼大亨8号炮

開源工具BRFS

背景

企業在日常運營中會回收大量的數據文件進行存儲,如網頁截圖、網絡抓包、代碼堆棧快照等。此類文件體積小但數量多,這就導致在存儲上會遇到很多問題:

如果使用系統原生文件系統進行存儲,會遇到Linux索引節點(inode)耗盡導致磁盤存儲空間無法有效利用的問題,同時也無法原生支持分布式及高可用的要求。

但如果采用HDFS或HBASE方案存儲,則一方面硬件資源開銷較大,NameNode內存開銷過大,同時該方案讀寫效率也不足夠高效,尤其當內部進行塊文件合并時集群I/O壓力過大的時候,讀寫效率更是難以保證。

博睿數據10年深耕APM技術創新,推出了眾多行業領先產品,如Bonree SDK、Bonree Browser、Bonree Server等,這些產品每天都會回收海量數據文件,存儲時也遭遇了上述問題。憑借多年大數據項目實踐經驗,博睿數據構架BRFS(Bonree Distributed FileSystem)系統,以滿足各產品線對海量小文件數據存儲需求。

BRFS簡介

BRFS(Bonree Distributed FileSystem)是一個主要針對海量(10億個文件以上)小文件(快照、圖片、語音等,普遍大小在1KB-50KB)存儲而設計的高可用、高性能、易擴展的分布式文件系統。BRFS對存儲的文件格式沒有限制和要求,任何格式的文件都會以byte字節流的方式進行存儲。

此系統功能不僅包含了現有其他開源產品具備的權限控制、數據增刪讀、多副本備份、數據檢驗等基礎功能,同時博睿數據還設計了獨特且高效的副本自動遷移和平衡策略、多應用數據隔離且獨立配置,系統資源管理插件、集群狀態可視化監控與報警等功能。

BRFS的價值

從事后到事前,變被動運維為主動運維,消除運維盲點,幫助運維成為新業務部門,持續為業務提供服務支撐。

文件存儲采用寫時合并機制,幫助客戶解決環境IO瓶頸的問題;

文件副本自動平衡恢復,幫助客戶解決數據的安全性的問題;

硬件資源負載管理,幫助客戶解決集群資源使用熱點的問題;

引入應用分區的概念,幫助客戶解決不同業務數據個性化處理的問題;

集群橫向擴容,幫助客戶解決集群擴容不方便的問題。

Bonree BRFS與阿里FastDFS壓測對比

在處理海量5KB大小的文件并發寫入和讀取時,BRFS的性能表現均優于FastDFS,尤其在寫入性能方面,要明顯優于FastDFS,性能超出約2-3倍。

BRFS系統包含如下三個部分:

FS_Server.jar

在集群每個節點上運行的核心服務模塊。在模塊運行時會啟動若干ReginNode(管理節點)和DataNode(數據節點)進程來提供服務。其中ReginNode進程主要職責是管理存儲域元信息、管理數據節點、把用戶數據分配到不同的數據節點上進行處理;DataNode進程主要職責是用戶數據文件的寫入和讀取、副本自動平衡恢復、執行定時任務(副本數校驗、CRC校驗、數據刪除、數據歸并)執行等。

FS_ResouceManager.jar

系統資源管理模塊,用于實時收集和監控集群各節點資源負載情況,以支持系統可根據節點負載情況分配資源,解決各節點資源利用和負載不均衡問題。BRFS系統內部默認提供了一組資源管理的策略,主要包含CPU、內存、I/O、磁盤容量等負載指標。目前此模塊采用可熱插拔的設計方式,但如果用戶有特殊需求,可自定義此插件,自行實現集群資源的分配和管理。

server.properties.example

用于后臺服務運行時所有的關鍵控制參數的默認值配置,如果想變更參數值,可以復制一個名為server.properties的文件,并把需要修改的屬性和值添加到此文件中即可,程序運行時server.properties文件中的配置的參數值會覆蓋server.properties.example文件中參數的默認值。

同時,用戶如需調用BRFS服務,則需要在工程中引入FS_Client.jar,并在代碼中調用相關的接口對BRFS系統進行操作;BRFS分布式文件系統接收的數據形式可以是快照、圖片或者任何以byte數組方式進行存儲的數據文件。

BRFS整體系統架構

此系統主要由Zookeeper、Client、Server以及可視化監控UI等四部分模塊組成。

BRFS使用Zookeeper來管理集群服務,同步節點狀態,確保服務高可用。Zookeeper上保存具體信息包括:機器節點信息、Storage信息、SID信息、任務信息、副本信息、lock鎖信息、用戶信息、臨時信息等元數據信息。

Client即用戶客戶端,它是以Jar的形式被用戶在用戶工程代碼中引用,并通過調用其相應的接口對BRFS進行數據添加、修改、讀取等操作。

Server即后臺集群服務,包括RegionNode和DataNode兩組進程。主要功能包含了安全認證、副本管理、磁盤管理、任務(副本數校驗、crc校驗、刪除、歸并等)管理、節點資源管理和副本自動平衡與恢復、可視化監控與報警等功能模塊。后臺服務運行的相關進程是通過zookeeper進行管理的。

可視化監控與報警,它是把集群節點上存儲的文件情況、后臺任務執行情況、資源負載情況、服務運行狀態等都通過可視化監控直觀的觀察到,當某些狀態達到閥值后可以自動觸發報警。

BRFS核心運行機制

使用BRFS只需簡單四步

BRFS系統除依賴JDK等基礎組件外,其他組件只依賴Zookeeper服務進行集群狀態同步,且核心服務只有兩個Jar文件,因此安裝部署極為簡單,部署安裝只需簡單四步:

安裝基礎組件,主要包括Zookeeper、JDK等;

根據業務需要配置server.properties文件;

啟動各節點FS_Server.jar服務;

通過測試客戶端,測試讀寫功能是否正常。

未來

未來,BRFS新版本還將進行兩方面升級,一是對大文件存儲的支持和優化,不再區分大文件或是小文件,而定位為海量非結構化數據分布式存儲系統;二是解決目前所有類似服務都存在的需要用戶保存文件FID的問題,對于用戶來說,存儲海量文件的FID同樣是個很大的開銷,BRFS將開發一款全新的基于磁盤的key-value系統,以解決海量FID和文件元數據關聯存儲的問題。

技術是博睿數據發展的驅動力,10年從未停止技術創新的腳步,未來持續與大家分享更多、更先進的技術理念和方法,讓世界變得更美好!

僅需幾行代碼即可快速構建海量小文件分布式存儲系統

聯系我們,獲取BRFS

其他開源項目,敬請期待

Bonree HDSM項目

自研輕量級海量key-value對象存儲數據庫,純C/C++開發,以極小的內存開銷實現海量key-value對象的高速寫入和讀取;單機4C/8G/300G(SATA)壓測,寫入QPS可達近4W/s,讀取QPS近9W/s。

Bonree Ants項目

自研針對海量時序數據流式處理引擎框架,提供原始數據預處理、準實時計算、多種時間粒度批量計算、數據落盤及各種容錯處理等內置支持,降低流式大數據處理開發門檻和成本,幫助企業便捷快速的實現海量時序指標數據的在線流式處理業務。

博睿數據-企業應用性能管理服務商,賦能IT運營智能化 手机捕鱼哪个好玩 赚钱使人开心的下一句 众益彩票首页 做烤蛋糕之类的赚钱吗 快速时时彩 形容老百姓赚钱难的成语 冒泡社区幻想三国卖金币赚钱 心悦辽宁麻将赢钱技巧 幸运农场 splatoon赚钱 问道80级以下怎么赚钱 广东26选5 玩儿手机游戏赚钱 问道玩队伍号赚钱 雷速体育在线 qq捕鱼大亨8号炮 手机捕鱼哪个好玩 赚钱使人开心的下一句 众益彩票首页 做烤蛋糕之类的赚钱吗 快速时时彩 形容老百姓赚钱难的成语 冒泡社区幻想三国卖金币赚钱 心悦辽宁麻将赢钱技巧 幸运农场 splatoon赚钱 问道80级以下怎么赚钱 广东26选5 玩儿手机游戏赚钱 问道玩队伍号赚钱 雷速体育在线 qq捕鱼大亨8号炮