存儲世界,不止如此:EB 級存儲引擎背後的技術
2017年1月,架構平台部研發的TFS存儲家族總存儲量突破1EB,相當於1億部藍光高清視頻的數據總量,在這1EB的數據中,圖片數突破萬億,文件數超過5000億,從2007年1PB到2012年100PB,每一個存儲量級的突破,都意味著不同的挑戰,下文闡述了由1PB到1EB的過程中,存儲引擎背後的技術。
1
序言
自從互聯網從web1.0跨入到SNS時代,用戶開始從站點獲取數據跨入到用戶自己產生數據,分享數據,這時用戶的數據存儲開始急劇增長。更重要的是時代的發展,用戶內容從文字時代跨入到了圖片時代,這個時代的明星產品--qq相冊的誕生,更是讓用戶分享數據達到了一個頂峰。在這個數據開始飛速增長的時代,當時是沒有合適的存儲引擎和方案來支持的。在qq相冊飛速發展的同時,由當時存儲系統的萬金油--mysql搭建的存儲解決方案,遇到了訪問延時高,擴容困難,成本高,等問題。而這一類問題也同樣困擾著所有的互聯網公司。因為那時是一個沒有真正存儲系統的混亂時代。這個時代,我們的存儲還不到1PB。
這時在GFS,bigtable等論文中,各大互聯網公司從困擾中找到靈感,紛紛效仿推出類GFS存儲引擎。騰訊也不例外,由TEG--架構平台部研發的TFS存儲家族橫空出世,並全面推進了由沒有定製存儲系統的混亂時代向TFS1.0的演進。
2
TFS家族誕生
TFS家族1.0整體設計中包含對開發,運維,資源管理等各個要素的考慮,並由各個相關要素的組件組成。其中最重要的兩個引擎組件為基於SAS和內存的KV索引存儲引擎,以及基於SATA的數據存儲引擎。正是這兩個核心引擎解決了騰訊存儲在跨越PB級別中,所遇到的存儲上的難題。
2.1 KV存儲引擎特性
以農牧場為代表,基於社交關係的各種應用和遊戲越來越多。這類應用或遊戲的特點是單個用戶的一個操作會涉及大量數據的讀寫,而且是對於數據的部分讀寫,對後台數據存儲帶來的極大的性能挑戰。傳統關係型資料庫如Mysql更偏向數據一致性的保證,複雜的引擎設計註定了性能相對較低,雖然讀性能可以通過實現Cache解決,但是寫性能始終是一個不能規避的難題。因此,key-value形式資料庫特別適合,特點是小塊數據的快速存取、數據弱一致性。TFS家族的KV存儲引擎就是為這種業務場景而誕生的通用、高速、持久化Nosql存儲系統。KV存儲引擎具備高性能 、低成本、高可用的良好業務體驗,能輕鬆應對海量數據訪問、存儲成本敏感、延時敏感等問題,並且安全可靠 ,擁有多份熱點數據和流水落盤,備份中心備份數據和流水,具備回檔能力。
業務根據數據讀寫時延的需求,可以自由選擇內存,SSD,SAS等做為存儲介質,甚至可以更通用的讓系統自動選擇冷熱數據存儲在不同的介質上。在內存中存取延時達到極致的us級別,支持超高並發的讀寫請求,普通單機可跑到30w/s讀或11w/s 寫。在加入多隊列支持和10G網卡後單機性能超過100w/s。這種讀寫性能,完美的解決了農牧場的高並發寫問題。
KV引擎最重要的特性是多個介質集群中,可以自動調度數據,下圖就內存集群和SSD集群之間的數據自動調度。將熱數據存儲在內存集群,冷數據存儲在成本更低的SSD存儲集群有幾個優點:用戶訪問是透明的,成本是降低的,體驗是提升的。
2.2 文件存儲引擎特性
TFS文件存儲引擎分為數據層、索引層和邏輯層三個部分。數據層負責文件數據的存儲,提供k-v介面,Value長度一般限定為1M,大文件由邏輯層切分成多個片順序存儲。索引層包含文件索引、目錄索引和去重索引。文件索引保存文件的元信息(創建時間、修改時間、文件長度)、分片信息和業務自定義的blob欄位。目錄索引提供按照目錄樹組織的索引結構,索引中只保存文件、目錄的元信息和在文件中的key。去重索引保存了分片的哈希值與數據層key的對應關係,用於上傳時查找已經存在的數據分片,避免重複上傳。邏輯層串聯文件上傳、下載、刪除、修改等所有介面的流程控制,提供原子操作。
TFS文件存儲引擎主要解決了索引數據的存儲問題,數據層的管理,以及業務文件存儲特性的需求。
在TFS1.0家族的強力支撐下,我們解決了在圖片時代,SNS場景的存儲問題,這時用戶的數據依然急劇增長,由PB級別,飛速發展到幾百P級別。用戶的SNS場景依然猛烈的發展,但用戶內容卻慢慢的由圖片在向視頻轉變,隨著IT技術的發展,用戶的內容質量越來越高,視覺體驗越來越好,這都意味著最底層的數據存儲爆髮式的增長。而這些增長下,TFS1.0家族顯得越來越跟不上時代的發展,從而暴漏出了索引層成本高,功能不夠豐富,數據層的數據安全與成本之間的矛盾。在新時代新存儲矛盾的觸發下,TFS家族由1.0升級到了2.0版本,從而應對降低存儲成本以及新存儲功能的需求。
3
新TFS時代
3.1.1 數據存儲引擎的升級
為了降低數據存儲成本,我們採取用計算換取空間的做法,與傳統3副本存儲方式相比, TFS新文件存儲引擎的副本數只有1.X份,在保證數據可靠性的前提下,TFS通過犧牲一部分訪問性能,換取更大的成本收益。採取的是RS編碼方式,在M份業務數據塊的基礎上編碼計算出X份校驗塊, 一共M+X個塊組成一個條帶落地存儲。
3.1.2 索引存儲引擎的升級
我們使用了多年的KV存儲引擎,也遇到了新的挑戰,不支持範圍查詢介面。業務有相關需求時,需要通過大量數據組織邏輯,以構建出適用的數據模型。所以TFS家族推出新的類LevelDB存儲引擎,豐富TFS家族中的組件,主要設計如下:
通過業務場景和底層平台的深度配合,對外提供了豐富的數據處理介面。
3.1.3 業務形態的深度理解
在TFS家族核心組件全面升級的過程中,我們不光需要底層平台的強力支持,更需要在對業務深度理解的前提下,做出精準的存儲策略,打造出專業的定製存儲系統。
在基於TFS打造的專業圖片平台,圖片平台以穩定可靠的圖片存儲及加速下載為基礎,配套以強大的圖片處理、自動化的違禁圖審核功能,並針對業務模型做冷熱流量調度、存儲數據降冷等一系列成本體驗優化,為圖片客戶提供了一套完整的解決方案。強大的圖片處理功能涵蓋了各類應用場景,有圖片縮放、裁剪、旋轉,圖片水印,格式轉換,信息獲取等,支持上傳時處理後落地存儲,也支持下載時實時生成。同時圖片豐富的表現力,也讓違禁圖十分活躍,圖片平台配有上傳即可觸發的全自動審核流程,平台具備整套審核及禁圖操作,業務無需參與即可輕鬆享有。
在文件存儲平台上,在TFS家族中推出了一系列針對不同用戶場景使用的分支存儲系統,包括適應騰訊視頻等高頻存儲業務使用的多副本存儲引擎,適應QQ離線傳文件等臨時存儲業務使用的即刪即用存儲引擎,等等。往往一個業務的文件不可能只適應一個存儲系統,大多數文件隨著時間的推移會逐漸變冷,通過對各個業務的深入理解,對用戶行為的深度理解,以及大量的數據分析,平台實現了文件在各個存儲引擎之間的智能調度,大大節省了存儲成本。
3.1.4 自動的運營體系
架平的運營體系主要包括基礎配置CMDB、成本預算核算、報表&流程&測試、質量監控、現網操作這五大塊,這五大部分組合成一個完整的運營體,為部門業務安全可靠高效的運營保駕護航。
CMDB: 基礎性的配置管理,包括了設備、機房、業務等基礎信息,主要提供設備資源提前報備、到貨驗收初始化、高危埠管理、設備轉移退役等功能;
成本預算核算: 部門本身不直接對外營收,但卻承載了公司海量的存儲、CDN服務,部門每年的運營成本佔了公司總運營成本的相當一部分,必然要有全面、嚴謹的成本管控核算,然後分攤到服務的各個業務部門;
報表&流程&測試: 業務多報表多,需要有個報表系統來統一管理,現網變更的管理、突發事件產生後在哪裡跟進、驗證是否解決等,以及對現網質量關鍵的保障一環就是模塊開發完成後發布到現網前,還需要先過自動化測試這一環節,以便發現潛在的BUG;
質量監控: 我們的眼睛,時刻盯著數十萬台伺服器、成百上千個業務,一旦出現異常,最快秒級主動通知到負責人,降低對業務的影響時長;
現網操作: 伺服器達到數十萬台、分布在各種不同運營商、甚至海外機房、aws等場景,我們有一套專用系統來支撐對現網安全、高效的操作。
4
結束語
正是有了新TFS家族,定製的KV引擎,文件存儲引擎,以及對業務數據的深度理解,多年來積累的現網運營經驗,才確保了EB級的數據,安全穩定的運行。在這個過程中,我們積累了多年的海量數據運營經驗,也會在接下來的系列文章中,依次呈現,敬請期待。
※分布式存儲系統基礎
※雲資料庫存儲商Snowflake獲1億美元融資,Iconiq領投
※樹莓派raspbian上搭建owncloud私有雲網盤
※全國千所高校大數據師資免費講習班將在寧舉行!
※顯卡廠商的好日子到頭了?Google發布TPU人工智慧伺服器晶元技術
TAG:中國存儲 |
※當控制了這類礦,中國頂級戰機未來就不再需要俄羅斯引擎!
※遲卉:技術是故事的引擎
※中國這類礦出口量的減少,頂級戰機不再依靠俄國引擎,美國急瘋了
※InnoDB 存儲引擎體系架構
※NASA泄漏的研究透露不可能的EMDrive引擎確實可以行!
※專家認為,NASA的EM科幻引擎結果可能是無效的
※NASA:全新噴氣引擎測試成功,可能徹底改變空中旅行
※馬云:由於人工智慧的存在,製造業不再是提供工作機會的引擎
※中國在不可能性太空引擎上取得突破,先於NASA進行太空測試?
※獲得PCC性能大賽背後的RocksDB引擎:5分鐘全面了解其原理
※現在俄國懊悔不迭!中國在俄羅斯最困難時:取得尖端航空引擎技術
※實現太空夢?「不可能」的無燃料引擎10星期之內就能帶人類去火星
※世界最大航空引擎公司破產,中國是否能把握機會成功抄底
※NASA泄露一份文件,測試結果表明EM引擎確實可行!
※「決定3」真的要來了嗎?USA TODAY:勒布朗對騎士休賽期的引擎操作感到失望
※聯想智能情景引擎LCE技術揭秘:雲計算讓電腦更加智能
※蘋果押寶無人車和增強現實,開發神經引擎AI專用晶元
※反物質引擎再十年就會出現:並不是不可能
※VR,AR誰將是未來?最大內容開發引擎Unity CEO這麼看