深入云存储系统swift存储节点存储实现分析

深入云存储系统swift存储节点存储实现分析

ID:32567653

大小:361.88 KB

页数:13页

时间:2019-02-12

深入云存储系统swift存储节点存储实现分析_第1页
深入云存储系统swift存储节点存储实现分析_第2页
深入云存储系统swift存储节点存储实现分析_第3页
深入云存储系统swift存储节点存储实现分析_第4页
深入云存储系统swift存储节点存储实现分析_第5页
资源描述:

《深入云存储系统swift存储节点存储实现分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在深入云存储系统Swift核心组件:Ring实现原理剖析和深入云存储系统Swift核心组件:Ring数据结构及构建、重平衡操作两篇博文中,我们详细地分析了Swift中数据的映射机制和具体操作。那么在集群中的每一台存储节点上,Swift是如何实现Account、Container、Object的具体存储呢?本篇旨在分析Storagenode与partition,partition与data间的映射关系在实际存储目录中的以何种格式存储,即怎么存,存什么。  在Storagenode上运行着Linux系统并使用了XFS文件系统,逻

2、辑上使用一致性哈希算法将固定总数的partition映射到每个Storagenode上,每个Data也使用同样的哈希算法映射到Partition上,其层次结构如下图所示:Figure1:Stoagenodehierachy 以我们的一台storagenodesws51为例,该device的文件路径挂载到/srv/node/sdc,目录结构如下所示: root@sws51:/srv/node/sdc#lsaccounts async_pending containers objects quarantined tmp    其

3、中accounts、containers、objects分别是账号、容器、对象的存储目录,async_pending是异步待更新目录,quarantined是隔离目录,tmp是临时目录。 1.objects目录  在objects目录下存放的是各个partition目录,其中每个partition目录是由若干个suffix_path名的目录和一个hashes.pkl文件组成,suffix_path目录下是由object的hash_path名构成的目录,在hash_path目录下存放了关于object的数据和元数据,objec

4、t存储目录的层次结构如图2所示。Figure2:Objectdirectoryhierachy hashes.pkl是存放在每个partition中的一个2进制pickle化文件。例如:root@sws50:/srv/node/sdc/objects/100000#ls8bd hashes.pkl In[1]:withopen('hashes.pkl','rb')asfp:  ...:    importpickle  ...:    hashes=pickle.load(fp)  ...:      ...:     In

5、[2]:hashesOut[2]:{'8bd':'9e99c8eedaa3197a63f685dd92a5b4b8'} ‘8bd’是suffix_dir,而9e99c8eedaa3197a63f685dd92a5b4b8则是该partition下数据的md5哈希值。 Objectpath生成过程object的存储路径由objectserver进程内部称为DiskFile类初始化时产生,过程如下:1.由文件所属的account、container和object名称产生'/account/container/object'格式的

6、字符串,和HASH_PATH_SUFFIX组成新的字符串,调用hash_path函数,生成md5hash值name_hash。其中HASH_PATH_SUFFIX作为salt来增加安全性,HASH_PATH_SUFFIX值存放在/etc/swift/swift.conf中。2. 调用storage_directory函数,传入DATADIR,partition,hash_path参数生成DATADIR/partition/name_path[-3:]/name_path格式字符串3. 连结path/devcie/storag

7、e_directory(DATADIR,partition,name_hash)生成数据存储路径datadir4. 调用normalize_timestamp函数生成“16位.5位”的时间戳+扩展名的格式生成对象名称    例如,某object的存储路径为:/srv/node/sdc/objects/19892/ab1/136d0ab88371e25e16663fbd2ef42ab1/1320050752.09979.data  其中每个目录分别表示:  Figure3:Objectdirectoryrepresention

8、 Object数据Object的数据存放在后缀为.data的文件中,它的metadata存放在以后缀为.meta的文件中,将被删除的Object以一个0字节后缀为.ts的文件存放。 2.accounts目录在accounts目录下存放的是各个partition,而每个partition目录

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。