インストールマニュアル

配布物

MANUFACIAは、以下の配布物で構成されます。

  • manufacia_xxx.tar.gz

  • mosquitto_1.6.2.tar.gz

  • postgres_10.5.tar.gz

  • redis_5.0.tar.gz

動作確認済み環境

MANUFACIAをインストールするサーバのスペックはこちらを参照してください。 また、以下のドライバー/ライブラリ環境にて動作確認済みです。

ドライバー/ライブラリ

バージョン

Docker

Docker version 19.03.1, build 74b1e89

docker-compose

docker-compose version 1.24.0, build 0aa59064

Nvidia driver

460.39

CUDA

11.0.3

nvidia-docker

2.3.0

セットアップするユーザがdockerコマンド、docker-composeコマンドを実行できる必要があります。もし実行できない場合にはシステム管理者に適切な権限を設定してもらってください。

使用するホストマシンのポート

MANUFACIAではホストマシンの下記のポートを使用します。

表:使用するホストマシンのポート

ポート番号

用途

1883

MQTT ブローカ

32772

MQTT ブローカ(for WebSocket)

3100 - 3101

予約済み(デバッグ用)

3122

アプリケーションサーバコンテナへのsshポート(ライセンス確認にも使用可)

3200

アプリケーションWeb UIアクセス

3180

デバイスコントロール用のAPIポート

インストール

配布物の確認

$ ls bin
manufacia_xxx.tar.gz
mosquitto_1.6.2.tar.gz
postgres_10.5.tar.gz
redis_5.0.tar.gz

解凍とイメージのロード

$ gunzip manufacia_xxx.tar.gz && docker load -i manufacia_xxx.tar
$ gunzip mosquitto_1.6.2.tar.gz && docker load -i mosquitto_1.6.2.tar
$ gunzip postgres_10.5.tar.gz && docker load -i postgres_10.5.tar
$ gunzip redis_5.0.tar.gz && docker load -i redis_5.0.tar

dockerイメージの登録確認

下記のイメージが出力されていることを確認します。

$ docker images
...
manufacia manufacia-gpu-xxx 73d8cc60a81a 24 hours ago 5.61GB
redis 5.0-alpine 07103bda7d12 3 months ago 51.6MB
postgres 10.5-alpine 294f651dec48 9 months ago 71.6MB
eclipse-mosquitto 1.6.2 502279616d17 7 weeks ago 5.07MB
...

セットアップ

下記コマンドを実行します。

$ docker run --rm manufacia: manufacia-gpu-xxx install-manufacia | bash

正常終了すると、実行バイナリのパスを通すメッセージが出力されるので、出力されたメッセージに従って環境変数を設定します。

$ PATH="$HOME/.manufacia/bin:$PATH"

この設定を行うと manufacia_ctrlコマンドが使えるようになります。

$ manufacia-ctrl
Usage: manufacia-ctrl [COMMAND] ...
Available commands:
current
versions
path
start

表:manufacia_ctrlコマンド一覧

コマンド

説明

current

現在有効となっているMANUFACIAのバージョンを表示します。

versions

インストール可能な状態になっているMANUFACIAを一覧表示します。

path

現在有効となっているMANUFACIAのpathを表示します。

start

MANUFACIAを起動します。

ホストマシンのIPアドレス確認

$ hostname -I
192.168.xxx.xxx 172.17.0.1 172.18.0.1 10.1.0.1

または

$ ifconfig
...

環境により異なるので、不明な場合はシステム管理者に確認してください。ここでは、ホストマシンに割り当てられているIPアドレスは 192.168.xxx.xxx と想定します。このIPアドレスを環境変数 THIS_HOST に設定します。

$ export THIS_HOST=192.168.xxx.xxx

インストール

MANUFACIAを初めてインストールする場合には、ここに書かれている手順を実行します。初めてかどうか不明な場合は下記のコマンドを実行した結果 manufacia_* という名前を持つコンテナが存在していないことを確認します。

$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES

アプリケーションをインストールします。

$ manufacia-ctrl start
...

正常に終了すると、複数のコンテナが起動します。

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d06495da0e54 manufacia:manufacia-gpu-xxx "/usr/bin/supervisor..." 38 minutes ago Up 38 minutes 0.0.0.0:3100-3101-\>3100-3101/tcp, 0.0.0.0:3122-\>22/tcp manufacia_app_1
63df1772426c manufacia:manufacia-gpu-xxx "manufacia jarngreip..." 38 minutes ago Up 38 minutes 0.0.0.0:3280-\>8080/tcp manufacia_jarngreipr_1
a6c3cbdb3e60 eclipse-mosquitto:1.6.2 "/docker-entrypoint...." 38 minutes ago Up 38 minutes 0.0.0.0:1883-\>1883/tcp, 0.0.0.0:32780-\>9001/tcp manufacia_broker_1
13b6b0ae19dc postgres:10.5-alpine "docker-entrypoint.s..." 38 minutes ago Up 38 minutes 5432/tcp manufacia_db_1
cda3291bb252 manufacia:manufacia-gpu-xxx "sh -c 'bin/inject-e..." 38 minutes ago Up 38 minutes 0.0.0.0:3200-\>5000/tcp manufacia_frontend_1
68e03b9681db redis:5.0-alpine "docker-entrypoint.s..." 38 minutes ago Up 38 minutes 6379/tcp manufacia_redis_1
...

本アプリケーションで起動するコンテナは下記の6つです。

  • manufacia_app_1

  • manufacia_jarngreipr_1

  • manufacia_broker_1

  • manufacia_db_1

  • manufacia_redis_1

  • manufacia_frontend_1

アプリケーション起動確認

ブラウザを開いて下記のURLにアクセスします。アプリケーションのインストール時に調べたIPアドレスを下記の{IP_ADDRESS}を入れてアクセスします。

http://{IP_ADDRESS}:3200/

次の画面が表示されていればインストールしたアプリケーションは動作しています。

アンインストール

以下のコマンドでMANUFACIAに関係するDockerコンテナを削除します。

$ manufacia-ctrl --maint down

Dockerコンテナが削除された事を確認します。

$ docker ps

ヒント

Dockerコンテナが削除されない場合はDockerコマンドで削除を行います。

参考資料(ドライバー/ライブラリ)

ドライバーやライブラリは一部ハードウェア依存するものがあったり、それぞれのバージョンの組み合わせで動作しないことがありますので、必ずしも動作を保証するものではありません。

ドライバー/ライブラリのバージョン確認方法

ドライバーやライブラリが環境にインストール済であるか、且つそれぞれのバージョンが正しいかはこちらで確認してください。

  • Docker

$ docker version

->無応答の場合には

(1) dockerを起動してください。

$ service docker start

(2) バージョンが異なる場合には、動作確認済みのバージョンをインストールして下さい。

  • docker-compose

$ docker-compose --version

->無応答の場合には

$ systemctl enable docker
  • Nvidia-driver

$ nvidia-smi

->動作確認済みのCUDAバージョンが貴社のGPUサーバーのGPUカードをサポートしていない可能性もあります。

  • CUDA

$ ls -l /usr/local | grep cuda
  • nvidia-docker

$ nvidia-docker -v

上記のドライバーやライブラリのバージョンが推奨されているものと異なる場合には、以下の手順でアンインストール、

そして指定のバージョンのインストールをお願いします。

ドライバー/ライブラリのアンインストール

  • CUDA

$ sudo apt purge cuda*
$ sudo apt purge nvidia-cuda-*
$ sudo apt purge libcuda*
$ sudo apt autoremove
$ reboot
  • Docker

$ sudo yum remove docker-ce
$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo rm -rf /var/lib/docker
$ sudo apt autoremove
  • Docker Compose 削除

$ sudo rm /usr/local/bin/docker-compose
  • Nvidia-Driver

$ sudo apt-get purge nvidia-*
$ sudo apt-get purge libnvidia*

ドライバー/ライブラリのインストール

Docker関連

  • Docker安定版

$ sudo curl https://get.docker.com | sh
  • Docker Compose 1.24.0

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
  • NVIDIA Docker 2.3.0-1

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt update
$ sudo apt install -y nvidia-docker2=2.3.0-1

CUDA、及びNvidia-Driver

GPUカード搭載のサーバにてMANUFACIA(通常版)を動作させる為には、CUDA並びにNvidia-Driverがインストールされている環境が必要となります。以下、インストールのコマンドを参考として記載します。

現在MANUFACIA v2.0/v2.1/v2.1.2をお使いの場合

既にCUDA10.x等がインストールされており、依存関係を解消する必要がある場合には、以下のコマンドをお使い下さい。

# sudo apt-get purge nvidia-*
# sudo apt-get purge cuda-*
当該サーバのGPUカードに対応したDriverの調査

以下のコマンドを使うことで、現時点で対応しているドライバーがリスト表示されます。

# ubuntu-drivers devices

上記のコマンドでエラーが出る場合には、以下のコマンドでインストールします。

# apt install ubuntu-drivers-common

ubuntu-drivers devices での返値例

vendor: NVIDIA Corporation
driver: nvidia-driver-460-third-party free recommended
driver: nvidia-driver-415-third-party free
Nvidia-Driverのインストール

以下のコマンドを使うことで、現Nvidia-Driverがインストールされます。

# sudo install nvidia-driver-460

既にインストール済のDriverの依存関係が解消できない場合には、以下のコマンドをご使用下さい。

# sudo aptitude install nvidia-driver-460
CUDA11.xのインストール

以下のコマンドを使用してCUDA11.xをインストールします。

# sudo apt install cuda-11-0

または

# sudo apt-get install cuda-11-0

エラーメッセージなどによっては、以下のコマンドも使用しCUDA11をインストール。

# sudo apt --fix-broken install

または

# wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
# sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
# wget https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda-repo-ubuntu1804-11-2-local_11.2.1-460.32.03-1_amd64.deb
# sudo dpkg -i cuda-repo-ubuntu1804-11-2-local_11.2.1-460.32.03-1_amd64.deb
# sudo apt-key add /var/cuda-repo-ubuntu1804-11-2-local/7fa2af80.pub
# sudo apt-get update
# sudo apt-get -y install cuda

ホームディレクトリにある設定ファイル .bashrc を以下の要領で編集した後に、サーバを再起動(sudo reboot)します。ファイルの編集に用いるエディタ、ツールは種別を問いません。 設定ファイルに以下の行を追加します。

# set PATH for cuda 11.0 installation
if [ -d "/usr/local/cuda-11.0/bin/" ]; then
  export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}}
  export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi

CUDA、Nvidiaドライバのバージョンが所望の通りか、以下のコマンドを利用して確認できます。

# docker exec -it manufacia_app_1 bash
:~/rb#cat public/docker-build-conf.txt

[表示結果例]
BASE_IMAGE: nvidia/cuda:9.2-base-ubuntu18.04-sha256:e2caae08d28e7026f7ce5334a7375c306b2279fc5a47ef031be4262e0e4e394a
COMPOSE_FILE: /nix/store/b35biq54rnby9aabnsz8rga84fpfbqrm-docker-compose.gpu.yaml
CUDA_VERSION: 11.0.3
DOCKER_IMAGE: manufacia:2.1.3-gpu
RAILS_ENV: production
USE_GPU: true

:~/rb# nvidia-smi

[表示結果例] (このCUDAバージョンは参考値で、必ずしも上記の出力とは一致しない)
+-------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2 |
|-------------------------------+----------------------+------------------+

ドライバー等のインストール後はシステムを再起動し、NVIDIA Dockerの動作確認を行ってください。

$ sudo reboot
$ service docker start