论分布式存储系统架构设计
摘要
2019年6月,我所在的公司中標某集團全國保險大數據平臺搭建項目,該項目周期為2年,總投資為5000萬人民幣,通過該項目,搭建該集團大數據建設項目,實現該集團所有業務以及用戶行為數據入庫并解析,為集團提供精準營銷、挖掘潛在客戶等提供業務支撐,幫助集團實現快速的業務增長。我有幸作為此次項目的負責人以及架構師參與了項目的搭建以及開發過程。該項目時間緊任務重、涉及人員組織多,直接相關集團保險公司內部40個部門 600 余人,外部配合協作 20 多個廠商團隊 300 余人。該項目于 2021年 5 月完成系統上線, 2021年 6 月通過最終驗收,得到了用戶的一致肯定,順利達成了項目既定目標。本文重點結合實際經驗,以該項目為例,論述一下項目建設過程中分布式部署存儲系統架構設計。
正文
2019年6月,我作為項目負責人以及架構師,主持某集團全國保險大數據平臺建設項目,該項目周期為2年,總投資為5000萬人民幣。該項目時間緊任務重,具有相當大的挑戰性。一是需要配合的改造部門多,將近有40個部門60個應用配合大數據平臺的改造,在數據入湖的時候需要定義統一的數據格式并且要和60個應用進行配合改造。這里面,有一些應用技術老舊、平臺維護升級困難、數據來源格式不統一。這就給大數據平臺的數據接入帶來了相當大的挑戰。二是技術含量高,要實現全國保險業務的數據入湖并存儲以及解析,并且需要將近5年的數據做特殊處理進行分布式存儲。同時,要求大數據平臺具有很好的擴展性和高可用性,每日處理的數據量能達到PB級別。三是數據難整合,需要將前5年的數據按其有效性進行分類、轉化、整合,并最終展現在界面上,供業務分析和參考。四是涉及人員組織多,直接研發團隊成員28人,集團總部再保險部、財務部、風險部、八大業務部、32 個省公司等 200 余人,同時涉及外部配合協作承保系統、核保系統、理賠系統、收付費系統、財務系統等 30 多個廠商團隊 300 余人。我擔任項目第一負責人,負責項目整體技術方案評估、立項論證以及項目管理工作。在項目啟動前,負責分析項目的預期經濟效益、可選技術方案,分析關聯項目影響,并向公司提交立項報告。項目啟動后,作為主要負責人,牽頭與公司內部技術專家、外部架構師一同建立項目技術架構組,設計項目整體技術架構,同時挑選項目內部成員,建立需求分析組、系統開發組、系統測試組、運維支持組,開展業務需求分析、系統設計、數據遷移方案、上線切換方案工作。一方面,我個人接受各組工作匯報,指導團隊研發工作,監控整體工作進度。同時,我及時向公司領導、項目客戶方、相關項目團隊匯報溝通工作進展、闡明關鍵技術要點。
我們都知道,要建設大數據平臺項目,里面很重要的一點,就是實現數據的存儲。這里很顯然,我們要用分布式存儲。目前,分布式存儲技術主要包含下面四種技術:
1.集群存儲技術。集群存儲系統是指架構在一個可擴充服務器集群中的文件系統,用戶不需要考慮文件是存儲在集群中的什么位置,僅僅需要使用統一的界面就可以訪問文件資源。當負載增加時,只需要在服務器集群中增加新的服務器就可以提高文件系統的性能。集群存儲系統能夠保留傳統的文件存儲系統的語義,增加了集群存儲系統必須的機制,可以向用戶提供高可靠性、高性能、可擴充的文件存儲服務。
2.分布式文件系統。分布式文件系統是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。分布式文件系統的設計基于客戶機/服務器模式。一個典型的網絡可能包含多個供多用戶訪問的服務器。另外,對等待性允許一些系統扮演客戶機和服務器的雙重角色,分布式文件系統以透明方式鏈接文件服務器和共享文件夾,然后將其映射到單個層次結構,以便可以從一個位置對其進行訪問,而實際上數據卻分布在不同的位置。用戶不必再轉至網絡上的多個位置以查找所需的信息。
3.網絡存儲技術。網絡存儲系統就是將“存儲”和“網絡”結合起來,通過網絡連接各存儲設備,實現存儲設備之間、存儲設備和服務器之間的數據在網絡上的高性能傳輸。為了充分利用資源,減少投資,存儲作為構成計算機系統的主要架構之一,就不再僅僅擔負附加設備的角色,逐步成為獨立的系統。利用網絡將此獨立的系統和傳統的用戶設備連接,使其以高速、穩定的數據存儲單元存在。用戶可以方便得使用瀏覽器等客戶端進行訪問和管理。
4.P2P網絡存儲技術。P2P網絡存儲技術的應用使得內容不是存在幾個主要的服務器上,而是存在所有用戶的個人電腦上。這就為網絡存儲提供了可能性,可以將網絡中的剩余存儲空間利用起來,實現網絡存儲。
通過對四種分布式存儲技術的比較分析,最終,該項目采用了分布式文件系統技術。因為要實現多個平臺的數據入湖,業務允許數據延時,所以我們搭建了Hadoop大數據平臺,利用HDFS的高容錯性、可構建在廉價的機器上等特點,實現了分布式文件系統的存儲。該項目上線運行后,每天都能處理TB級別的數據,當業務量劇增的時候,PB級別的數據處理起來也游刃有余。成功的實現了該項目的預定目標。在項目實施過程中,還需要考慮當部分服務器失效時,數據服務仍可正常訪問。這時,就需要用到冗余技術。查詢資料得知,常用的冗余技術包括:數據備份、數據分割、門限方案、糾錯編碼、糾刪編碼等。在本次項目實施過程中,我們使用到了HDFS的糾刪碼技術。糾刪碼技術是一種數據保護技術,最早用于通信行業中數據傳輸中的數據恢復,是一種編碼容錯技術。他通過在原始數據中加入新的校驗數據,使得各個部分的數據產生關聯性。在一定范圍的數據出錯情況下,通過糾刪碼技術可以進行恢復。默認的糾刪碼策略可以節省50%的存儲空間,同時還可以承受更多的存儲故障。同時,對于一些重要的數據,我們也使用了數據備份技術,將數據備份到云服務端,保障系統在發生不可抗力的時候數據丟失的情況。運用這兩種技術,成功提高了分布式存儲系統的可靠性,使得系統更加穩定、高效的運行。
經過我和團隊的不懈努力,歷時2年,項目終于于 2021年6月順利通過了驗收,并得到了一致好評,運行至今,用戶反饋良好,集團公司的再保險業務運營水平得以提升。但是,在實施過程中,也暴露了一些具體問題,例如HDFS上面存儲過多的小文件,一方面會大量占用NameNode的內存空間,另一方面就是元數據文件過多,使得尋址索引速度變慢,影響機器性能等等,這些問題通過應急處理和協調,都得到了妥善解決,沒有影響到項目的總體進度。我們已經把這些經驗和教訓,總結到了工作總結里面,向其他技術人員分享,為今后系統架構設計提供幫助。相信通過不斷持續學習改進,加強自己的系統分析與設計能力,努力工作,提升工作水平,為社會和公司多貢獻一點自己的價值。
總結
以上是生活随笔為你收集整理的论分布式存储系统架构设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年SQL经典面试题总结(带解析)
- 下一篇: 大规模分布式系统架构与设计实战