view paper/chapter/new_system.tex @ 23:3bdd421b577c

update tex
author Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
date Thu, 28 Jan 2021 16:46:17 +0900
parents 53dc8a409077
children 697579cf6cf8
line wrap: on
line source

\chapter{教育計算機システムの構築}

本章では, 2020年9月に行われたシステム更新, 演習や研究用に利用できる仮想環境について述べる。。

\section{新システムのオンプレミス環境}
新システムでは, 表\ref{tb:newserver}の汎用サーバを4台採用した。
旧システムのストレージはHDDであったが, SSDの大容量化, 低価格化によりSSDを搭載した。
また, 演習や研究等で利用できるようGPUも搭載した。

\begin{table}[H]
  \begin{center}
    \caption{新システムの物理サーバ}
    \begin{tabular}{|c|c|} \hline
	  CPU & Intel Xeon Gold 6238 (2.10GHz/22Core) \\ \hline
    CPUユニット数 & 2 \\ \hline
    GPU & Nvidia Tesla V100S \\ \hline
	  メモリ & 512GB\\ \hline
    SAS SSD & 5TB \\ \hline
    NVMe SSD & 1.5TB \\ \hline
    \end{tabular}
	\label{tb:newserver}
  \end{center}
\end{table}

次にユーザのデータなどを補完するために, 表\ref{tb:newdiskserver}のストレージサーバを2台採用した。
2台のストレージサーバにはCephを構築するため, RAIDを構成せず利用する。
そのため, 旧システムでは全体容量が40TBだったが, 新システムでは90TBと増加した。

\begin{table}[H]
  \begin{center}
    \caption{新システムのストレージサーバ}
    \begin{tabular}{|c|c|} \hline
	  CPU & Intel Xeon Silver 4208\\ \hline
    メモリ & 32GB \\ \hline
	  SAS HDD & 300GB/15000rpm x 2 \\ \hline
    NLSAS HDD & 4TB/7200rpm x 12 \\ \hline
    \end{tabular}
	\label{tb:newdiskserver}
  \end{center}
\end{table}

\subsection{Virtual Machine}
旧システムではVMベースでシステムを構築していたが, 新システムではコンテナベースでの構築行った。
しかし, VM貸出サービスであるAkatsuki, ie-virshは利用を継続する。
また, ie-virshは新たに以下の機能を追加した。
\begin{itemize}
    \item 手元のPCのVMをデプロイするだけでなく, VMのテンプレートから差分で新しくVMを作成する
    \item 作成したVMのリソースを変更する
\end{itemize}
新システムでは旧サーバと比べディスク容量が増加したため, VMイメージを汎用サーバのディスクドライブに保存することで, VMの起動速度を高速化を図ることができる。
旧システムではVMの作成は申請が必要であったが, 利用者は申請をせずVMを作成できるように機能を追加した。
しかし, 利用者が制限なくVMを作成するとディスクリソースを圧迫する恐れがある。
そこで, VMの作成にはクローンではなく差分で作成することで, VMイメージサイズを小さくすることができる。

\subsection{コンテナ}
新システムでもVM貸出サービスを継続するが, 新しく搭載されるGPUをVMで利用するためにはPCIパススルーなどの設定が必要となる。
しかし, PCIパススルーでは, VMとGPUが1対1の関係になるため, GPU希望する利用者全てに割り当てることができない。
また, 貸出VMは利用者の好み環境構築ができる反面, VMを作成するごとに同じような作業が必要となり利用者の手間となる。
そこで, アプリケーションの実行環境として採用されているコンテナ技術を利用する。
\par
システムは学生や教授などが利用するため, マルチユーザで利用できるコンテナエンジンが必要となる。
そのため, コンテナエンジンにはマルチユーザに対応しているPodmanとSingularityを採用する。
Podmanは開発段階でもあるため一部機能が不安定だったり, 設定が上書きされる場合がある。
管理するシステム管理チームの学生の教育には適しているが, 演習や研究用で利用するには適さない場合がある。
そのため, HPC環境に設計されているSingularityも同時に利用する。
\par
%ie-podman の事書きたいね
Singularityはコンテナ内で実行ユーザの権限を引き継ぐため, 利用者が作成したプログラムの実行には向いている。
だが, Webなど特権が必要なサービスを実行することはできない。
特権が必要なWebなどをを実行する場合はPodmanを利用する。
Podmanはネットワーク設定を行うことで, コンテナ個別にIPアドレスを割り当てることができるが, ルートレスでは割り当てができない。
IPアドレスの割り当てにはネットワークデバイスの関連付けが必要だが, root権限が必要なためである。
rootlessでWebなどのサービスを実行しアクセスするにはポートフォワードを設定する必要がある。
だが, 利用者が使用するポートを汎用サーバで開放することはセキュリティ的にできない。
そこで, podmanをwrapperしたie-podmanを作成した。
ie-podmanはコンテナに個別のIPアドレスを割り当てる際に利用する。

\subsection{ファイルシステム}
旧システムではVMのイメージをクラスタファイルシステムであるGFS2に保存し運用していた。
このGFS2の運用には別途クラスタを構成する必要があるため, 単一障害が発生により多くのサービスに影響を与えることがあった。
また, ユーザのホームディレクトリもVMでGFS2をマウントしNFSで提供されていた。
そのため, NFSを提供するVMが停止することでユーザへの影響があった。
そこで, 新システムではVMイメージの保存には汎用サーバのディスクドライブ, ユーザのホームディレクトリにCephを採用する。
\par
新システムでは汎用サーバにSAS SSDが5TBと旧システムより多く搭載されている。
2台のサーバに演習や研究用で利用する貸出VMのイメージを保存し, 残り2台には本コースで利用しているサービスを提供するVMを保存する。
汎用サーバに保存することで, 単一障害時の影響を小さくすることができる。
Cephは自己修復と自己管理機能を持つため, 信頼性の高いファイルシステムとして利用できる。
そのため, ユーザのホームディレクトリを配置するファイルシステムとして利用する。
また, CephはObject Gateway, ブロックデバイス, POSIX互換のファイルシステムなど, 用途によって柔軟にアクセス方法を変更できる。
ブロックデバイスとしてアクセスすることでVMイメージのバックアップとしても利用できる。

\subsection{構成}
新システムでは, 各サーバに演習や研究用で利用できるPodmanとSingularityを用い, ジョブスケジューラであるSlurmを用いて管理を行う。
汎用サーバ1台をSlurmのコントローラ/計算ノードとし, 残りは計算ノードとすることで, システムのリソースを最大限利用可能にする。
Cephはディスクサーバのみで構成するのではなく, 汎用サーバ3台も含める。
ディスクサーバはOSDを持ち, 汎用サーバがMON, MDS, MGRを担当する。
汎用サーバを含めることで, 最大1台の障害を許容できるようになる。
そのため, 利用者への影響を少なくすることができる。
これらの技術を用いて構成したシステム構成図を図\ref{fig:system}に示す。
\begin{figure}[H]
    \begin{center}
        \includegraphics[width=150mm]{fig/system.pdf}
    \end{center}
    \caption{システム構成図}
    \label{fig:system}
\end{figure}