Hyperledger Fabric服务器配置及修改Docker容器卷宗存储根目录/位置
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的存储目录位置,此时结果应该已经如第一种方法中的图示一样。
当然,该方法需要在部署生产之前就做好,切勿临时变更。
Hyperledger Fabric服务器配置及修改Docker容器卷宗存储根目录/位置相关推荐
- docker配置容器mysql启动参数_修改Docker容器启动配置参数
有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker c ...
- Docker(十七)-修改Docker容器启动配置参数
有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker c ...
- docker 镜像修改的配置文件自动还原_所以到底该如何修改 docker 容器的端口映射!!!...
|问题背景 docker 创建容器时,指定了端口映射(-p) 如果容器运行之后发现端口需要改怎么办? 当前是访问 9999 端口 |删除原有容器,重新创建新的容器 |删除容器 docker |重新创建 ...
- 修改docker容器中的文件方法
修改docker容器配置文件方法 昨天准备修改docker容器中的配置文件,由于是xml配置文件,不需要编译,想着直接编辑一下就ok了,但是进入容器发现竟然没有vi命令,一番查找,可以使用以下方法 1 ...
- 修改 Docker 的默认存储路径
修改 Docker 的默认存储路径 Docker 默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等.不过由于此目录一般都位于系统盘,遇到系 ...
- 修改Docker容器字符编码为-zh_CN.UTF-8中文字符集
版本记录 2019.4.26日 第一版 问题描述 公司的java项目中使用了openoffice和pdf2html对文件进行格式转换,word,ppt,pdf文件都转换没有问题,唯独excel转换后显 ...
- linux修改容器内的mysql端口映射_修改docker容器端口映射的方法
大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 有没有办法不保存镜像而直接修改 ...
- Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间
一般情况下,我们仅仅需要修改容器的时间与我们宿主机的实际实际一致即可, 我们知道,默认情况下docker容器是不允许访问系统时钟,但是有一款开源的软件使这样的需求变成了可能.此lib拦截用于检索当前时 ...
- docker 改host_所以到底该如何修改 docker 容器的端口映射!!!
|问题背景 docker run -d -p 9999:8080 -i --name tomcat7 tomcat:7创建容器时,指定了端口映射(-p) 如果容器运行之后发现端口需要改怎么办? 当前是 ...
最新文章
- Datahwhale第三期集训团队成员
- nfs client高性能参数设置
- 18.自定义过滤器表头排序
- Dubbo官方的Starter发布1.0.0测试版,与Spring Boot的结合将更加自然
- java到android_Java到Android?
- 【已解决】linux redhat 6 如何打开防火墙中的某个端口?例如:5900端口
- CentOS6.5下搭建SVN服务器
- Web前端开发笔记——第三章 CSS语言 第八节 CSS3文本文字设置
- 阿里云的很多域名没有办法进行实名认证了吗
- static和const关键字
- Windows把内存设置为0无法开机怎么办
- python调用百度识图识取本地图片
- js html游戏仿写,天猫首页天猫超市下的选项卡(加自动轮播效果)仿写(js加jquery实现动态效果)...
- 基于单幅图像的2D转3D算法研究(转)
- 联想ThinkPad声音扬声器正常但是不能发出声音,插入耳机有声音
- 基于ArUco的视觉定位(一)
- java程序计算鸡兔同笼_.请编写一个Java程序,能够计算鸡兔同笼问题,已知笼中共有9个头和26只脚,要求计算出该笼中有几只兔子几...
- 统计中的“不相关”与“线性无关”
- 2022-2028全球可观察性解决方案套件软件行业调研及趋势分析报告
- 使用 easyExcel write 步骤;并且设置列宽
热门文章
- vue如何使用原生js写动画效果_Vue中的动画效果
- c语言abc组合abc cba=n,组合问题(先提取数字+全组合)
- gdb java,调用gdb来调试java程序
- 快速了解Spring Cloud
- Applet授权细节
- [设计模式-行为型]模板方法模式(Template Method)
- [译] Dojo 工具包参考手册
- ORA-01033 的解决
- android 定时器 坑,Android 记录一个使用AlarmManager的坑。
- Activemq Jms 简单示例