phala数据存放在HDD硬盘时的加速方案

背景

  1. 部署phala时,如果数据区全部部署在SSD上,成本较高,目前需要1T ssd盘。
  2. 如果数据区全部部署在HDD上,phala-pruntime同步phala-node的时间非常长。

这里给出一个自用的折衷方案,修改官方配置,少量数据放在SSD上,同步时间可缩短到3天左右。SSD仅占用100G左右
目前官方支持了phala-runtime的持久化。所以,目前只有在数据落后很多,或第一次同步时,能起到加速作用

原理

  1. /var/khala-dev-node/polkadot 目录有近700G的数据文件,存放在HDD上
  2. /var/khala-dev-node/chains 目录有进100G文件,存放在SSD上(自测该目录对同步影响非常大,因此放在SSD上)
  3. 修改docker-compose文件,保证HDD、SSD目录都映射到docker内部

操作步骤

具体的实施方法可以灵活自定,这是我的实现方式:

  1. /var/khala-dev-node/目录保持在HDD上,其中chains子目录映射到SSD设备,如下图的/lxydata目录

  2. 修改/opt/phala/docker-compose.yml文件增加/lxydata目录映射,如下图所示
    image

  3. 进入容器内部,观察目录映射正确

3 Likes

赞一个,这个思路很好,确实kusama不需要大量读写,但是khala因为需要反复获取区块详情数据,ssd可以加速很多同步速度

楼主你好,能出个详细的步骤吗?看的懵懵的

确实这个步骤有点绕,当时也是在摸索。
当时的背景是系统盘用nvme(200G+),但是/var/khala-dev-node/目录很大,盘太小,放不下。加了HDD盘,做了如下尝试

  1. /var/khala-dev-node/符号连接到HDD目录,即:/media/lxy/a2be8fd6-29f4-4754-b578-268791c226f2/khala/khala-node/
  2. 这时虽然数据移到了HDD,能放下,但是同步太慢。发现/var/khala-dev-node/chains 目录不大,猜测这个目录是phala自己的目录,访问频繁;polkadot是polkadot目录,访问不频繁。于是把 /var/khala-dev-node/chains 符号连接到/lxydata/var/khala-dev-node/chains/ 。(这个目录在系统盘nvme上)
  3. 上面的步骤是在docker外面操作,但是符号连接目标的/lxydata目录在docker内看不到。 于是docker-compose.yml中volumes下面增加映射/lxydata:lxydata

整体思路就是

  1. /var/khala-dev-node/polkadot 挂载在HDD
  2. /var/khala-dev-node/chains 挂载在SSD
  3. 修改docker-compose,使polkadot,chains在docker内部都可见

描述了当时的步骤,是不是可以帮助理解帖子里的操作步骤

非常感谢 真是麻烦了

我这边环境和你的一样 。” 1. /var/khala-dev-node/符号连接到HDD目录,即:/media/lxy/a2be8fd6-29f4-4754-b578-268791c226f2/khala/khala-node/“ 这个里面的连接,是需要软连接吗 第三步是需要修改配置文件 是吗 docker-compose.yml

  1. 是软连。
  2. 老版本是/opt/phala/docker-compose.yml。完成后,在配置文件目录,执行:docker-compose up -d
    • 新版本是<安装目录>/solo-mining-scripts-main/conf/phala-docker.yml 完成后,在配置文件目录,执行:docker-compose --env-file=phala-env up -d