7070mt安装ubuntu dell_OpenPAI安装指南(基于v0.11.0)

4f47b9cb70ecbe51031f12d16863cac6.png

之前写过一个OpenPAI部署记录,最近试着重装了下目前最新的v0.11,发现变化还是挺大的,原来的内容很多地方都不再适用,在这里做个记录以便备忘。

环境准备

  • 一组集群主机,PC或服务器均可,其中包括多台worker节点和一台master节点,worker节点要求具有NVIDIA GPU,当然没有也可以,只是对于深度学习来说没有意义。master节点可以没有gpu
  • 一台独立于集群的主机,用于进行部署和管理维护,这里称为“维护机”
  • 所有节点全新安装Ubuntu Server 16.04,不要安装GPU驱动及CUDA
  • 各节点具有统一的登录账户及密码,此账户不需要root账户角色,但必须具有sudo权限
  • 各节点拥有固定的IP地址
  • 各节点均可访问互联网
  • 各节点间可互访
  • 各节点ntp功能可用

部署过程

安装docker-ce

以下操作在每个节点上都要执行,包括额外的集群管理终端

  1. 安装支撑包
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

2. 增加docker GPG key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

3. 验证key生效

sudo apt-key fingerprint 0EBFCD88

正常应显示类似以下形式的内容

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

4. 增加源

sudo add-apt-repository 
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
   $(lsb_release -cs) 
   stable"

5. 安装docker

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

6. docker安装成功验证

sudo docker run hello-world

显示“Hello from Docker!”等信息即说明安装成功

部署

  1. 在维护机中安装dev-box镜像
sudo docker pull docker.io/openpai/dev-box:v0.11.0

2. 启动dev-box容器

sudo docker run -itd 
        -e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM 
        -v /var/run/docker.sock:/var/run/docker.sock 
        -v /pathConfiguration:/cluster-configuration  
        -v /hadoop-binary:/hadoop-binary  
        --pid=host 
        --privileged=true 
        --net=host 
        --name=dev-box 
        docker.io/openpai/dev-box:v0.11.0

3. 登入dev-box

sudo docker exec -it dev-box /bin/bash

以下操作均在dev-box中进行

4. 编辑quick-start配置文件

cd /pai/deployment/quick-start
cp quick-start-example.yaml quick-start.yaml
vi quick-start.yaml

quick-start.yaml主要需要修改的内容如下

machines:
  - <ip-of-master>
  - <ip-of-worker1>
  - <ip-of-worder2>
  - ...

ssh-username: <username>
ssh-password: <password>
  • "machines"块记录了集群所有节点的ip,将改为master节点的ip,将所有worker节点的ip一次替换到每个中
  • 将字段替换为每个节点的通用登录用户名
  • 为对应的登录密码 修改完成后保存

5. 生成OpenPAI配置文件

cd /pai
python paictl.py config generate -i /pai/deployment/quick-start/quick-start.yaml -o ~/pai-config -f

6. 设置节点配置信息layout.yaml

vi ~/pai-config/layout.yaml

此文件用于配置每个集群节点的硬件配置,包括gpu数量、型号、cpu核数、内存容量,操作系统等。内容示例如下:

machine-sku:
  GENERIC:
    mem: 1
    gpu:
      type: generic
      count: 1
    cpu:
      vcore: 1
    os: ubuntu16.04
  DELL:
    mem: 64
    gpu:
      type: generic
      count: 1
    cpu:
      vcore: 6
    os: ubuntu16.04
  LENOVO:
    mem: 256
    gpu:
      type: generic
      count: 1
    cpu:
      vcore: 12
    os: ubuntu16.04

machine-list:
  - dashboard: "true"
    docker-data: "/var/lib/docker"
    etcdid: "etcdid1"
    hostip: "192.168.11.202"
    hostname: "openpai-node2"
    k8s-role: "master"
    machine-type: "LENOVO"
    nodename: "192.168.11.202"
    pai-master: "true"
    password: "123456"
    ssh-port: "22"
    username: "openpai"
    zkid: "1"

  - docker-data: "/var/lib/docker"
    hostip: "192.168.11.201"
    hostname: "openpai-node1"
    k8s-role: "worker"
    machine-type: "DELL"
    nodename: "192.168.11.201"
    pai-worker: "true"
    password: "123456"
    ssh-port: "22"
    username: "openpai"

文件主要包括两个部分:“machine-sku”和“machine-list”。 machine-sku:机型配置,记录若干配置的机型名,如上例中存在GENERIC、DELL、LENOVO三个配置名称,按自己实际情况修改配置即可。 machine-list:主要将每个节点中“machine-type”的值修改为对应的在machine-sku配置好的配置名称,其他字段已经自动赋好值了不需要修改。

7. 编辑kubernetes-configuration.yaml

该文件是k8s基础配置文件,主要指定了一些组件版本之类信息,正常情况下不需修改。但是该配置文件下后续k8s安装将使用http://gcr.io下载docker镜像,在国内使用不便,因此我们需要在此处更改docker源。

vi ~/pai-config/kubernetes-configuration.yaml

将文件中“docker-registry”字段做以下修改:

docker-registry: docker.io/openpai

这样将把k8s下载源改为openpai维护的http://docker.io源,暂时不受功夫网影响。

8. 编辑services-configuration.yaml

vi ~/pai-config/services-configuration.yaml

首先需要指定存储路径,主要包括hdfs和其他服务数据的存储路径。首先解除文件开头"common"和"data-path"两个字段的注释,并给data-path赋值到真实位置:

cluster:
  common:
  #  cluster-id: pai-example
  #
  #  # HDFS, zookeeper data path on your cluster machine.
    data-path: "/data"

按照官方教程,下面需要在在给"docker-tag"字段赋值为"v0.11.0",但是当你改到这里的时候会发现根本没有这个字段,反而有一个"tag"字段并且已经被赋好v0.11.0了,但是不管怎么样为了避免这里没做导致后面出问题,手动加一个吧:

  # the docker registry to store docker images that contain system services like frameworklauncher, hadoop, etc.
  docker-registry:

    # The namespace in your registry. If the registry is docker.io, the namespace will be your user account.
    namespace: openpai

    # E.g., gcr.io.
    # if the registry is hub.docker, please fill this value with docker.io
    domain: docker.io
    # If the docker registry doesn't require authentication, please comment username and password
    #username: <username>
    #password: <password>

    tag: v0.11.0
    docker-tag: v0.11.0

    # The name of the secret in kubernetes will be created in your cluster
    # Must be lower case, e.g., regsecret.
    secret-name: pai-secret

之后可以指定显卡驱动版本,不指定的话默认安装384.111,这个驱动对于图灵核心显卡是不支持的,所以如果你用的是新显卡,就需要手动指定显卡版本,如果用的pascal架构或者更早的卡就无所谓了。

找到"drivers"字段,解除drivers、set-nvidia-runtime、version三个字段的注释,需要注意驱动版本只能从注释里的版本里面选择:

drivers:
  set-nvidia-runtime: false
  # You can set drivers version here. If this value is miss, default value will be 384.111
  # Current supported version list
  # 384.111
  # 390.25
  # 410.73
  version: "410.73"

9. 安装启动k8s服务

cd /pai
python paictl.py cluster k8s-bootup -p ~/pai-config

待脚本执行结束后,打开”http://master-ip:9090“ 检查k8s服务启动状态

10. 推送配置 待k8s部署完成,输入以下命令推送配置:

cd /pai
python paictl.py config push -p ~/pai-config

执行以上命令后需要询问设置cluster-id,自己随便输一串东西就行了,但是要记住,后面会用到。

11. 启动OpenPAI服务

cd /pai
python paictl.py service start

输入该命令后就会询问前面设置的cluster-id。

其他操作

  1. 关闭OpenPAI服务

登录dev-box,输入以下命令:

cd /pai
python paictl.py service stop

按提示输入cluster-id即可。

2. Linux内核兼容问题

发现将系统内核更新到4.4.0-148之后,显卡驱动镜像就开始报错了,包括最新的410.73版本。

目前官方的解决方法是在部署之前修改"/pai/src/drivers/deploy/drivers.yaml.template"文件,将第35行:

image: {{ cluster_cfg["cluster"]["docker-registry"]["prefix"] }}drivers-{{ cluster_cfg["drivers"]["version"] }}:{{ cluster_cfg["cluster"]["docker-registry"]["tag"] }}

修改为:

image: docker.io/openpai/drivers-418.30:v0.11.0

这个操作在目前最新的12.0上也完全,特别是后面的版本号不要变,保持11.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值