# 学習後、結果が全てN/A表示になる場合にはどう対処すればいいの?
- アセットアップロード時のタグ付け、タグのラベル付与で間違いがないかを確認する
>ユーザーズマニュアルの以下の項目を確認してください。
>- [ユーザーズマニュアル -> タグの設定](../usermanual/index_2.html#set-tags)
>>**アセットのアップロード時に、タグのつけ忘れがないか?**
>- [ユーザーズマニュアル -> ラベルを付与する](../usermanual/index_3.html#label-assets)
>>**一つのラベルに全く異なるアセット(タグ)を定義していないか?**
- 時系列、振動データをお使いの場合:CSVファイルのフォーマットが正しいか確認する
>MANUFACIAが、お使いのCSVファイルフォーマットをサポートしていない(ヘッダー行がない、または、一部データが欠けている等)可能性が考えられます。同梱しておりますテストデータと比べていただくか、[CSVフォーマットチェッカー](../csv_format_checker/index_1.html#what-is-csv-format-checker)のご使用を推奨します。
- MANUFACIA起動時のメモリが枯渇していないか確認する
>ターミナルで ```free``` を実行する。
- GPUカードが他のアプリケーションからも使用されていないか確認する
>GPU_RAMの使用量を確認する。ターミナルで ```nvidia-smi``` を実行する。
- プロキシ経由でのアクセスになっていないか確認する
>貴社のIT担当者にご確認下さい。MANUFACIAはプロキシ経由でのアクセスには仕様として対応しておりません。プロキシ設定を解除して試行をお願いします。
- Nvidia社製ドライバーのバージョンを確認する
>インストール済みのNvidiaドライバーでは、お使いのMANUFACIAが動作しない可能性があります。[インストールマニュアル -> 推奨システム要件](../installation_manual_gpu/index_1.html#recommended-system-requirements)を参考にしてNvidiaドライバーのバージョン確認をお願いします。
>上記以外の場合には、```manufacia-ctrl logs --all```で出力されたログファイルを圧縮して、サポート窓口までご送付願います。
>ログファイルは、以下のフォルダに保存されます。
>>var/log/supervisor
# manufacia-ctrl startで起動しないんだけど。。。
コンソールのエラーがどこで出ているかを確認してください。
a. "Starting containers..." の後
+ docker-compose_up.log
b. "Initializing database..." の後
c. "This Host is Linux System, tuning start ... " の後
+ docker-stop.log
+ docker-update.log
+ docker-start.log
.manufacia/versions/x.x.x-gpu/bin/error_logs/ フォルダ内にある上記のファイルのERROR行を確認してください。
## MANUFACIAの実行ファイルパスが設定されているか
```
$ export PATH=$HOME/.manufacia/bin:$PATH
```
## ホストの設定が正しいかどうか
```hostname -I``` を実施し、戻値のIPアドレスが例えば以下のように設定されているか。
```
$ export THIS_HOST=192.168.100.1
```
## ログファイルのエラーメッセージを調べてみる
```
$ manufacia-ctrl logs --all
```
## ドライバー・ライブラリのバージョン確認
MANUFACIAがサポートしているドライバーやライブラリのバージョンは [インストールマニュアル -> 推奨システム要件](../installation_manual_gpu/index_1.html#recommended-system-requirements)で確認してください。
# アセットの一部または全てがアップロードできないけれど、どうしたらいいの?
アセット登録画面のプレビューではサムネイルやアイコンが表示されるのに、【ファイルをアセットに追加】してもそのデータファイルの一部、もしくは全てがアップロードされない場合には、ハードディスクの読み取りエラーが発生している可能性があります。
以下のコマンドを実行して
```
$ docker logs manufacia_db_1
```
出力結果画面またはログに以下のような行
```
:
:
2021-07-28 03:22:30.426 UTC [5628] ERROR: could not read block 1 in file "base/16384/16506": read only 0 of 8192 bytes
:
:
```
が見つかった場合には、ハードディスクの一部が破損して読み取りが出来なくなっているということです。直ちに使用を止め、バックアップを取ってから、ハードディスクを交換後に復旧してください。
(disk-full-what-to-do)=
# Diskが一杯になったみたいだけど、どのファイルを整理したらいいの?
アプリケーションを使い続けるとローカルディスクが一杯になることがあります。
```
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 8189636 0 8189636 0% /dev
tmpfs 1642520 1188 1641332 1% /run
/dev/sda1 522541784 514764840 7776944 99% /
...
```
rootのディレクトリ (/) のUse%が100の場合にはDiskが一杯になっています。このとき、アプリケーションコンテナ内のtemporaryファイルを削除することである程度ディスク領域を空けることが可能です。
削除可能なのは以下の2種類です。
- 前処理用に作成されたキャッシュファイル
- アプリケーションのログファイル
## キャッシュファイルの削除
アプリケーションで作成されるキャッシュファイルはappコンテナ内の /root/.cache/draupnir 以下に保存されています。
```
$ docker exec -it manufacia_app_1 /bin/bash
app$ cd /root/.cache/draupnir
app$ ls
168ea5becaff058a130761e029e512dafdb733fba3bf3a4a477e426a5b892cb2
168ea5becaff058a130761e029e512dafdb733fba3bf3a4a477e426a5b892cb2-meta
c9d1526a96cca5656842b43b3bead16fd4857f3fbc9d3b287d1a8c48092dbd69
c9d1526a96cca5656842b43b3bead16fd4857f3fbc9d3b287d1a8c48092dbd69-meta
...
```
ここのファイルは必要な場合に自動的に再作成されるため、削除しても問題ありません。
## アプリケーションのログファイルの削除
アプリケーションのサーバのログファイルはappコンテナに保存されています。
```
$ docker exec -it manufacia_app_1 /bin/bash
```
ここの下記のディレクトリ以下に保存されています。
- /root/rb/log
- /var/log/supervisor
- supervisord.log
- web.log
- worker.log
```
app$ cd /root/rb/log
app$ rm *
```
ログは削除しても問題ありませんが、過去のログが確認することができなくなることに留意してください。
# appコンテナのアプリケーションが起動していないみたいだけど。。。
appコンテナが再起動された場合、sshプロセスが自動的に起動していない可能性があります。
appコンテナに入り、プロセスが起動しているかを確認します。期待するプロセスがすべて起動していれば下記のような状態となります。
```
$ docker exec -it manufacia_app_1 supervisorctl status
sshd RUNNING pid 804, uptime 0:03:02
web RUNNING pid 803, uptime 0:03:02
worker RUNNING pid 805, uptime 0:03:02
```
仮に**sshd**が動いていない場合には下記のような状態になります。
```
$ docker exec -it manufacia_app_1 supervisorctl status
sshd STOPPED Jul 17 03:23 PM
web RUNNING pid 803, uptime 0:05:25
worker RUNNING pid 805, uptime 0:05:25
```
**sshd**を起動するには次のコマンドを実行します。
```
$ docker exec -it manufacia_app_1 supervisorctl restart sshd
```
プロセスを確認し、下記の状態になっていれば問題ありません。
```
$ docker exec -it manufacia_app_1 supervisorctl status
sshd RUNNING pid 803, uptime 0:22:46
web RUNNING pid 802, uptime 0:22:46
worker RUNNING pid 804, uptime 0:22:46
```
# サーバリブート後にMANUFACIAをどうやって起動したらいいの?
サーバリブート後はdockerコンテナが停止状態となっているため、起動を行う必要があります。
dockerコンテナを起動するには次のコマンドを実行します(コンテナの起動順序があるため、以下のコマンドをそのまま利用する)
```
$ docker start manufacia_db_1 manufacia_redis_1 manufacia_jarngreipr_1 manufacia_broker_1 manufacia_frontend_1 manufacia_app_1
```
dockerコンテナを起動した後、アプリケーションの起動確認を行います。
もし、MANUFACIAにアクセスできない場合は、IPアドレスが変更されている場合があるため、問合せいただく必要があります。
# データのバックアップとリストアはどうやってやるの?
バックアップを取得し、リストアする方法を記載します。
リストアの前提としては、MANUFACIAのメジャーVersionが同一のものとします。メジャーVersionが異なっている場合は、原則リストアはできません。
例:
| リストアの可否 | バックアップ前のバージョン | リストア時のバージョン |
| :------------- | :------------------------- | :--------------------- |
| リストア可 | MANUFACIA_v2.0 | MANUFACIA_v2.1 |
| リストア不可 | MANUFACIA_v2.0 | MANUFACIA_v3.0 |
バックアップの取得とリストアの機能は、MANUFACIA_v2.0から追加されたものです。MANUFACIA_v1.x をご利用中の方で、バックアップ取得とリストアの機能を用いる場合は、一度MANUFACIA_v1.xをアンインストールしてから、MANUFACIA_v2.0以上のVersionをインストールする必要があります。
```{hint}
WSL2版MANUFACIA-CPUをお使いの場合は、バックアップの際には、ファイルをWSL2内OSからWindowsフォルダへ移動して保管。リストアの際には、バックアップしたファイルをWindowsの管理領域からWSL2内のOSフォルダへ移動する必要があります。
```
## バックアップを取得する
```sudo su -```でrootへ切り替えたのち、バックアップ対象を確認します。
```console
# cd /var/lib/docker/volumes/
# ls
32a1abc7f27d171f41cadebb6853628f057a9f7fb6ca5a8374588a88eb125b4f
4a932f10b366e924a3f5639dd772f6978ea3f181ad2468801e55ba067ce197aa
cdb73458638f40c497397ea38eb404d34309cbbba9a17ecb95994d19e3d1e37e
manufacia_app_storage
370dfb363cdb4d59a9340498575a7dbd355c4115f639ce07960740e662e77c99
cc48cb9062e364259d803487b1c2298fee62b22d0f8b08eb255546bfc50d3a00
ede73affe0e762d339273231ae0bb04d5097b019fe3514a9bd587cb2fd3de16b
manufacia_ps_data
```
バックアップデータを保存するディレクトリを任意の場所に作成します。
例として、/root/backup ディレクトリを作成します。
```console
# mkdir /root/backup
```
バックアップを作成します。
```console
# cd /var/lib/docker/volumes/
# cp -rp manufacia_app_storage manufacia_ps_data /root/backup
```
バックアップが作成されていることを確認します。
```console
# ls /root/backup
manufacia_app_storage manufacia_ps_data
```
````{hint}
WSL2版MANUFACIA-CPUをお使いの場合は、WSL2内のMANUFACIA-CPUにあるバックアップファイルをWindows側へ転送してください。WSL2内のMANUFACIA-CPUからは、WindowsのCドライブに `/mnt/c` でアクセスできます。
WSL2版MANUFACIA-CPU内のバックアップファイルをWindowsのC:\backupディレクトリへ転送する例
```console
# cd /root
# tar cvfz backup.tar.gz backup
# mv backup.tar.gz /mnt/c/backup/
```
````
## リストアする
リストアには、以下の条件が必要です。
- リストア対象のバックアップファイルがあること。(例として、/root/backup 配下に保存されていることとします。)
- /var/lib/docker/volumes配下にある「manufacia_app_storage」「manufacia_ps_data」フォルダを削除もしくは移動しておくこと(バックアップとして保管しておきたい場合は移動する)。
````{hint}
WSL2版MANUFACIA-CPUをお使いの場合は、Windows上のバックアップファイルをWSL2内のMANUFACIA-CPUへファイルを転送してください。
WSL2内のMANUFACIA-CPUからは、WindowsのCドライブに`/mnt/c`でアクセスできます。
WSL2版MANUFACIA-CPUからWindowsのC:\backupディレクトリ内バックアップファイル(backup.tar.gz)を取り込む例
```console
# cd /root
# cp /mnt/c/backup/backup.tar.gz backup.tar.gz
# tar xvfz backup.tar.gz
```
````
リストア対象のバックアップファイルを/var/lib/docker/volumesにコピーします。
```console
# cd /root/backup
# ls
manufacia_app_storage manufacia_ps_data
# cp -rp manufacia_app_storage manufacia_ps_data /var/lib/docker/volumes/
```
dockerを削除します。
```console
# docker ps -aq | xargs docker rm -f
9daa4c1b44a8
5aa2c20db00f
f0c4c7424380
144b976334d6
888b72a7fd8f
7858f80a8926
```
MANUFACIAを起動します。
```console
# manufacia-ctrl start
Starting containers...
Creating manufacia_redis_1 ... done
Creating manufacia_frontend_1 ... done
Creating manufacia_broker_1 ... done
Creating manufacia_db_1 ... done
Creating manufacia_app_1 ... done
Creating manufacia_jarngreipr_1 ... done
Initializing container infos...
Initializing core...
Initializing database...
manufacia-0.10.0.1.3 ... ok
manufacia-0.10.0.1.3 ... ok
Cleaning up...
Done.
```
ブラウザでMANUFACIAにアクセスし、バックアップ時点のデータに戻っていることを確認します。