Hyperledger Fabric服務器配置及修改Docker容器卷宗存儲根目錄/位置

Hyperledger Fabric節點服務器對存儲空間的消耗仍是比較大的,在我實際生產體驗的過程當中,每一條請求數據大概僅2K左右,但實際佔用空間遠不止這點,每一個節點都會對Block及鏈進行保存維護,也會將數據解析存儲在本地,基本上1000萬條數據會佔用500G左右的空間。固然,這個僅供參考,不一樣的業務可能會略有差距。linux

我所負責的業務須要在聯盟鏈搭建初期就導入巨量的數據,這個需求本就有些違背區塊鏈的設計原則,已經把它當成一個數據庫來使用了,這樣龐大的業務量在實際處理過程當中也遇到不少的麻煩,最明顯的就是服務器性能的各類瓶頸,還要控制請求的次數和頻率。docker

通常狀況下,不會出現大批量導數的時候,節點服務器採用8C8G1T的配置足夠用好久了,我這邊由於業務緣由,服務器採用16C16G3T,內存是綽綽有餘,8G甚至4G也能知足沒問題,但CPU就明顯不足,這個官方也沒有給出一個建議配置,只能本身摸索。數據庫

在一些網絡博文中能夠找到一些官方資料的線索,好比Hyperledger Fabric 1.0的目標是支持1000TPS,且實驗室數據已經達到300~400TPS了。這些文章沒有明確究竟是節點服務器仍是排序服務器廣播的值,在實際操做中一臺16C16G的服務器徹底沒有達到文檔中所說的那樣,節點服務器大約在50~70之間,排序服務器廣播的在60~80之間,這多是本身沒徹底摸清楚Hyperledger Fabric性能優化這一塊。json

平常使用最低配置建議:vim

服務器類型 建議配置 備註
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的存儲目錄位置,此時結果應該已經如第一種方法中的圖示同樣。

固然,該方法須要在部署生產以前就作好,切勿臨時變動。

相關文章
相關標籤/搜索