Hyperledger Fabric服务器配置及修改Docker容器卷宗存储根目录/位置

简介: Hyperledger Fabric节点服务器对存储空间的消耗还是比较大的,在我实际生产体验的过程中,每一条请求数据大概仅2K左右,但实际占用空间远不止这点,每个节点都会对Block及链进行保存维护,也会将数据解析存储在本地,基本上1000万条数据会占用500G左右的空间。

Hyperledger Fabric节点服务器对存储空间的消耗还是比较大的,在我实际生产体验的过程中,每一条请求数据大概仅2K左右,但实际占用空间远不止这点,每个节点都会对Block及链进行保存维护,也会将数据解析存储在本地,基本上1000万条数据会占用500G左右的空间。当然,这个仅供参考,不同的业务可能会略有差距。

我所负责的业务需要在联盟链搭建初期就导入巨量的数据,这个需求本就有些违背区块链的设计原则,已经把它当成一个数据库来使用了,这样庞大的业务量在实际处理过程中也遇到很多的麻烦,最明显的就是服务器性能的各种瓶颈,还要控制请求的次数和频率。

一般情况下,不会出现大批量导数的时候,节点服务器采用8C8G1T的配置足够用很久了,我这边因为业务原因,服务器采用16C16G3T,内存是绰绰有余,8G甚至4G也能满足没问题,但CPU就明显不足,这个官方也没有给出一个建议配置,只能自己摸索。

在一些网络博文中可以找到一些官方资料的线索,比如Hyperledger Fabric 1.0的目标是支持1000TPS,且实验室数据已经达到300~400TPS了。这些文章没有明确到底是节点服务器还是排序服务器广播的值,在实际操作中一台16C16G的服务器完全没有达到文档中所说的那样,节点服务器大约在50~70之间,排序服务器广播的在60~80之间,这可能是自己没完全摸清楚Hyperledger Fabric性能优化这一块。

日常使用最低配置建议:

服务器类型 建议配置 备注
zookeeper 4C+4G+500G 磁盘有扩容需求
kafka 4C+4G+500G 磁盘有扩容需求
orderer 8C+4G+500G 磁盘有扩容需求
peer 4C+4G+3T 磁盘有扩容需求,如大批量数据导入,则cpu提前做好扩容

 

 

 

 

 

如果存在大批量数据导入的情况,orderer和peer的配置建议均高于16C+16G,以免数据导入过程中容器down掉从而导致数据丢失的情况发生。

 

 

接着说下Fabric容器的问题,因为区块链的项目才开始接触容器的概念,在使用的时候对目录存储这块有所了解。

在将HyperLedger Fabric项目部署到生产之前,需要先将其存储根目录做下调整,以免日后遇到存储目录磁盘充满的情况。

HyperLedger Fabric使用的是Docker容器,默认的挂载路径是/var/lib/docker,这个是挂载在磁盘第一目录下,即如果不做修改,今后备份、搬迁及扩容等都是大问题。

这里有两个比较简洁的解决方案:

一:服务器配置之初安装docker时就指定其在额外挂载磁盘中。

这个意思很简单,即新挂载磁盘到linux的data目录下,docker容器就安装到该目录下,docker的卷宗文件也会在安装时指定位置,如/data/docker/docker,通过docker info命令即可查看,即下图所示:

二:通过修改docker配置文件来指定其卷宗文件存储目录。

这一步需要修改一个名为daemon.json的文件内容,该文件位于/etc/docker/目录下

具体步骤如下:

编辑或新建daemon文件

sudo vim /etc/docker/daemon.json

在该文件中指定docker的存储根目录

1 {
2     "graph": "/data/docker/docker"
3 }

执行docker重新加载当前配置信息

sudo systemctl daemon-reload

重启docker服务

sudo systemctl restart docker.service

至此,我们再次执行

docker info

来查看docker的存储目录位置,此时结果应该已经如第一种方法中的图示一样。

当然,该方法需要在部署生产之前就做好,切勿临时变更。

目录
相关文章
|
6月前
|
存储 运维 数据挖掘
服务器数据恢复—EqualLogic存储硬盘出现坏道的数据恢复案例
某品牌EqualLogic PS6100存储阵列上有一组由16块硬盘组建的raid5磁盘阵列。磁盘阵列上层划分多个大小不同的卷,存放虚拟机文件。 硬盘出现故障导致存储阵列不可用,需要恢复存储阵列中的数据。
|
6月前
|
存储 运维 Oracle
服务器数据恢复—存储硬盘指示灯亮黄灯,RAID5阵列崩溃的数据恢复案例
服务器存储数据恢复环境: 某单位一台某品牌DS5300存储,1个机头+4个扩展柜,50块的硬盘组建了两组RAID5阵列。一组raid5阵列有27块硬盘,存放Oracle数据库文件。存储系统上层一共划分了11个卷。 服务器存储故障: 存储设备上两个硬盘指示灯亮黄色。其中一组RAID5阵列崩溃,存储不可用,设备已经过保。
|
6月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
705 51
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
721 6
|
6月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
606 6
|
6月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
892 4
|
6月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
481 10