Go-Ethereum
我應該為 geth 和 leveldb 使用什麼文件系統?
我使用舊的 LGA775 機器來執行 geth 節點。它的主機板有較舊的 sata 3gb/s(基準顯示 ssd 瓶頸在那裡)和只有 4gb 的 DDR2,安裝了 windows。所以同步是一個真正痛苦的過程,持續一周或更長時間……
現在我意外地有了另一個更好的候選人,基於 LGA1366,6gb/s sata 和 24gb DDR3,我正在考慮安裝 Debian。它將安裝在單獨的驅動器上,因此整個 SSD 可以通過
--datadir
命令專用於區塊鏈需求。甚至--keystore
文件夾和二進製文件也將位於單獨的較小 ssd 驅動器上,與帶有 ext4 文件系統的 Debian 一起。但是在執行這個大膽的舉動之前,我必須為 geth 數據目錄決定文件系統,以使事情從一開始就以最佳方式工作。可能的候選人是:
- FAT32(易於在具有不同作業系統的 PC 上移動,或用作外部硬碟)
- exFAT(專用於基於快閃記憶體的儲存,節省擦除週期?)
- Ext4(原生於 linux,最穩定且受支持)
- ZFS(我聽說它用於企業儲存,如果我計劃重新配置硬體、調整捲大小等可能更易於管理)
選擇什麼?為什麼?你會推薦什麼調整/參數?(因為我們都知道LevelDB在chaindata目錄下儲存了大量的~2100KB *.ldb文件)
我建議在
ext4
和xfs
文件系統之間進行選擇這是一個 Geth 配置範例,其中對 ext4 文件系統進行了一些調整,假設您使用標籤進行掛載(您可以更改為 UUID 或設備)
echo "--- Mount disk ---" [ ! -d "/var/lib/geth" ] && /bin/mkdir /var/lib/geth/data echo "LABEL=Ethereum /var/lib/geth/data ext4 noatime,i_version,commit=30,inode_readahead_blks=64,errors=remount-ro 1 2" >> /etc/fstab mount -a chown ethereum.ethereum /var/lib/geth/data
我執行了一個 ETH 節點和一個較舊的 Core i5(第二代)。主要問題是空間不足,因此擁有捲管理器是一大優勢。我使用debian和ext4。從未遇到過 I/O 瓶頸。我確實用完了空間:)
因此,在我看來,必須能夠添加更多磁碟並跨磁碟調整捲的大小。