LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 基于IPFS构建数据中心

基于IPFS构建数据中心

2020-04-20 FIL社区 来源:区块链网络

在IT领域,数据中心是一个非常重要的基础设施。

所谓的数据中心是全球协作的特定设备网络,用来在互联网上传递、加速、展示、计算和存储数据信息。加入IPFS/Filecoin社区,联系liandaoxixi。

正是由于数据中心是一项基础设施,因此它的稳定性和可靠性就非常重要。今天我们给大家介绍一个基于IPFS构建数据中心的方案。

之所以要基于IPFS构建数据中心最关键的是让数据中心不再依靠第三方云服务提供商,提高数据中心的可靠性,让数据中心变得去中心化。

在接下来即将介绍的这个方案中,方案的构建团队测试了多种不同的场景,多种不同的配置,并用了将近6个月的时间测试构建的方案。

这种做法可能不一定对其他的团队都适用,但他们的经验和教训还是值得大家学习的。

在本方案中,团队使用的IPFS客户端都是go-ipfs。在整个测试过程中,客户端从0.4.16版本升级到0.4.18。这个方案不针对任何特定的版本,但会分享团队在这个升级过程中观察到的趋势和特点。

本方案共包含三个IPFS节点,两个在团队自己的数据中心,一个在别处,三个节点通过IPFS?Cluster互联。

1?硬件配置

1.1?服务器

对服务器的选择需要非常谨慎,需要考虑很多因素。这其中最重要的是你希望这个服务器在哪方面功能要最强,哪里花费最多以及哪部分最关键。

团队在测试过程中发现CPU是决定IPFS系统处理速度快慢的关键。CPU的性能可以用三个指标来衡量:单核的主频、核的数量以及内存的大小。

在测试初期,团队认为主频是决定性能的关键,但随着测试负载的增强,团队发现系统会启动多核来同时处理任务而不再单独给单核加码。

团队还发现IPFS不会消耗过高的内存。在测试过程中,实际使用的内存基本都在一个范围内,上下浮动的空间大概为5GB左右,而消耗的最大内存也没有超过32GB。

团队配置的服务器内存为128G,远超过32G,这是因为服务器上还要运行其它的应用软件而不仅仅是IPFS。如果仅仅只需要运行IPFS,64GB就足够了。

1.2?存储

IPFS的核心是存储。因此在配置中,存储的配置非常重要。团队在测试中发现公网中的IPFS系统运行速度非常不稳定。而在团队自己构建的三节点数据中心里,速度就非常快。

团队的三个节点中有一个运行在SSD上,但测试过程并没有发现SSD优于传统的HDD。

这主要是因为当某个节点接到“Pin”的请求时,它可能会向其它节点索取数据。因此即便是请求一些下载频率很高的数据,SSD的性能也没有明显的体现出来。

有一个特例,就是在上传文件时,SSD会明显表现出速度方面的优势。但经过综合考虑后团队决定还是放弃使用基于SSD的存储系统,未来当团队考虑扩展数据中心时,可能会加入部分基于SSD的存储,让文件上传的速度更快。

但作为数据中心的基础架构,使用基于HDD的系统是最好的选择。

当考虑存储的持久性和容错性时,团队考虑到IPFS系统一方面是提供存储服务,另一方面是提供下载和检索服务,而能长久提供数据检索和下载服务对IPFS系统来说更为重要。

因此,团队选择了RAID6。尽管使用这个方案,系统的写入速度不太理想,但数据的持久性和容错性能得到很好的保障。RAID6能将数据读取速度提高14倍。

为了保证数据容错性,系统的实际存储能力都会有一些损失。最初团队考虑使用RAID10,但它会导致实际存储能力的大幅降低;而使用RAID6,只要使用足够多的硬盘,实际存储能力的损失比较有限。

团队在RAID6中使用了16个硬盘,总共只损失了4TB存储,而使用RAID10则会损失16TB。

2?配置

2.1?数据存储类型

在行文时,IPFS的数据存储类型主要有两种:Badger和Flatfs。

尽管Badger会快很多,并能更好地处理大容量数据,但Badger目前的支持还不够多,也不够稳定。曾经还出现过基于Badger的数据被损坏的事件。

尽管如此,但团队也非常希望能利用Badger的性能。

对此,团队同时使用了Flatfs和Badger。三个节点中其中一个运行Badger,另外了两个运行Flatfs。

此外三个节点中不在团队数据中心运行的节点运行的是Flatfs,这是为了防止团队自己的数据中心出现意外时,系统还能提供数据服务。

2.2?数据持久性

回顾前面对CPU的选择,它其实和被称为“HashOnRead”的配置密切相关。“HashOnRead”允许从磁盘中读取区块进行验证。而这就需要CPU进行读写操作,会消耗CPU的性能,但这是值得的。

在IPFS中有一个命令“ipfs repo verify”,它能验证所有被存储的区块。结合“HashOnRead”,团队认为每周运行一次这个命令就可以达到不错的效果。

2.3?性能提升

在测试过程中,团队发现,要提升“PIn”的速度,需要设置“BloomFilterSize”参数。系统性能的提高和“ipfs repo”的大小有关。

但设置了“BloomFilterSize”参数后,系统操作会消耗内存。因此在配置内存时要把这个因素考虑进去。

如果不设置”BloomFilter”,内存配置32GB就够了,但如果设置这个参数,最好还是用团队推荐的64GB。

参考链接:https://medium.com/@rtradetech/building-the-worlds-first-ipfs-data-center-part-1-6da08133b77c

—-

编译者/作者:FIL社区

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...