# HG changeset patch # User okud # Date 1613131464 -32400 # Node ID f25dbd69348545bbfbab0992c8b8cd64257ac5c5 # Parent 1236fa28ffdd1de8742052eb7a5642cf99299fe5 add slide diff -r 1236fa28ffdd -r f25dbd693485 slide/images/backfill.png Binary file slide/images/backfill.png has changed diff -r 1236fa28ffdd -r f25dbd693485 slide/images/container.png Binary file slide/images/container.png has changed diff -r 1236fa28ffdd -r f25dbd693485 slide/images/fswrite.png Binary file slide/images/fswrite.png has changed diff -r 1236fa28ffdd -r f25dbd693485 slide/images/jobscheduler.png Binary file slide/images/jobscheduler.png has changed diff -r 1236fa28ffdd -r f25dbd693485 slide/images/system.png Binary file slide/images/system.png has changed diff -r 1236fa28ffdd -r f25dbd693485 slide/slide.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/slide.html Fri Feb 12 21:04:24 2021 +0900 @@ -0,0 +1,1290 @@ +コンテナ技術を用いた教育情報システムの構築
+

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

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

研究目的

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

これまでの学生向け学習環境

+
    +
  • +

    VM貸出サービス

    +
      +
    • Akatsuki +
        +
      • 申請を行い、Webコントロールパネルから作成
      • +
      +
    • +
    • ie-virsh +
        +
      • 手元のPCで作成したVMイメージのデプロイ
      • +
      +
    • +
    +
  • +
  • +

    VM貸出サービスのデフォルトスペック

    +
      +
    • CPU 1コア
    • +
    • メモリ 1GB
    • +
    • ディスク容量 10GB
    • +
    +
  • +
+
+
+

これまでの学習環境の問題点

+
    +
  • VM貸出サービスの一部学生は申請の方法が分からなかったり、貸出サービスがあることが周知されていなかったため、旧システムのリソースが余っていた
  • +
+
+
    +
  • VMのスペックの変更にはシステム管理チームへの申請が必要であり、利用者と管理者とのやり取りなどの手間があった
  • +
+
+
    +
  • 旧システムにはGPUが搭載されていないため、貸出サービスではなく研究室ごとの機器、クラウドサービスが多く利用された
  • +
+
+
+

教育情報システムの構築

+
+
+

オンプレミス環境

+
    +
  • 汎用サーバ x 4
  • +
  • ディスクサーバ x 2
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CPUIntel Xeon Gold 6238 (2.10GHz/22Core)
GPUNvidia Tesla V100S
メモリ512GB
SAS SSD5TB
NVMe SSD1.5TB
+
+
+

VM貸出サービスの移行

+
    +
  • VM貸出サービスを継続するため、KVMを導入する
  • +
  • VMからGPUの利用にはPCIパススルーの設定が必要となる
  • +
  • しかし、VM1つに対し、1つのGPUが必要になる +
      +
    • 希望する学生全員に割り当てができない
    • +
    +
  • +
+
+
    +
  • そこで、コンテナ環境を導入する +
      +
    • 1つのGPUを複数のコンテナから利用できる
    • +
    +
  • +
+
+
+

コンテナ環境の導入

+
    +
  • 要件としてマルチユーザであり、GPUが利用できるなどがある
  • +
  • そこで、Podman、Singularityを導入する
  • +
  • Podman +
      +
    • rootlessで利用できる
    • +
    • nvidia-dockerの設定を行えばGPUを利用できる
    • +
    +
  • +
  • Singularity +
      +
    • rootlessで利用できる
    • +
    • GPUの利用が容易 +
        +
      • GPUドライバーのインストールのみ
      • +
      +
    • +
    +
  • +
+
+
+

コンテナエンジンの補い

+
    +
  • +

    Podman

    +
      +
    • イメージの作成やコンテナの作成が遅い +
        +
      • Podmanがまだ開発段階
      • +
      +
    • +
    • rootlessでは実行できない機能がある +
        +
      • IPアドレスの割り当て
      • +
      +
    • +
    +
  • +
  • +

    Singularity

    +
      +
    • イメージの作成に時間がかかる +
        +
      • ビルド中にエラーが発生すると、一から再開する必要がある
      • +
      +
    • +
    +
  • +
  • +

    そこでPodmanのwrapperであるie-podmanを作成した

    +
  • +
+
+
+

ie-podmanの作成

+
    +
  • ユーザのUID、GIDを取得し管理を行う +
      +
    • 他のユーザのリソースを操作できない
    • +
    +
  • +
  • SSD上にイメージ等を保存し、高速を図る
  • +
+
+
+

ie-podmanの機能 1/2

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

ie-podmanの機能 2/2

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

ジョブスケジューラの導入

+
    +
  • 多くのリソースを必要とするプログラムは管理が必要である
  • +
  • 4台のサーバのリソースを利用できるようにする必要がある
  • +
  • そこで、ジョブスケジューラのSlurmを採用する +
      +
    • フォールトトレラントで拡張性が高い
    • +
    +
  • +
+
+
+

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

+

利用方針 「計算リソースの利用効率を上げる」

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

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

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

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

+
+
+

+
+
+

ファイルシステムの導入

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

教育情報システムの構成

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

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

+
+
+

VM貸出サービスの利用

+
    +
  • VMの作成、スペックの変更で申請が必要なくなった
  • +
  • VMの作成 +
      +
    • ie-virsh define --template Ubuntu-20 VM_NAME
    • +
    +
  • +
  • スペックの変更 +
      +
    • ie-virsh edit VM_NAME
    • +
    +
  • +
+
+
+

ie-podmanの使用方法

+
    +
  • PodmanはDockerと同じCLIを提供している
  • +
  • IPアドレス、GPUをコンテナへ割り当てられる +
      +
    • ie-podman run --ip --gpu [IMAGE_NAME]
    • +
    +
  • +
  • 作成したイメージをsifファイルへの変換に対応 +
      +
    • ie-podman sif [IMAGE_NAME]
    • +
    +
  • +
+
+
+

GPUの利用方法

+
    +
  • Singularityでは容易にGPUを利用できる +
      +
    • singularity run --nv [SIF_NAME]
    • +
    +
  • +
  • ホームディレクトリ、/tmpなどがコンテナにマウントされる +
      +
    • プログラムの実行に便利
    • +
    +
  • +
  • SlurmによるJob管理 +
      +
    • 必要なリソースを記述し投下する
    • +
    • CPU数、GPU数
    • +
    +
  • +
+
+
+

batchファイルの例

+
    +
  • Jobに必要とするリソース +
      +
    • CPU 8コア、GPU 1つ
    • +
    +
  • +
  • Jobの実行時間 +
      +
    • 1分
    • +
    +
  • +
+
#!/bin/bash
+#SBATCH --job-name sample
+#SBATCH --output logs/%x-%j.log
+#SBATCH --error logs/%x-%j.err
+#SBATCH --nodes 1
+#SBATCH --cpus-per-task 8
+#SBATCH --gpus tesla:1
+#SBATCH --time 01:00
+
+singularity exec --nv [SIF_NAME] [COMMANDS]
+
+
+
+

教育情報システムの評価

+
+
+

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

+
    +
  • +

    実験概要

    +
      +
    • ddコマンドを使用し書き込み速度を比較する
    • +
    +
  • +
  • +

    書き込み速度の比較

    +
      +
    • GFS2
    • +
    • NFS
    • +
    • CephFS
    • +
    • CephRBD
    • +
    +
  • +
+
+
+

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

+
+
+

ie-podmanの評価 1/3

+
    +
  • +

    実験環境

    +
      +
    • 新システムの汎用サーバで実施
    • +
    +
  • +
  • +

    実験概要

    +
      +
    • イメージのBuild速度を比較する
    • +
    +
  • +
  • +

    Build速度の比較

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

まとめ

+
+
+

今後の課題

+
    +
  • 教育情報システムの周知 +
      +
    • Jobの投下やリソースの要求方法
    • +
    • ie-virsh、ie-podmanの使用方法
    • +
    • 定期的な周知が必要
    • +
    +
  • +
  • ie-podmanのネットワーク構成の見直し +
      +
    • プレフィックス長が24のため、最大254個のIPアドレス
    • +
    • コンテナを停止で使用されない場合は削除する必要がある
    • +
    +
  • +
  • バックアップの運用 +
      +
    • Cephと専用サーバ以外のバックアップ先を用意する必要がある
    • +
    +
  • +
+
+
\ No newline at end of file diff -r 1236fa28ffdd -r f25dbd693485 slide/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/slide.md Fri Feb 12 21:04:24 2021 +0900 @@ -0,0 +1,45 @@ +--- +marp: false +title: Gears OS UEFI対応 +paginate: true + +theme: default +size: 16:9 +style: | + 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; + } + +--- + +# Gears OS UEFI対応 + +- 奥田光希 + - 琉球大学工学部工学科知能情報コース +- 河野 真治 + - 琉球大学工学部 + +--- + +# + + + +--- +