精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何基于 Ceph 攻破海量小文件存儲難題

云計算
通過對若干分布式存儲系統的調研、測試與使用,與其它分布式系統相比,海量小文件存儲更側重于解決兩個問題:海量小文件的元數據信息組織與管理、本地磁盤文件的存儲與管理、我們在Filestore存儲引擎基礎上對小文件存儲設計了優化方案并進行實現,方案主要思路如下。

海量小文件存儲(簡稱LOSF,lots of small files)出現后,就一直是業界的難題,眾多博文(如 [1] )對此問題進行了闡述與分析,許多互聯網公司也針對自己的具體場景研發了自己的存儲方案(如taobao開源的 TFS ,facebook自主研發的 Haystack ),還有一些公司在現有開源項目(如hbase,fastdfs,mfs等)基礎上做針對性改造優化以滿足業務存儲需求;

一. 海量小文件存儲側重于解決的問題

通過對若干分布式存儲系統的調研、測試與使用,與其它分布式系統相比,海量小文件存儲更側重于解決兩個問題:

1. 海量小文件的元數據信息組織與管理: 對于百億量級的數據,每個文件元信息按100B計算,元信息總數據量為1TB,遠超過目前單機服務器內存大小;若使用本地持久化設備存儲,須高效滿足每次 文件存取請求的元數據查詢尋址(對于上層有cdn的業務場景,可能不存在明顯的數據熱點),為了避免單點,還要有備用元數據節點;同時,單組元數據服務器 也成為整個集群規模擴展的瓶頸;或者使用獨立的存儲集群存儲管理元數據信息,當數據存儲節點的狀態發生變更時,應該及時通知相應元數據信息進行變更;

對此問題,tfs/fastdfs設計時,就在文件名中包含了部分元數據信息,減小了元數據規模,元數據節點只負責管理粒度更大的分片結構信息; 商用分布式文件系統龍存,通過升級優化硬件,使用分布式元數據架構——多組(每組2臺)高性能ssd服務器——存儲集群的元數據信息,滿足單次io元數據 查詢的同時,也實現了元數據存儲的擴展性;Haystack Directory模塊提供了圖片邏輯卷到物理卷軸的映射存儲與查詢功能,使用Replicated Database存儲,并通過cache集群來降低延時提高并發,其對外提供的讀qps在百萬量級;

2. 本地磁盤文件的存儲與管理(本地存儲引擎):對于常見的linux文件系統,讀取一個文件通常需要三次磁盤IO(讀取目錄元數據到內存,把文件的 inode節點裝載到內存,***讀取實際的文件內容);按目前主流2TB~4TB的sata盤,可存儲2kw~4kw個100KB大小的文件,由于文件數 太多,無法將所有目錄及文件的inode信息緩存到內存,很難實現每個圖片讀取只需要一次磁盤IO的理想狀態,而長尾現象使得熱點緩存無明顯效果;當請求 尋址到具體的一塊磁盤,如何減少文件存取的io次數,高效地響應請求(尤其是讀)已成為需要解決的另一問題;

對此問題,有些系統(如tfs,Haystack)采用了小文件合并存儲+索引文件的優化方案,此方案有若干益處:a.合并后的合并大文件通常在 64MB,甚至更大,單盤所存存儲的合并大文件數量遠小于原小文件的數量,其inode等信息可以全部被cache到內存,減少了一次不必要的磁盤 IO;b.索引文件通常數據量(通常只存儲小文件所在的合并文件,及offset和size等關鍵信息)很小,可以全部加載到內存中,讀取時先訪問內存索 引數據,再根據合并文件、offset和size訪問實際文件數據,實現了一次磁盤IO的目的;c.單個小文件獨立存儲時,文件系統存儲了其guid、屬 主、大小、創建日期、訪問日期、訪問權限及其它結構信息,有些信息可能不是業務所必需的,在合并存儲時,可根據實際需要對文件元數據信息裁剪后在做合并, 減少空間占用。除了合并方法外,還可以使用性能更好的SSD等設備,來實現高效響應本地io請求的目標。

當然,在合并存儲優化方案中,刪除或修改文件操作可能無法立即回收存儲空間,對于存在大量刪除修改的業務場景,需要再做相應的考量。

二. 海量小文件存儲與Ceph實踐

Ceph 是近年越來越被廣泛使用的分布式存儲系統,其重要的創新之處是基于 CRUSH 算法的計算尋址,真正的分布式架構、無中心查詢節點,理論上無擴展上限(更詳細ceph介紹見網上相關文章);Ceph的基礎組件RADOS本身是對象存 儲系統,將其用于海量小文件存儲時,CRUSH算法直接解決了上面提到的***個問題;不過Ceph OSD目前的存儲引擎( Filestore , KeyValuestore )對于上面描述的海量小文件第二個問題尚不能很好地解決;ceph社區曾對此問題做過描述并提出了基于rgw的一種 方案 (實際上,在實現本文所述方案過程中,發現了社區上的方案),不過在***代碼中,一直未能找到方案的實現;

我們在Filestore存儲引擎基礎上對小文件存儲設計了優化方案并進行實現,方案主要思路如下:將若干小文件合并存儲在RADOS系統的一個 對象(object)中,<小文件的名字、小文件在對象中的offset及小文件size>組成kv對,作為相應對象的擴展屬性(或者 omap,本文以擴展屬性表述,ceph都使用kv數據庫實現,如leveldb)進行存儲,如下圖所示,對象的擴展屬性數據與對象數據存儲在同一塊盤上;

 

海量小文件存儲與Ceph實踐

使用本結構存儲后,write小文件file_a操作分解為: 1)對某個object調用append小文件file_a;2)將小文件file_a在相應object的offset和size,及小文件名字 file_a作為object的擴展屬性存儲kv數據庫。read小文件file_a操作分解為:1)讀取相應object的file_a對應的擴展屬性 值(及offset,size);2)讀取object的offset偏移開始的size長度的數據。對于刪除操作,直接將相應object的 file_a對應的擴展屬性鍵值刪除即可,file_a所占用的存儲空間延遲回收,回收以后討論。另外,Ceph本身是強一致存儲系統,其內在機制可以保 證object及其擴展屬性數據的可靠一致;

由于對象的擴展屬性數據與對象數據存儲在同一塊盤上,小文件的讀寫操作全部在本機本OSD進程內完成,避免了網絡交互機制潛在的問題。另一方面, 對于寫操作,一次小文件寫操作對應兩次本地磁盤隨機io(邏輯層面),且不能更少,某些kv數據庫(如leveldb)還存在write amplification問題,對于寫壓力大的業務場景,此方案不能很好地滿足;不過對于讀操作,我們可以通過配置參數,盡量將kv數據保留在內存中, 實現讀取操作一次磁盤io的預期目標;

如何選擇若干小文件進行合并,及合并存儲到哪個對象中呢?最簡單地方案是通過計算小文件key的hash值,將具有相同hash值的小文件合并存 儲到id為對應hash值的object中,這樣每次存取時,先根據key計算出hash值,再對id為hash值的object進行相應的操作;關于 hash函數的選擇,(1)可使用最簡單的hash取模,這種方法需要事先確定模數,即當前業務合并操作使用的object個數,且確定后不能改變,在業 務數據增長過程中,小文件被平均分散到各個object中,寫壓力被均勻分散到所有object(即所有物理磁盤,假設object均勻分布) 上;object文件大小在一直增長,但不能***增長,上限與單塊磁盤容量及存儲的object數量有關,所以在部署前,應規劃好集群的容量和hash模 數。(2)對于某些帶目錄層次信息的數據,如/a/b/c/d/efghi.jpg,可以將文件的目錄信息作為相應object的id,及/a/b/c /d,這樣一個子目錄下的所有文件存儲在了一個object中,可以通過rados的listxattr命令查看一個目錄下的所有文件,方便運維使用;另 外,隨著業務數據的增加,可以動態增加object數量,并將之前的object設為只讀狀態(方便以后的其它處理操作),來避免object的***增 長;此方法需要根據業務寫操作量及集群磁盤數來合理規劃當前可寫的object數量,在滿足寫壓力的前提下將object大小控制在一定范圍內。

本方案是為小文件(1MB及以下)設計的,對于稍大的文件存儲(幾十MB甚至更大),如何使用本方案存儲呢?我們將大文件 large_file_a切片分成若干大小一樣(如2MB,可配置,***一塊大小可能不足2MB)的若干小塊文 件:large_file_a_0, large_file_a_1 ... large_file_a_N,并將每個小塊文件作為一個獨立的小文件使用上述方案存儲,分片信息(如總片數,當前第幾片,大文件大小,時間等) 附加在每個分片數據開頭一并進行存儲,以便在讀取時進行解析并根據操作類型做相應操作。

根據業務的需求,我們提供如下操作接口供業務使用(c++描述):

  1. int WriteFullObj(const std::string& oid, bufferlist& bl, int create_time = GetCurrentTime()); 
  2.   int Write(const std::string& oid, bufferlist& bl, uint64_t off, int create_time = GetCurrentTime()); 
  3.   int WriteFinish(const std::string& oid, uint64_t total_size, int create_time = GetCurrentTime()); 
  4.   int Read(const std::string& oid, bufferlist& bl, size_t len, uint64_t off); 
  5.   int ReadFullObj(const std::string& oid, bufferlist& bl, int* create_time = NULL); 
  6.   int Stat(const std::string& oid, uint64_t *psize, time_t *pmtime, MetaInfo* meta = NULL); 
  7.   int Remove(const std::string& oid); 
  8.   int BatchWriteFullObj(const String2BufferlistHMap& oid2data, int create_time = GetCurrentTime()); 

對于寫小文件可直接使用WriteFullObj;對于寫大文件可使用帶offset的Write,寫完所有數據后,調用 WriteFinish;對于讀取整個文件可直接使用ReadFullObj;對于隨機讀取部分文件可使用帶offset的Read;Stat用于查看文 件狀態信息;Remove用于刪除文件;當使用第二種hash規則時,可使用BatchWriteFullObj提高寫操作的吞吐量。

博文出處:http://www.cnblogs.com/wuhuiyuan/p/4651698.html

責任編輯:Ophira 來源: 博客園
相關推薦

2022-04-21 09:26:41

FastDFS開源分布式文件系統

2013-03-11 14:42:08

Hadoop

2024-05-31 13:29:47

2017-07-13 08:26:47

NAS存儲數據

2019-06-17 23:25:04

NebulasFs架構分布式

2010-12-10 08:51:13

Web 2.0Cache集群

2018-04-23 15:14:02

混合云云存儲公有云

2018-07-13 08:45:57

Ceph對象存儲混合云

2015-05-13 15:15:16

HadoopHBaseMapReduce

2024-10-16 10:35:52

2018-04-08 08:25:15

Ceph對象存儲混合云

2015-11-24 14:14:00

CentOS 7.0Ceph配置

2014-08-25 15:02:18

中科院海洋所浪潮

2017-12-15 09:05:55

對象存儲塊存儲文件存儲

2018-05-23 08:39:18

AlluxioCeph對象存儲

2017-12-06 14:35:01

OpenStackCeph存儲

2018-05-22 08:37:02

Ceph存儲存儲系統

2011-06-01 10:41:09

海量數據庫IO難題

2017-03-06 09:32:50

CephKVM虛擬機

2017-02-22 10:06:11

UbuntuCeph存儲
點贊
收藏

51CTO技術棧公眾號

亚洲日本中文字幕区| 久久最新视频| 亚洲国产精品99| 日韩精品―中文字幕| 毛片免费在线观看| 黑人巨大精品欧美一区| 久久久噜噜噜久噜久久| 亚洲性猛交xxxx乱大交| 99亚洲男女激情在线观看| 亚洲国产精品久久人人爱| 欧美日韩亚洲在线 | 亚洲九九视频| 亚洲第一男人av| 亚洲欧美国产中文| f2c人成在线观看免费视频| 国产网站一区二区三区| 91高跟黑色丝袜呻吟在线观看| av黄色在线看| 午夜精品网站| 日韩天堂在线视频| 丝袜美腿中文字幕| 66精品视频在线观看| 欧美亚洲综合久久| av高清在线免费观看| 日本三级视频在线播放| 久久色成人在线| 波多野结衣精品久久| 亚洲综合精品国产一区二区三区| 亚洲茄子视频| 九九热这里只有精品6| 2019男人天堂| 国产亚洲一卡2卡3卡4卡新区| 欧美精品一区二区三区在线播放| gai在线观看免费高清| 丁香六月综合| 日韩欧美国产黄色| 日韩精品视频在线观看视频| 免费黄色在线| 中文字幕巨乱亚洲| 欧美18视频| 视频在线观看你懂的| 成人免费三级在线| 波多野结衣精品久久| 国产99久一区二区三区a片| 久久精品国产成人一区二区三区 | 欧美黄色成人| 欧美这里有精品| 亚洲精品乱码久久久久久自慰| 一区二区三区伦理| 伊人色综合久久天天人手人婷| 亚洲乱码国产乱码精品天美传媒| 伦理片一区二区三区| 91丨九色丨蝌蚪丨老版| 久久久福利视频| 青青青手机在线视频观看| 99天天综合性| 欧美日韩精品免费看| 户外极限露出调教在线视频| 国产亚洲欧美一区在线观看| 欧美精品一区三区在线观看| 欧美孕妇孕交| 国产精品色眯眯| 亚洲一区三区视频在线观看| 欧美私人网站| 亚洲欧美日韩成人高清在线一区| 中文字幕第50页| av网站在线免费看推荐| 一区二区三区在线视频观看| www.av91| 成人性生活视频| 欧美日韩视频在线观看一区二区三区| 天天干天天爽天天射| www久久久| 精品久久久网站| 亚洲欧美在线不卡| 精品在线播放| 日韩有码在线视频| 久艹视频在线观看| 一二三区精品| 国产免费一区二区三区香蕉精| 国产女18毛片多18精品| 豆国产96在线|亚洲| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 色老汉av一区二区三区| 色综合天天色综合| 久久gogo国模啪啪裸体| 亚洲国产日韩一区| 久久久久亚洲AV成人无在| 一级欧洲+日本+国产 | 一区二区三区四区不卡| 亚洲夜夜综合| 色婷婷综合久久久中文一区二区| 一区二区在线免费看| 成人看片爽爽爽| 一本色道久久综合狠狠躁篇怎么玩 | 国产精品久久影院| 日韩精品在线视频免费观看| 粉嫩一区二区三区| 日韩一级高清毛片| 日本少妇高潮喷水xxxxxxx| 综合久久十次| 国产成人精品久久二区二区| www.国产视频| 国产欧美一区二区精品性| 成人在线免费观看视频网站| 性欧美1819sex性高清| 日韩久久精品一区| 欧美三级视频网站| 国内精品久久久久久久影视蜜臀| 国产精品久久婷婷六月丁香| 亚洲精品18p| 国产女人水真多18毛片18精品视频| www.av91| 精品国产18久久久久久二百| 国产午夜精品一区二区三区| 国产一级中文字幕| 国模少妇一区二区三区| 日韩精品伦理第一区| 欧美xxxx性xxxxx高清| 欧美日韩视频在线第一区| 精品人妻一区二区三区日产乱码卜| 亚洲电影在线一区二区三区| 国产成人极品视频| 性感美女福利视频| 一区二区三区四区国产精品| 欧美成年人视频在线观看| 自拍偷拍一区| 2019亚洲日韩新视频| 亚洲卡一卡二卡三| 亚洲人成亚洲人成在线观看图片 | 日韩三级一区二区三区| 国产一区二区不卡老阿姨| 日韩在线电影一区| 欧美日韩免费看片| 日韩国产在线看| 国产在线拍揄自揄拍| 国产乱码精品一区二区三区av | 久久资源在线| 久久香蕉综合色| 爱看av在线入口| 日韩午夜精品电影| 五月天激情丁香| 久久国产剧场电影| 亚洲不卡中文字幕| 欧美freesex| 亚洲欧美日韩图片| 成人免费毛片视频| 久久久久久9999| 韩国日本在线视频| 亚洲天堂日韩在线| 日韩69视频在线观看| 久草在线青青草| 在线观看视频一区二区欧美日韩| 最新中文字幕视频| 蜜乳av另类精品一区二区| 久久国产精品久久精品国产| 蜜桃视频m3u8在线观看| 日韩高清a**址| 日本亚洲色大成网站www久久| 不卡的av在线| 91精品91久久久中77777老牛| 青青久久av| 日韩av免费在线| 91精品国产综合久久久久久豆腐| 精品视频999| 亚洲欧洲综合网| 国产高清精品网站| 精品久久一二三| 蜜桃一区二区三区| 国产精品亚洲网站| 91福利国产在线观看菠萝蜜| 精品少妇一区二区三区免费观看| 日韩高清免费av| 久久久噜噜噜久噜久久综合| 人人干人人视频| 亚洲九九视频| 国产精品青青草| 中文字幕在线直播| 色偷偷综合社区| 午夜精品小视频| 欧美日韩精品二区| 五月天精品在线| 国产精品白丝jk黑袜喷水| av免费观看大全| 国产中文精品久高清在线不| 成人在线观看视频网站| 超碰97免费在线| 亚洲区在线播放| 国产内射老熟女aaaa∵| 污片在线观看一区二区| 老司机福利在线观看| 国产超碰在线一区| 六月丁香婷婷激情| 国产精品久久久久久久久久10秀 | 日本天堂影院在线视频| 欧美日韩精品系列| 日韩 欧美 精品| 国产精品久久毛片| 北岛玲一区二区| 韩国女主播成人在线| av观看免费在线| 欧美 日韩 国产一区二区在线视频 | 亚洲四区在线观看| 久久亚洲AV成人无码国产野外| 久久激情综合网| 国产裸体舞一区二区三区| 久久久久蜜桃| 日产精品久久久一区二区| 亚洲精品a区| 国产日韩在线一区| 香蕉成人av| 2020欧美日韩在线视频| 污污片在线免费视频| 色小说视频一区| 牛牛澡牛牛爽一区二区| 日韩免费高清av| 国产又爽又黄又嫩又猛又粗| 一本色道久久综合亚洲91| 精品少妇一二三区| 国产精品久久久久7777按摩| 中文字幕国产专区| 成人蜜臀av电影| 日韩精品xxx| 国产主播一区二区三区| 最近中文字幕一区二区| 先锋影音久久久| 拔插拔插海外华人免费| 亚洲欧洲日韩| 伊人久久99| 精品九九在线| 欧美综合激情| 亚洲第一福利社区| 精品999在线观看| 加勒比久久高清| 国产一区二区精品免费| 亚洲视频国产精品| 91久久精品一区二区别| 中文幕av一区二区三区佐山爱| 国产成人精品久久久| 新片速递亚洲合集欧美合集| 欧美在线一区二区视频| 亚洲欧洲日本韩国| 奇米一区二区三区四区久久| 在线高清av| 欧美综合国产精品久久丁香| 345成人影院| 日韩av第一页| 成人在线黄色| 国产精品自产拍在线观看| 素人啪啪色综合| 国产精品亚洲一区二区三区| 日韩毛片免费看| 91免费视频网站| 国产精品久久久久久久久久久久久久久| 国产精品视频一区二区三区四 | 久久国产精品99国产| 北条麻妃在线视频观看| 久久福利影视| av丝袜天堂网| 九九在线精品视频| 99热这里只有精品2| 久久99精品国产麻豆婷婷洗澡| 在线观看日本一区二区| 精品一区二区日韩| 性久久久久久久久久久久久久| 国产一区91精品张津瑜| 国产精品19p| 91视视频在线观看入口直接观看www | 久久精品国产亚洲a∨麻豆| 亚洲视频免费一区| 在线看的av网站| 久久av资源网站| 成人免费网站观看| 欧美做受高潮1| 亚洲电影二区| 国产精品亚洲综合| 神马久久一区二区三区| 一区二区三区四区在线视频| 欧美日韩成人| 无码人妻丰满熟妇区五十路百度| 久久精品噜噜噜成人av农村| 中文字幕一二三区| 91麻豆精品一区二区三区| 日本少妇xxxxx| 亚洲乱码一区二区三区在线观看| 日韩无码精品一区二区三区| 91久久奴性调教| 国产高清在线观看视频| 亚洲国产三级网| 男女啪啪在线观看| 91av在线精品| 久久免费精品| 麻豆av一区二区三区| 婷婷精品进入| 日韩av高清在线看片| 蜜桃在线一区二区三区| jjzzjjzz欧美69巨大| 欧美国产丝袜视频| 久久久一区二区三区四区| 在线亚洲欧美专区二区| 成人av无码一区二区三区| 亚洲人成欧美中文字幕| 三级资源在线| 国产精品一久久香蕉国产线看观看| 亚洲精品在线播放| 日韩欧美亚洲v片| 亚洲国内欧美| 在线观看视频在线观看| 久久久久9999亚洲精品| 欧美日韩三级在线观看| 欧美自拍丝袜亚洲| 无码国产伦一区二区三区视频 | 国产精品正在播放| 在线观看福利片| 午夜影院久久久| 999国产精品视频免费| 伊人一区二区三区久久精品| 3344国产永久在线观看视频| 91精品在线影院| 成人写真视频| 黄色片视频在线播放| www.亚洲色图| 国产这里有精品| 欧美视频在线一区二区三区| 青青青手机在线视频观看| 午夜精品久久久久久久白皮肤| www.91精品| 一区二区三区日韩视频| 日韩精品亚洲专区| 午夜一区二区三区免费| 午夜精品在线看| 国精产品一品二品国精品69xx| 欧美成人午夜剧场免费观看| 日本欧美在线| 新呦u视频一区二区| 天堂va蜜桃一区二区三区 | 欧洲永久精品大片ww免费漫画| 丁香一区二区| 久久久久久人妻一区二区三区| 国产精品一二一区| 青青草手机在线观看| 日韩欧美电影一二三| 在线中文字幕视频观看| 91成人伦理在线电影| 一区二区三区网站| 99热这里只有精品2| 亚洲免费在线电影| 国产黄色一区二区| 欧美大片在线免费观看| 亚洲午夜免费| 国产资源在线视频| 91一区一区三区| 亚洲大片免费观看| 亚洲天堂第一页| av久久网站| 亚洲人成人77777线观看| 美女网站色91| 国产suv精品一区二区68| 日韩你懂的在线播放| 99色在线观看| 欧美久久久久久| 免费一级片91| 国产97免费视频| 精品国产91乱码一区二区三区| av日韩中文| 欧美激情第六页| 另类人妖一区二区av| 亚洲xxxx3d动漫| 欧美成人r级一区二区三区| 国产一二三在线| 日韩黄色影视| 国内精品写真在线观看| 国产一级在线观看视频| 亚洲人免费视频| 久久久免费人体| 18黄暴禁片在线观看| 久久网这里都是精品| 97人妻人人澡人人爽人人精品 | 国产成人精品免费| 综合激情网五月| 色偷偷av一区二区三区| 视频精品一区| 国产主播在线看| 成人欧美一区二区三区黑人麻豆| 黄色福利在线观看| 国产99视频精品免视看7| 亚洲成人免费| 欧美多人猛交狂配| 日韩欧美www| 丁香六月综合| 中文字幕日韩精品无码内射| 26uuu亚洲| h片在线免费看| 国产999精品视频| 欧美区亚洲区| 国产精品情侣呻吟对白视频| 精品国产乱码久久久久久老虎 | 久久精品电影| 中文字幕手机在线观看| 亚洲视频视频在线|