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

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

研究目的

  • 情報通信技術の普及に伴い学ぶことが増えている
  • その学習環境として、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のスケジュールにはバックフィルを採用する。

ファイルシステムの構成

  • 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のネットワーク構成の見直し
  • バックアップの運用