精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲精品无吗| 香蕉视频免费在线播放| 亚洲黄色大片| 精品无人区乱码1区2区3区在线| 精品国产成人av在线免| 成人午夜在线观看视频| 国产黄色91视频| 欧美亚洲视频在线观看| 精品少妇一区二区三区密爱| 成人在线视频你懂的| 在线日韩一区二区| 国产 欧美 日韩 一区| 色视频免费在线观看| 美女视频黄 久久| 97免费视频在线播放| 中文字幕伦理片| 成人看片黄a免费看视频| 欧美丝袜自拍制服另类| 久无码久无码av无码| 色影视在线观看| 97se亚洲国产综合自在线| 91久久久在线| 国产情侣小视频| 亚洲毛片在线| 久久777国产线看观看精品| 人妻少妇无码精品视频区| 538任你躁精品视频网免费| 精品1区2区3区| 欧美一区二区三区爽大粗免费| 高h视频在线观看| 久久久亚洲高清| 国产a一区二区| 国产激情视频在线播放| 奇米777欧美一区二区| 91chinesevideo永久地址| 午夜爽爽爽男女免费观看| 天堂综合网久久| 欧美精品一区二区三区高清aⅴ| 小明看看成人免费视频| 69堂精品视频在线播放| 欧美视频13p| 日韩av在线播放不卡| av免费在线免费观看| 中文字幕一区二区三区精华液| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 成人短视频在线看| 国产伦子伦对白视频| 久久精品二区三区| 欧美夜福利tv在线| 日韩欧美不卡视频| 亚洲伦伦在线| 97超级碰碰碰| 国产精品黄色网| 亚洲黄色影片| 97国产精品久久| 国产精品7777| 日韩一级免费| 2020国产精品视频| 五月婷婷色丁香| 久久黄色网页| 国产精品日韩欧美| 中文字幕网址在线| 久久99国产精品免费网站| 国产主播精品在线| va视频在线观看| 国产精品白丝jk白祙喷水网站| 91pron在线| 高h震动喷水双性1v1| 成+人+亚洲+综合天堂| 精品免费二区三区三区高中清不卡| 蜜桃视频在线观看www| 99久久99久久精品国产片果冻| 激情视频一区二区| 天堂√在线中文官网在线| 久久久综合视频| 色就是色欧美| 国产精品久久久久久福利| 亚洲精品伦理在线| 久久久亚洲精品无码| 欧美三级精品| 91精品国产乱| jlzzjizz在线播放观看| 精品国产视频| 欧美成人高清视频| 五月天婷婷综合网| 男人的天堂亚洲一区| 91在线播放国产| 亚洲av成人无码网天堂| 国产精品日韩精品欧美在线| 亚洲欧美日韩不卡| 成年人黄色大片在线| 欧洲精品在线观看| 熟女人妻一区二区三区免费看| 窝窝社区一区二区| 久久久国产精品亚洲一区| 国产一级在线视频| 男男成人高潮片免费网站| 91精品网站| 飘雪影视在线观看免费观看| 1区2区3区国产精品| 国模无码视频一区二区三区| 九九热这里有精品| 精品成a人在线观看| 美国黄色特级片| 伊人久久婷婷| 国产日产欧美a一级在线| 人人妻人人澡人人爽精品日本| 中文字幕av在线一区二区三区| 国产一区二区三区小说| 成人交换视频| 亚洲精品美女网站| 国产免费无码一区二区视频| 丝袜亚洲另类欧美| 国产一区二区黄色| 黄色网页网址在线免费| 欧美综合在线视频| youjizz.com日本| 欧美xxxx中国| 国产69精品久久久久久| 午夜久久久久久久久久| 国产精品国产a| 国产免费人做人爱午夜视频| 成人黄色av网址| 美女av一区二区| 亚洲天堂网在线观看视频| 久久嫩草精品久久久精品| 日韩中文字幕在线不卡| 深夜日韩欧美| 中文日韩在线视频| 日本黄色中文字幕| 91视频观看视频| 国产小视频免费| 99热这里有精品| 亚洲欧美综合区自拍另类| 日本中文字幕网| 成人小视频免费在线观看| 26uuu成人| 国外成人福利视频| 正在播放欧美一区| av毛片在线免费观看| 99久久精品免费看国产| www.欧美黄色| 91蜜桃臀久久一区二区| 欧美大片免费看| 亚洲美女福利视频| 一个色综合网站| 国产ts在线观看| 亚洲无毛电影| 国产午夜精品一区| 麻豆mv在线看| 亚洲久久久久久久久久| 欧美激情黑白配| 91蜜桃免费观看视频| 国产欧美在线一区| 免费成人网www| 日韩av免费网站| 番号在线播放| 69堂国产成人免费视频| wwwww黄色| 精品一区二区日韩| 久久福利一区二区| 卡一精品卡二卡三网站乱码| 久久乐国产精品| 三级视频在线| 色94色欧美sute亚洲线路一久 | www..com久久爱| 日本一道本久久| 久久av免费看| 国产欧美在线观看| caoporm免费视频在线| 精品国产一区a| 国内自拍视频在线播放| 欧美国产精品一区二区三区| 依人在线免费视频| 欧美日韩一区自拍| 久久久综合香蕉尹人综合网| gogo亚洲高清大胆美女人体| 在线观看亚洲区| 999久久久久久| 欧美日韩国产综合新一区 | 97在线视频免费播放| 人成在线免费视频| 欧美日本在线视频| 久久精品无码人妻| 欧美国产精品中文字幕| 国产吃瓜黑料一区二区| 久久激情视频| 欧美一级中文字幕| 亚洲免费专区| 91色精品视频在线| 日本免费一区二区六区| 色播久久人人爽人人爽人人片视av| 性做久久久久久久久久| 色哟哟国产精品| 久草网站在线观看| 久久久99精品免费观看不卡| 四虎国产精品永久免费观看视频| 国产视频一区在线观看一区免费| 宅男一区二区三区| 欧美绝顶高潮抽搐喷水合集| 国产精品自在线| 国产精品蜜芽在线观看| www.美女亚洲精品| 天堂av在线资源| 日韩精品一区在线| 超碰在线免费97| 五月综合激情日本mⅴ| 国内毛片毛片毛片毛片毛片| 99精品久久只有精品| 久久久九九九热| 日本欧美一区二区在线观看| 成熟丰满熟妇高潮xxxxx视频| 四虎成人av| 欧美一区二区三区电影在线观看 | 久久五月天婷婷| 精品一区二区三区免费看| 国产精品va在线| 欧美a级在线观看| 色综合久久88| 欧美日韩在线资源| 国产真实精品久久二三区| 久久久精品一区二区三区| 日本精品一二区| 欧美精品在欧美一区二区少妇| 日本一区高清不卡| 巨大黑人极品videos精品| 18久久久久久| 日韩三级电影视频| 色99之美女主播在线视频| 日本ー区在线视频| 日韩精品极品在线观看| 亚洲va天堂va欧美ⅴa在线| 在线电影欧美成精品| 中文字幕av免费观看| 欧美日韩在线第一页| 日韩欧美高清在线观看| 亚洲午夜在线电影| 国产亚洲精品久久777777| 亚洲免费av观看| 精品人妻伦九区久久aaa片| 中文成人综合网| 黄色av免费播放| 国产嫩草影院久久久久| 韩国三级hd中文字幕| 久久午夜羞羞影院免费观看| 三级黄色片网站| 91在线观看视频| asian性开放少妇pics| 91网址在线看| 搡老熟女老女人一区二区| av激情综合网| 欧美丰满少妇人妻精品| 91视频精品在这里| 五月天精品视频| 欧美精品一区二区三区免费播放| 男女羞羞视频在线观看| 美女视频久久黄| 黄色av免费在线| 美日韩精品视频免费看| 成人影院在线看| 欧美日韩国产成人高清视频| 青春草在线免费视频| 欧美华人在线视频| 福利影院在线看| 欧美专区在线视频| 欧美极品免费| 国产欧美精品一区二区三区-老狼| 欧美一级网址| 91免费在线观看网站| xxxx日韩| 鲁片一区二区三区| 久久看人人摘| 免费观看亚洲视频| 99精品热6080yy久久| www日韩视频| 精品在线你懂的| 亚洲少妇中文字幕| 久久无码av三级| 一区二区三区影视| 午夜在线成人av| 精品久久久久久久久久久久久久久久久久| 在线一区二区三区| 国产女人18毛片水真多| 精品乱码亚洲一区二区不卡| 深夜影院在线观看| www.日本久久久久com.| 超黄网站在线观看| 国产精品都在这里| 66精品视频在线观看| 欧美精品成人一区二区在线观看| 99成人超碰| 国产原创中文在线观看| 免费人成网站在线观看欧美高清| 国产一级二级av| 国产亚洲短视频| 欧美成人精品欧美一级| 色老汉一区二区三区| 国产精品自偷自拍| 精品无人区乱码1区2区3区在线| 久久久久久久久免费视频| 国产综合在线视频| 成人在线啊v| 欧美日韩最好看的视频| 欧美在线观看天堂一区二区三区| 国产精品97在线| 国产福利91精品一区| 亚洲激情图片网| 欧美日韩国产一区中文午夜| 国产视频在线观看视频| 亚洲高清二区| 成年人视频观看| 国产一区二区精品久久99| 99久久久无码国产精品性| 亚洲精品综合在线| 中文字幕av无码一区二区三区| 亚洲第一福利在线观看| 免费av毛片在线看| 日韩av日韩在线观看| 精品三级在线观看视频| 一级黄色片播放| 日本欧洲一区二区| 国产精品扒开腿做爽爽| 亚洲1区2区3区视频| 精品国产av鲁一鲁一区| 日韩在线视频二区| 91精品影视| 欧美三日本三级少妇三99| 国产一区二区三区久久久久久久久| 91av免费观看| 综合精品久久久| 国产又爽又黄免费软件| 亚洲人成人99网站| 一区二区电影免费观看| 九色一区二区| 99成人在线| 黄色免费看视频| 亚洲愉拍自拍另类高清精品| 97人妻一区二区精品免费视频 | 日本精品久久久久| 色综合男人天堂| 日本99精品| 精品一区二区三区毛片| 韩国欧美国产1区| 五月天色婷婷丁香| 在线成人午夜影院| 成人av黄色| 91视频婷婷| 性做久久久久久久久久| 久久69精品久久久久久国产越南| 成人在线视频www| 欧美做受777cos| 国产aⅴ综合色| 日韩免费一二三区| 日韩av综合中文字幕| 亚洲国产福利| 欧美三级电影在线播放| 日本亚洲最大的色成网站www| 韩国女同性做爰三级| 欧美无乱码久久久免费午夜一区| 成人免费高清在线播放| 国产精品视频1区| 色婷婷色综合| www.偷拍.com| 午夜激情久久久| 日本亚洲一区| 国产精品一区=区| 欧美日韩三级| 强迫凌虐淫辱の牝奴在线观看| 欧美性猛交xxxx黑人| 北岛玲日韩精品一区二区三区| 国产精品综合网站| 欧美精品91| 一本加勒比北条麻妃| 欧美日韩精品系列| 先锋影音在线资源站91| 国产在线一区二区三区四区| 久久久久久久波多野高潮日日| 国产7777777| 精品少妇一区二区三区免费观看 | av电影在线播放| 色偷偷88欧美精品久久久| 日本三级视频在线播放| 国产精品一区视频网站| 久久欧美肥婆一二区| 中国毛片直接看| 精品中文视频在线| 国产高清日韩| 国产午夜伦鲁鲁| 成人欧美一区二区三区小说| 欧美一区二区三区黄片| 国产精品一区二区三区免费视频| 欧美日韩国产一区精品一区| 国产肥白大熟妇bbbb视频| 日韩欧美你懂的| 456亚洲精品成人影院| 国产肉体ⅹxxx137大胆| 国产亚洲精品aa午夜观看| 成人免费公开视频| 国产免费观看久久黄| 国产亚洲精品自拍|