电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

深入云存储系统Swift存储节点:存储实现分析VIP免费

深入云存储系统Swift存储节点:存储实现分析_第1页
1/13
深入云存储系统Swift存储节点:存储实现分析_第2页
2/13
深入云存储系统Swift存储节点:存储实现分析_第3页
3/13
在深入云存储系统Swift 核心组件:Ring 实现原理剖析和深入云存储系统Swift 核心组件:Ring 数据结构及构建、重平衡操作两篇博文中,我们详细地分析了 Swift 中数据的映射机制和具体操作。那么在集群中的每一台存储节点上,Swift 是如何实现Account、Container、Object 的具体存储呢?本篇旨在分析Storage node 与 partition,partition 与 data 间的映射关系在实际存储目录中的以何种格式存储,即怎么存,存什么。 在Storage node 上运行着 Linux系统并使用了 XFS 文件系统,逻辑上使用一致性哈希算法将固定总数的 partition 映射到每个 Storage node 上,每个 Data也使用同样的哈希算法映射到 Partition 上,其层次结构如下图所示: Figure1:Stoage node hierachy 以我们的一台 storage node sws51 为例,该 device 的文件路径挂载到/srv/node/sdc,目录结构如下所示: root@sw s51:/srv/node/sdc# ls accounts async_pending containers objects quarantined tmp 其中accou nts、containers、objects 分别是账号、容器、对象的存储目录,async_pending 是异步待更新目录,qu arantined 是隔离目录,tmp 是临时目录。 1.objects 目录 在 objects 目录下存放的是各个 partition 目录,其中每个 partition 目录是由若干个 su ffix _path 名的目录和一个 hashes.pkl 文件组成,su ffix _path 目录下是由object 的 hash_path 名构成的目录,在 hash_path 目录下存放了关于 object 的数据和元数据,object 存储目录的层次结构如图 2 所示。 Figure2: Object directory hierachy hashes.pkl 是存放在每个 partition 中的一个 2 进制 pickle 化文件。例如: root@sw s50:/srv/node/sdc/objects/100000# ls 8bd hashes.pkl In [1]: w ith open('hashes.pkl', 'rb') as fp: ...: import pickle ...: hashes = pickle.load(fp) ...: ...: In [2]: hashes Out[2]: {'8bd': '9e99c8eedaa3197a63f685dd92a5b4b8'} ‘8bd’是suffix_dir,而9e99c8eedaa3197a63f685dd92a5b4b8 则是该partition 下数据的md5 哈希值。 Object path 生成过程 object 的存储路径由object server 进程内部称为DiskFile 类初始化时产生,过程如下: 1.由文件所属的account、container 和object 名称产生'/account/container/object'格式的...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部