Skip to content

MassGrid边缘节点配置教程v1.4.1.1

MassGrid edited this page Dec 24, 2019 · 6 revisions

MassGrid边缘节点配置教程 v1.4.1.1

1. 基本要求

准备 1台带有NVIDIA显卡机器 系统:ubuntu16.04

本文示例配置如下:

Cpu: Intel Celeron N3350

Memory: ddr3 4G

Gpu: P106-100

2. 前言

设置主要分两步
  1. 矿机安装对应的 nvidia 显卡驱动
  2. 安装并配置docker 节点,加入 docker swarm 集群 (关于docker swarm 介绍可以自行搜索相关信息)

3. 安装NVIDIA驱动和CUDA

1)下载CUDA10.0文件

下载地址

将下载后的文件 放到 ~/nvidia 目录下, ~表示用户家目录

以下教程,将以驱动文件 cuda_10.0.130_410.48_linux.run为例

2) 禁用 nouveau
echo "blacklist nouveau" | sudo tee -a /etc/modprobe.d/blacklist.conf
sudo update-initramfs -u
#最后 重启机器
sudo reboot
3) 按ctrl + alt +F1 进入tty1
 #停止桌面
sudo service lightdm stop
#安装驱动和cuda
sudo ~/nvidia/cuda_10.0.130_410.48_linux.run --no-opengl-libs --driver --silent
# 查看显卡驱动
nvidia-smi 

如图可以看到驱动已经安装成功

image

恢复桌面

 sudo service lightdm start

4. 安装docker

使用 ubuntu16.04 的一键脚本安装 docker

# 下载
wget https://raw.githubusercontent.com/wanyvic/DockerImageBase/master/docker_install.sh
# 添加执行权限
chmod +x docker_install.sh
# 执行安装
sudo ./docker_install.sh

执行成功则可以看到具体的docker信息

Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:24:56 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:23:21 2018
  OS/Arch:          linux/amd64
  Experimental:     false

5. 配置文件接入主节点

1) 下载一键配置脚本
wget https://raw.githubusercontent.com/MassGrid/DockerImageBase/master/dockerConfig.py
wget https://raw.githubusercontent.com/wanyvic/DockerImageBase/master/setDockerToken.sh
chmod +x setDockerToken.sh
2) 配置接入主节点 token

以接入主节点 ip 49.234.37.251 为例

在 MassGrid 本地钱包客户端 控制台执行如下命令

masternodelist full 49.234.37.251

结果如下:

{
  "95558da5ca304ddb43743cdea4c2ea9957f32de6f5f9ac5ba082d5fd71268e60-0": "           ENABLED 70031 M9jqzZUg3NRNCbSWZxhJyYny4sasYVHH1f 1562815853  1291335 1562794970 181503 49.234.37.251:9443 8 1 6 10061 302383360 SWMTKN-1-0uau6cvrqjv90wx0ka4h5g04bqwe0t0lmy25secg8i81rg15uj-dcoko0h4rlfdnkw9kd5z7vsn4 49.234.37.251:2377"
}

获取 SWMTKN开头的 token, 后续设置闲时挖矿时候使用

SWMTKN-1-0uau6cvrqjv90wx0ka4h5g04bqwe0t0lmy25secg8i81rg15uj-dcoko0h4rlfdnkw9kd5z7vsn4 49.234.37.251:2377
3) 设置闲时挖矿
手动下载安装相关镜像

具体镜像可以访问 hub docker, 搜索 massgrid

# 下载自动挖矿的镜像
docker pull massgrid/10.0-autominer-ubuntu16.04
# 下载监控镜像
docker pull massgrid/10.0-ubuntu16.04-proxy

注: 由于hub.docker.com 访问不稳定,自动安装镜像可能失败

一键脚本

功能:

​ 1. 设置 docker 相关参数 并重启docker

​ 2. 加入 swarm 集群

#设置闲时 MGD 挖矿
sudo python dockerConfig.py -all -pf -miner "mgd" -addr "MTzzXdhT3NDyfFLUL42bVYeewYpt8JSqAm" -revenue "MTzzXdhT3NDyfFLUL42bVYeewYpt8JSqAm" -join "SWMTKN-1-0uau6cvrqjv90wx0ka4h5g04bqwe0t0lmy25secg8i81rg15uj-dcoko0h4rlfdnkw9kd5z7vsn4 49.234.37.251:2377"
#设置闲时 ETH 挖矿
sudo python dockerConfig.py -all -pf -miner "eth" -addr "0xff6514c44f4D3AFeEFDFca7913D33Ec3a87747f3" -revenue "MTzzXdhT3NDyfFLUL42bVYeewYpt8JSqAm" -join "SWMTKN-1-0uau6cvrqjv90wx0ka4h5g04bqwe0t0lmy25secg8i81rg15uj-dcoko0h4rlfdnkw9kd5z7vsn4 49.234.37.251:2377"

参数说明:

  • -miner 表示闲时挖矿类型,当前支持 eth、mgd
  • -addr 闲时挖矿地址
  • -revenue 挖矿收款地址
  • -join 主节点token

注: 如果 一键脚本执行失败,可能是 docker 未启动或者出错,需要手动启动 docker,docker运行正常之后在执行一键脚本

4) 查看机器配置信息

查看当前边缘节点矿机 docker 配置相关情况

sudo python dockerConfig.py -load 
{
    "default-runtime": "nvidia", 
    "labels": [
        "LOCALIP=192.168.122.100", 
        "REVENUE_ADDRESS=MTzzXdhT3NDyfFLUL42bVYeewYpt8JSqAmASDFASDF", 
        "NFSIP=192.168.2.170", 
        "CPUTHREAD=2", 
        "CPUTYPE=Intel_CPU", 
        "MEMORYCOUNT=3", 
        "MEMORYTYPE=ddr", 
        "GPUCOUNT=3", 
        "GPUTYPE=NVIDIA_P102_100_5G", 
        "MINER_ADDRESS=MTzzXdhT3NDyfFLUL42bVYeewYpt8JSqAm", 
        "MINER_POOL1=mgd.vvpool.com:5630", 
        "MINER_WORKER=mgd100", 
        "MINER_TYPE=MGD"
    ], 
    "node-generic-resources": [
        "NVIDIA_P102_100_5G=GPU-7af8456", 
        "NVIDIA_P102_100_5G=GPU-eeae24e", 
        "NVIDIA_P102_100_5G=GPU-87af86f"
    ], 
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime", 
            "runtimeArgs": []
        }
    }
}

6. 附 常见问题

  1. 常看当前矿机是否在线

    #在 MassGrid docker 管理节点,即 服务端节点,通过 docker 相关 命令查看
    sudo docker node ls
    #该命令展示当前 docker 集群的机器状态, 如果 STATUS 列表示为
    # READY 表示正常 
    # DOWN 表示掉线
  2. 矿机节点掉线重新加入

    # 先强制离开集群 
    sudo docker swarm leave -f
    # xxxxx表示具体token, 重新加入集群网络
    sudo docker swarm join --token  xxxxx 
  3. 重启 docker

    systemctl start docker-cleanup.service
    systemctl start docker
    
  4. 其他 docker 命令

    # docker 基本信息
    sudo docker info
    # docker 版本
    sudo docker version
    # 更多命令使用 
    sudo docker help