🤖Autonomys - Linux
介紹
Autonomys-farmer 包含以下組件:
autonomys-controller負責代理 node rpc,用於管理集群組件sharded-cachepiece 分片緩存full-piece-sharded-cachepiece 分片緩存全量節點proof-serverGPU 出塊,用於計算 proofplot-serverplotting 服務,用於encode 數據plot-clientfarming 組件,用於掃盤以及提交 solution
架構
目前所有的集群管理都是基於 nats 來做的,但是 cache 的具體數據傳輸是通過 TCP 做 p2p 傳輸。

軟件和硬件環境建議配置
本軟件僅支持 Linux 操作系統,以及 Nvidia GPU 環境。
操作系統及依賴軟件
Ubuntu 22.04
GPU 驅動版本 ≥ 525.60.13 ,或者直接安裝 cuda 12.4
文件系統 Ext4
Supervisor 4
Nats-server v2.10.22
numactl
服務器建議配置
節點機
64核
64G/128G
需要
500GiB
千兆網卡
controller
autonomys-node
proof-server
nats-server
P 盤機
每張GPU需要30核
每張GPU需要 64G
需要
1 TiB 用於緩存 plot 數據
萬兆網卡
plot-server
sharded-cache
full-piece-cache
存儲機
取決於存儲容量
取決於存儲容量
不需要
取決於存儲容量
萬兆網卡
plot-client
最佳實踐
環境介紹
節點機1
192.168.1.1
GPU * 1
controller autonomys-node
proof-server nats-server
節點機2
192.168.1.2
GPU * 1
controller autonomys-node
proof-server nats-server
節點機3
192.168.1.3
GPU * 1
controller autonomys-node
proof-server nats-server
P 盤機1
192.168.1.4
GPU * 4
autonomys-plot-server-0
autonomys-plot-server-1
autonomys-plot-server-2
autonomys-plot-server-3
sharded-cache full-piece-cache
P 盤機2
192.168.1.5
GPU * 4
autonomys-plot-server-0
autonomys-plot-server-1
autonomys-plot-server-2
autonomys-plot-server-3
sharded-cache full-piece-cache
存儲機1
192.168.1.6
8T NVMe SSD * 4
/mnt/nvme0n1
/mnt/nvme0n2
/mnt/nvme1n2
/mnt/nvme1n1
autonomys-plot-client
存儲機2
192.168.1.7
8T NVMe SSD * 4
/mnt/nvme0n1
/mnt/nvme0n2
/mnt/nvme1n1
/mnt/nvme1n2
autonomys-plot-client
集群啟動命令
首先啟動 NATS,然後按照以下教學配置 Supervisor 的參數。配置完成後,只需執行以下指令即可啟動所有程序:
Supervisor 配置
節點機配置
nats-server
本軟件需要開啟 nats-server jetstream 功能,啟動 nats-server ,添加 --jetstream flag即可啟用
nats-server 的配置請參考nats 官方文檔 以及 autonomys nats 配置文檔。
以下是 nats-server 配置示例,供參考:
autonomys-controller
autonomys-node
autonomys-proof-server
啟動命令參數及環境變量解釋:
--nats-server參數用於指定 nats 服務器地址CUDA_VISIBLE_DEVICES環境變量用於指定 GPU,0 表示 GPU0,1 表示GPU1,以此類推
P 盤機配置 (以 4 GPU為例)
autonomys-sharded-cache
啟動命令參數解釋:
--nats-server參數用於指定 nats 服務器地址path=/path/to/autonomys-sharded-cache參數用於指定 piece 緩存存儲路徑
autonomys-full-piece
啟動命令參數解釋:
--nats-server參數用於指定 nats 服務器地址path=/path/to/autonomys-full-piece參數用於指定 full-piece 存儲路徑
autonomys-plot-server
啟動命令參數及環境變量解釋:
--nats-server參數用於指定 nats 服務器地址CUDA_VISIBLE_DEVICES環境變量用於指定 GPU,0 表示 GPU0,1 表示GPU1,以此類推GPU_CONCURRENCY增大此值會提高顯存使用量,在使用不同型號的 GPU 時,可以考慮適當調整該變量
需要注意的是, 使用 numactl 工具綁定 CPU 核心時,需考慮 GPU 的 numa 親和性,以達到最佳性能。
使用 nvidia-smi topo -m 命令可以查看 GPU numa 親和性
存儲機配置(以 4 盤為例)
autonomys-plot-client
啟動命令參數解釋:
--nats-server參數用於指定 nats 服務器地址path=/path/to/plot-dir,sectors=8000參數用於指定 plot 的文件路徑以及 plot 的扇區數量
附錄
使用命令
手動初始化集群,執行後會在n秒後重新初始化整個集群
• --delay 0:初始化延遲,單位:秒
模擬 plot 的 download sector 過程,對 cache cluster 發起請求,檢查集群狀態
Autonomys Piece 轉換工具
可以將 autonomys-node 同步後的數據轉換為 piece 快取資料,請按照以下步驟導出 piece 快取資料:
使用命令:
運行指令後,生成的
piece資料會自動儲存至本機的full-cache-tmp資料夾。在使用
autonomys-full-piece組件時,將path參數指定為該目錄即可。
NODE_URL 中指定的 autonomys-node 啟動指令必須包含 --sync=full 參數。
Autonomys Piece 驗證工具
可以驗證已生成的 piece 資料,運行以下指令即可驗證:
快速下載節點數據
可以從百度網盤下載預先同步好的 node 資料,檔案名稱為 node-db.tar.gz。下載並解壓縮後,您仍需同步最新的節點數據,但會大幅縮短同步時間。
數據更新至新加坡時間 2024 年 11 月 12 日 23 點
這是原始的 node 資料,還需要使用 autonomys-export-piece 工具將其轉換為 piece 資料,才能進行封裝使用。
下載連結: https://pan.baidu.com/s/105H1EOrnfA9hcpcU265RcA 提取碼: 67nq
最后更新于
