Filecoin 技术选型系列2 - 存储选型
富兰克林
总统和穷光蛋的口袋都一文不名,女王和拾荒妇都不需要名片。
扇区落盘是 Filecoin 密封的最后一个阶段。也是至关重要的阶段,容易一着不慎,满盘皆输。造成辛辛苦苦几十年,一下回到解放前的尴尬结局。本文我们来聊聊 Filecoin 挖矿存储的技术选型。
很多同学问我:请问我组 Raid 挖 Filecoin 可以吗?Filecoin 存储是组 Raid 好还是 LVM,或者是 ZFS?
对于这些问题我的回答都是:因人而异,这得结合你当前所有拥有的技术和资源以及你集群的大小来决定。
# Filecoin 常用存储方案
通常,影响矿工存储方案选型的有以下几种:
- 集群大小不一样。如果你只想跑个几百 TiB 的节点,那么你可选的存储方案就很多了,Raid, ZFS, Ceph 等都可以,但是如果你要跑个几十 PB 的节点,那么通常你就不能选择 Raid 和 ZFS 这种存储方案了。
- 运维人员技术栈不一样。比如你们公司的运维熟悉 ceph 的话,那么你通常就会选择 ceph 作为存储落地方案,但是如果你们的工程师只能驾驭 ZFS 的话,那么通常你就只能选择 ZFS 了。
- 是否拥有大量的算力机器。这直接决定你们在存储系统奔溃,数据无法恢复的时候的算力恢复能力。这句话可能听起来逻辑有点怪怪的,既然数据都无法恢复了,还怎么恢复算力呢。这个我等会详细讲解恢复方法。
# 各种存储方案的应用场景
RAID, ZFS, LVM 等单机存储系统,适用于小集群,0 - 3PB。
尤其是 1PB 以内 mini 集群,首选 ZFS 解决方案,三台存储机器就够了,直接用 NFS 挂载到 Miner 机器上就行了。 运维难度低,可扩展性高,故障冗余方案可选也很多,最适合没有专业运维的小团队或者个人矿工。
Ceph, GFS, GlusterFS 等分布式文件系统,适用于中型或者大型集群,3PB - 10 PB。
需要有上述相关的分布式文件系统的运维人员,你能跑集群的大小基本就取决于你们运维工程师能够驾驭多大的存储集群。举个栗子,如果你的工程师能够驾驭有效存储为 3PB 的 Ceph 集群,那么通常你就能跑 10-15PB 的 Lotus 集群。请注意,我这里说的是能驾驭,而不仅仅是能搭建,这完全是两码事。本人目前最多只能驾驭 2PB 的 Ceph 存储集群,再大就要拆分了。集群容量加倍,集群的复杂程度有可能是成指数级别上升的,而不是线性的。所以需要你对存储系统的底层工作原理要非常清楚,熟悉常见故障的解决方案,甚至有需要的时候,你得有根据需求改源码的能力。
IBM,阿里,七牛等商业存储解决方案,适用于大型集群和超大型集群,10PB 以上。
这个方案操作就比较简单了,基本由存储服务商帮你搭建好存储系统,并负责运维。
你直接挂载使用就 OK 了,只是要费点钱
o(* ̄︶ ̄*)o
。具体商用方案选型就要根据你的具体需求了,我这里说下我个人以及矿工朋友跟我反馈一些使用评价:
- IBM:产品好用,读写和恢复速度都很不错,故障处理也及时。但是价格也贵。
- 阿里:阿里的 CPFS 文件系统读写性能很 OKbu,不过 QOS 配置这块支持的不是很好。多个 MDS(他们叫协议机) 之间不会自动负载均衡,你需要手动把不同的业务绑定不同的协议机。 比如一个很经典的场景就是,如果是之前的集群用的是 Ceph 或者 ZFS 存储的,现在集群大了想换阿里的存储,那么你就会面临一个数据迁移的问题,但是你又不想降低你的算力增速,想一边迁移数据,一边增加算力。 此时你需要手动把业务拆分,准备三个协议机,一个用来读(时空证明),一个用来写(新增算力),一个用来迁移数据,否则就会出现流量瓶颈。 还有有点需要吐槽的是:他们只提供 5 x 8 售后服务,而且都是邮件提醒的,所以你机房需要有人专门盯着那个监控系统,有故障要通知他们处理,如果不在服务时间的话,响应会比较慢, 如果周末或者是晚上掉算力的话,就麻烦了,虽然 24 小时能够恢复就不扣币,但是还是要损失一天的出块的,大节点一天最少也要挖个几百个 FIL 的。
- 七牛:七牛的存储有 3 个特色
- 出盘率高,3PB 出盘率 71.4%, 5PB 81.8%,10PB 以上 88%。
- 价格实惠,200RMB/TiB 包含硬件(不过现在硬盘价格这么高,肯定应该不止这个价了)。
- 7 x 24 的售后运维服务。
个人还是比较推荐七牛,因为各家存储服务都能满足 FIL 挖矿的要求,但是我更看重售后服务态度和响应速度。
还有一点最重要的是:因为他的价格确实很美丽!!!
最后声明一点:本人没有收过七牛的推广费,纯属售后体验和评价而已,不喜勿喷。
# Filecoin 扇区数据恢复
我刚刚在上面有说过,有机器的朋友和没有机器的朋友选择存储方案的时候可能又不一样。不知道大家有没有发现一个现象,就是大矿工即使偶尔掉个几百TiB,几 PB 算力,他们也不扣币,一般都能在 24h 内恢复数据。一个原因是因为他们用的商用存储,数据恢复速度确实快。 另一个原因是通常大矿工都有大量机器,掉算力的时候他们根本不慌,把扇区重新封装一遍就行了。对他们来说,一天封装几个 PB 的算力根本不是什么难事。
怎么重新封装?其实操作起来也简单,只要把你丢失的数据的扇区的 SectorID
,CIDcommD
, CIDcommR
, Ticket
,Seed
都拿到,用这些参数重新封装一个扇区,其他流程都一样跑,只是在获取 Seed
和 Ticket
不要到链上去获取,而是到本地数据库拿,然后做完了之后不提交 PreCommitSector
和 ProveCommitSector
消息就行了。由于现在密封的基本都是 junk data
时空证明是可以过的。但是如果是真实的订单数据,这个方法就行不通了。
本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01