# HG changeset patch # User Ken Miyahira # Date 1612958911 -32400 # Node ID ae1309162772896a8c57bd7eef3d56d549240fec # Parent 130918274b4f0422f910e729f6c657e90e9649a1 update slide diff -r 130918274b4f -r ae1309162772 paper/fig/ceph-dashboard.png Binary file paper/fig/ceph-dashboard.png has changed diff -r 130918274b4f -r ae1309162772 paper/fig/ceph-osds.png Binary file paper/fig/ceph-osds.png has changed diff -r 130918274b4f -r ae1309162772 paper/fig/ceph-snapshot.png Binary file paper/fig/ceph-snapshot.png has changed diff -r 130918274b4f -r ae1309162772 paper/fig/system.graffle Binary file paper/fig/system.graffle has changed diff -r 130918274b4f -r ae1309162772 paper/file/benchmark/bar.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/file/benchmark/bar.py Wed Feb 10 21:08:31 2021 +0900 @@ -0,0 +1,42 @@ +import matplotlib.pyplot as plt +import subprocess + +def getData(): + x, y = [], [] + print("データ読み込み") + x = [1, 2, 3] + label = ["Docker", "Podman", "ie-podman"] + y = [758.16, 5693.16, 809.34] + + name = input("GraphName: ") + xlabel = input("xlabel: ") + ylabel = input("ylabel: ") + xr = input("Xrange: ") + xr = xr.split(" ") + yr = input("Yrange: ") + yr = yr.split(" ") + # 画像出力 + print("画像出力") + plot_graph(name,x,y,float(xr[0]),float(xr[1]),float(yr[0]),float(yr[1]),xlabel,ylabel,label) + return name + +def plot_graph(name,x,y,sx,ex,sy,ey,xlabel,ylabel,label): + plt.xlim(sx,ex) + plt.xlabel(str(xlabel)) + plt.ylim(sy,ey) + plt.ylabel(str(ylabel)) + plt.bar(x, y, tick_label=label, align="center") + #for i in range(len(x)): + # plt.plot(x[i],y[i], label=FILES[i].split("/")[-1])#markersize=0.5) + #plt.legend() + plt.savefig("./pdf/"+str(name)+".pdf") + plt.delaxes() + +def openGraph(name): + cmd = ["open", "./pdf/"+str(name)+".pdf"] + subprocess.check_call(cmd) + +if __name__ == "__main__": + name = getData() + if(input("画像を表示しますか(Y or N): ")=="y"): + openGraph(name) diff -r 130918274b4f -r ae1309162772 paper/file/benchmark/pdf/container.pdf Binary file paper/file/benchmark/pdf/container.pdf has changed diff -r 130918274b4f -r ae1309162772 slide/images/backfill.png Binary file slide/images/backfill.png has changed diff -r 130918274b4f -r ae1309162772 slide/images/container.png Binary file slide/images/container.png has changed diff -r 130918274b4f -r ae1309162772 slide/images/fswrite.png Binary file slide/images/fswrite.png has changed diff -r 130918274b4f -r ae1309162772 slide/images/jobscheduler.png Binary file slide/images/jobscheduler.png has changed diff -r 130918274b4f -r ae1309162772 slide/images/system.png Binary file slide/images/system.png has changed diff -r 130918274b4f -r ae1309162772 slide/slide.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/slide.html Wed Feb 10 21:08:31 2021 +0900 @@ -0,0 +1,1010 @@ +コンテナ技術を用いた教育情報システムの構築
+

コンテナ技術を用いた教育情報システムの構築

+
    +
  • 宮平 賢 +
      +
    • 琉球大学工学部工学科知能情報コース
    • +
    +
  • +
  • 河野 真治 +
      +
    • 琉球大学工学部
    • +
    +
  • +
+
+
+

研究目的

+
    +
  • 情報通信技術の普及に伴い学ぶことが増えている
  • +
  • その学習環境として、Virtual MachineやContainerがある +
      +
    • 高性能なPC
    • +
    • クラウドサービス +
        +
      • 無料だと制限がある
      • +
      +
    • +
    +
  • +
+
+
+

旧システム

+
+
+

旧システムでの問題点

+
    +
  • 仮想環境の貸出サービスにおいて,新しく仮想環境を作成するにはシステム管理チームへ申請が必要であった.そのため,一部学生は申請の方法が分からなかったり,貸出サービスがあることが周知されていなかったため,旧システムのリソースが余っていた
  • +
  • 機械学習の演習ではGPUが求められる.だが,旧システムにはGPUが搭載されていないため,要求されるリソースを提供できない.そのため,貸出サービスではなく研究室ごとの機器が多く利用された.
  • +
+
+
+

教育情報システムの構築

+
+
+

仮想環境の構築

+
    +
  • KVMを利用する +
      +
    • GPUを利用できない
    • +
    +
  • +
  • そうだ、コンテナ環境を導入しよう!!
  • +
+
+
+

コンテナ環境の導入

+
    +
  • Podman
  • +
  • Singularity
  • +
  • GPUは4台あるぞ?? +
      +
    • ジョブスケジューラを構築しよう!
    • +
    +
  • +
+
+
+

Podman

+
    +
  • Podmanはイメージの作成やコンテナの作成が遅い +
      +
    • Podmanがまだ開発段階
    • +
    • Cephとの相性が悪い
    • +
    +
  • +
  • Rootlessでは実行できない機能がある +
      +
    • IPアドレスの割り当て
    • +
    +
  • +
  • そこでPodmanのwrapperであるie-podmanを作成した
  • +
+
+
+

ie-podmanの機能 1/2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
コマンド機能
buildContainerfileの指示に従いイメージを作成する
cpコンテナにファイルを送信する
exec起動中のコンテナでプロセスを実行する
imagesコンテナイメージの一覧を表示する
infoコンテナの情報を表示する
logsコンテナのlogを表示する
ps起動中のコンテナの一覧を表示する
+
+
+

ie-podmanの機能 2/2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
コマンド機能
registry学科のレジストリの操作を行う
rmコンテナを削除する
runコンテナを作成する
sifイメージをsifファイルに変換する
startコンテナを起動する
stopコンテナを停止する
+
+
+

Singularity

+
    +
  • Slurm経由で実行しよう!
  • +
+
+
+

ジョブスケジューラの構築

+

利用方針 「最悪待ち時間を減らす」

+
    +
  • Jobの優先順位 +
      +
    • 要求するリソースの少ないJobの優先度を高くする
    • +
    • 実行時間が短いJobの優先度を高くする
    • +
    • これまでのJobの実行履歴で優先度は変化しない
    • +
    +
  • +
+

これでは多くのリソースを要求するJobが実行されない可能性がある。

+
    +
  • Jobの実行時間 +
      +
    • Jobの実行時間の記載がない場合は1日で強制終了させる
    • +
    • 管理者からJobの優先度を上げる
    • +
    +
  • +
+

また、Jobのスケジュールにはバックフィルを採用する。

+
+
+

+
+
+

ファイルシステムの構成

+
    +
  • Cephを採用 +
      +
    • 自己修復、自己管理機能を搭載
    • +
    • 信頼性が高い
    • +
    • 柔軟なアクセス方法の提供 +
        +
      • Object Gateway
      • +
      • ブロックデバイス
      • +
      • POSIX互換のファイルシステム
      • +
      +
    • +
    +
  • +
+
+
+

教育情報システムの構成

+
    +
  • サーバ全てにPodman、Singularityをインストール
  • +
  • Slurm +
      +
    • 汎用サーバ1台をコントローラ/計算ノード
    • +
    • 残りを計算ノード
    • +
    +
  • +
  • Ceph +
      +
    • ディスクサーバをOSD
    • +
    • 汎用サーバ3台をMON, MDS, MGR
    • +
    +
  • +
+
+
+
+

教育情報システムの利用と管理

+
+
+

LDAPによる管理

+
+
+

ie-podmanの利用

+
+
+

GPUの利用方法

+
+
+

教育情報システムの評価

+
+
+

ファイルシステムの評価 1/2

+
    +
  • GFS2 +
      +
    • 旧システムのVMイメージの保存場所
    • +
    +
  • +
  • NFS +
      +
    • 旧システムのホームディレクトリ
    • +
    +
  • +
  • CephFS +
      +
    • ホームディレクトリ
    • +
    +
  • +
  • CephRBD +
      +
    • VMイメージの保存、バックアップ場所
    • +
    +
  • +
+
+
+

ファイルシステムの評価 2/2

+
+
+

ie-podmanの評価 1/3

+
    +
  • イメージ作成速度の比較 +
      +
    • Docker
    • +
    • Podman (rootless)
    • +
    • ie-podman
    • +
    +
  • +
+
+
+

ie-podmanの評価 2/3

+
FROM ubuntu:18.04
+RUN apt-get update && \
+    apt-get upgrade -y && \
+    DEBIAN_FRONTEND=noninteractive \
+    apt-get install -y \
+	qemu-utils qemu-efi-aarch64 \
+	qemu-system-arm qemu-system-x86 \
+	build-essential uuid-dev \
+	git python iasl wget vim nasm && \
+    DEBIAN_FRONTEND=noninteractive \
+    apt-get install -y \
+	crossbuild-essential-armhf
+
+WORKDIR /workdir
+RUN git clone --recursive https://github.com/tianocore/edk2 && \
+    wget https://sourceforge.net/projects/gnu-efi/files/gnu-efi-3.0.12.tar.bz2/download && \
+    tar xf download
+
+
+
+

ie-podmanの評価 3/3

+
+
+

学習環境の評価

+
    +
  • VM +
      +
    • 学生が自由にスペックを変更できる
    • +
    • ディスク容量を抑えれる
    • +
    +
  • +
  • コンテナ +
      +
    • 気軽に利用できる
    • +
    • 高性能な実況環境を利用できる
    • +
    +
  • +
+
+
+

まとめ

+
+
+

今後の課題

+
    +
  • 教育情報システムの周知
  • +
  • ie-podmanのネットワーク構成の見直し
  • +
  • バックアップの運用
  • +
+
+
\ No newline at end of file diff -r 130918274b4f -r ae1309162772 slide/slide.md --- a/slide/slide.md Wed Feb 10 15:49:59 2021 +0900 +++ b/slide/slide.md Wed Feb 10 21:08:31 2021 +0900 @@ -9,10 +9,25 @@ section { background-color: #FFFFFF; font-size: 28px; + color: #4b4b4b; + font-family: "Arial", "Hiragino Maru Gothic ProN"; + } + + section.title { + font-size: 40px; + padding: 40px; + } + section.title h1 { + text-align: center; + } + + section.slide h1 { + position: absolute; + left: 50px; top: 35px; } --- - + # コンテナ技術を用いた教育情報システムの構築 - 宮平 賢 @@ -21,9 +36,221 @@ - 琉球大学工学部 --- - + # 研究目的 -- aaaa +- 情報通信技術の普及に伴い学ぶことが増えている +- その学習環境として、Virtual MachineやContainerがある + - 高性能なPC + - クラウドサービス + - 無料だと制限がある + +--- + +# 旧システム + +--- + +# 旧システムでの問題点 + +- 仮想環境の貸出サービスにおいて,新しく仮想環境を作成するにはシステム管理チームへ申請が必要であった.そのため,一部学生は申請の方法が分からなかったり,貸出サービスがあることが周知されていなかったため,旧システムのリソースが余っていた +- 機械学習の演習ではGPUが求められる.だが,旧システムにはGPUが搭載されていないため,要求されるリソースを提供できない.そのため,貸出サービスではなく研究室ごとの機器が多く利用された. + +--- + +# 教育情報システムの構築 + +--- + +# 仮想環境の構築 + +- KVMを利用する + - GPUを利用できない +- そうだ、コンテナ環境を導入しよう!! + +--- +# コンテナ環境の導入 + +- Podman +- Singularity +- GPUは4台あるぞ?? + - ジョブスケジューラを構築しよう! + +--- +# Podman + +- Podmanはイメージの作成やコンテナの作成が遅い + - Podmanがまだ開発段階 + - Cephとの相性が悪い +- Rootlessでは実行できない機能がある + - IPアドレスの割り当て +- そこでPodmanのwrapperであるie-podmanを作成した + +--- +# ie-podmanの機能 1/2 + +| コマンド | 機能 | +| --- | --- | +| build| Containerfileの指示に従いイメージを作成する | +| cp | コンテナにファイルを送信する | +| exec | 起動中のコンテナでプロセスを実行する | +| images | コンテナイメージの一覧を表示する | +| info | コンテナの情報を表示する | +| logs | コンテナのlogを表示する | +| ps | 起動中のコンテナの一覧を表示する | + +--- +# ie-podmanの機能 2/2 + +| コマンド | 機能 | +| --- | --- | +| registry | 学科のレジストリの操作を行う | +| rm | コンテナを削除する | +| run | コンテナを作成する | +| sif | イメージをsifファイルに変換する | +| start | コンテナを起動する | +| stop | コンテナを停止する | + +--- +# Singularity + +- Slurm経由で実行しよう! + +--- +# ジョブスケジューラの構築 + +利用方針 **「最悪待ち時間を減らす」** +- Jobの優先順位 + - 要求するリソースの少ないJobの優先度を高くする + - 実行時間が短いJobの優先度を高くする + - これまでのJobの実行履歴で優先度は変化しない + +これでは多くのリソースを要求するJobが実行されない可能性がある。 +- Jobの実行時間 + - Jobの実行時間の記載がない場合は**1日で強制終了**させる + - 管理者からJobの優先度を上げる + +また、Jobのスケジュールにはバックフィルを採用する。 + +--- + +![](images/backfill.png) --- +# ファイルシステムの構成 + +- Cephを採用 + - 自己修復、自己管理機能を搭載 + - 信頼性が高い + - 柔軟なアクセス方法の提供 + - Object Gateway + - ブロックデバイス + - POSIX互換のファイルシステム + +--- +# 教育情報システムの構成 + +- サーバ全てにPodman、Singularityをインストール +- Slurm + - 汎用サーバ1台をコントローラ/計算ノード + - 残りを計算ノード +- Ceph + - ディスクサーバをOSD + - 汎用サーバ3台をMON, MDS, MGR + +--- + +![bg 80%](images/system.png) + +--- + +# 教育情報システムの利用と管理 + +--- + +# LDAPによる管理 + +--- +# ie-podmanの利用 + +--- +# GPUの利用方法 + +--- + +# 教育情報システムの評価 + +--- + +# ファイルシステムの評価 1/2 + +- GFS2 + - 旧システムのVMイメージの保存場所 +- NFS + - 旧システムのホームディレクトリ +- CephFS + - ホームディレクトリ +- CephRBD + - VMイメージの保存、バックアップ場所 + +--- +# ファイルシステムの評価 2/2 + +![bg 70%](images/fswrite.png) + +--- +# ie-podmanの評価 1/3 + +- イメージ作成速度の比較 + - Docker + - Podman (rootless) + - ie-podman + +--- +# ie-podmanの評価 2/3 +```Dockerfile +FROM ubuntu:18.04 +RUN apt-get update && \ + apt-get upgrade -y && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install -y \ + qemu-utils qemu-efi-aarch64 \ + qemu-system-arm qemu-system-x86 \ + build-essential uuid-dev \ + git python iasl wget vim nasm && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install -y \ + crossbuild-essential-armhf + +WORKDIR /workdir +RUN git clone --recursive https://github.com/tianocore/edk2 && \ + wget https://sourceforge.net/projects/gnu-efi/files/gnu-efi-3.0.12.tar.bz2/download && \ + tar xf download +``` + +--- +# ie-podmanの評価 3/3 + +![bg 70%](images/container.png) + +--- +# 学習環境の評価 + +- VM + - 学生が自由にスペックを変更できる + - ディスク容量を抑えれる +- コンテナ + - 気軽に利用できる + - 高性能な実況環境を利用できる + +--- + +# まとめ + +--- + +# 今後の課題 + +- 教育情報システムの周知 +- ie-podmanのネットワーク構成の見直し +- バックアップの運用 \ No newline at end of file