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

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

研究目的

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

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

  • VM貸出サービス

    • Akatsuki
      • 申請を行い、Webコントロールパネルから作成
    • ie-virsh
      • 手元のPCで作成したVMイメージのデプロイ
  • VM貸出サービスのデフォルトスペック

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

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

  • VM貸出サービスの一部学生は申請の方法が分からなかったり、貸出サービスがあることが周知されていなかったため、旧システムのリソースが余っていた

  • VMのスペックの変更にはシステム管理チームへの申請が必要であり、利用者と管理者とのやり取りなどの手間があった

  • 旧システムにはGPUが搭載されていないため、貸出サービスではなく研究室ごとの機器、クラウドサービスが多く利用された

教育情報システムの構築

オンプレミス環境

  • 汎用サーバ x 4
  • ディスクサーバ x 2
CPU Intel Xeon Gold 6238 (2.10GHz/22Core)
GPU Nvidia Tesla V100S
メモリ 512GB
SAS SSD 5TB
NVMe SSD 1.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するのではなく、一部機能のみを提供する
コマンド 機能
build Containerfileの指示に従いイメージを作成する
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貸出サービスの利用

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