view paper/chapter/system_renew.tex @ 20:cfe8f0abdacb

update system_renew
author Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
date Mon, 25 Jan 2021 13:42:33 +0900
parents 1463825d6336
children 26a9f492bb21
line wrap: on
line source

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

本コースでは5年ごとにシステム更新をしており, 2020年9月にシステム更新が行われた。

\section{旧システム}
旧システムでは, KVMを利用したVMベースのシステムを構築していた。
VMは本コースのWebやDNS等の基幹システムや, 学生が学習等で利用できる貸出VMで利用されていた。
そのため, 利用者が必要とする十分なスペックを提供するため, 表\ref{tb:oldserver}のスペックの汎用サーバを4台導入した。
\begin{table}[H]
  \begin{center}
    \caption{旧システムの物理サーバ}
    \begin{tabular}{|c|c|} \hline
	  CPU & Intel Xeon E5-2699 v3 (2.30GHz/18Core) \\ \hline
    CPUユニット数 & 2 \\ \hline
	  メモリ & 768GB\\ \hline
    HDD & 600GB \\ \hline
    \end{tabular}
	\label{tb:oldserver}
  \end{center}
\end{table}

次にVMのイメージを保存するために表\ref{tb:oldsandisk}のストレージを2台導入した。
ハードディスクドライブの故障が想定されるため, RAID6を採用し信頼性及び可用性の向上を行った。
ストレージと汎用サーバとの接続プロトコルはiSCSIを採用した。
VMベースのシステムであることから, ライブマイグレーションに対応するためにクラスタファイルシステムとして利用可能なファイルシステムである, GFS2を採用した。

\begin{table}[H]
  \begin{center}
    \caption{旧システムのSAN用ストレージ}
    \begin{tabular}{|c|c|} \hline
	  HDD & SAS 1.2TB x 24 \\ \hline
    回転数 & 15000rpm \\ \hline
	  RAID & 6 \\ \hline
    実行容量 & 19.7TB \\ \hline
    \end{tabular}
	\label{tb:oldsandisk}
  \end{center}
\end{table}

最後にシステムのバックアップを行うために表\ref{tb:olddisk}の大容量ストレージを2台導入した。
大容量ストレージには本コースのWebやデータベース, ユーザのホームディレクトリなどを月に一度バックアップを行う。

% こいつ...もしかしたら Netgea ????
\begin{table}[H]
  \begin{center}
    \caption{旧システムの汎用ストレージ}
    \begin{tabular}{|c|c|} \hline
	  HDD & SAS 4.0TB x 24 \\ \hline
    回転数 & 7200rpm \\ \hline
	  RAID & 6 \\ \hline
    実行容量 & 68.5TB \\ \hline
    \end{tabular}
	\label{tb:olddisk}
  \end{center}
\end{table}

\subsection{旧システムの問題点}

旧システムでは, 学生が演習などで利用できる環境として貸出VMのみであった。そのため以下のような問題が生じた。

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

% 簡単に 1ページ未満にしよう
% 無理でした ^_^;)

\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{仮想環境}
旧システムはVMベースで構築しており, 利用できる学習環境は主に貸出VMである。
新システムでも貸出VMを行うが, VMとGPUが1対1の関係になるため, GPU希望する利用者全てに割り当てることができない。
また, VMでは起動に時間がかかったり, VMを立てるごとに環境構築が必要となり利用者の手間を取らせることになる。
そこで, アプリケーションの実行環境として採用されているコンテナ技術を利用する。
\par
システムは学生や教授などが利用するため, マルチユーザで利用できるコンテナエンジンが必要となる。
そのため, コンテナエンジンにはPodmanとSingularityを採用する。
Podmanは開発段階でもあるため一部機能が不安定だったり, 設定が上書きされる場合がある。
管理するシステム管理チームの学生の教育には適しているが, 演習や研究用で利用するには適さない場合がある。
そのため, HPC環境に設計されているSingularityも同時に利用する。
また, 4台のサーバのリソースを効率よく利用するためにジョブスケジューラのSlurmを採用する。
Slurmではユーザのホームディレクトリがクラスタで共有されている必要があることから, 単一ファイルベースのイメージを利用できるSingularityはSlurmとの相性が良い。

\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台をMON, MDSとすることで, 最大1台の障害を許容できるため, 利用者への影響を少なくできる。
これらの技術を用いて構成したシステム構成図を図\ref{fig:system}に示す。
\begin{figure}[H]
    \begin{center}
        \includegraphics[width=150mm]{fig/system.pdf}
    \end{center}
    \caption{システム構成図}
    \label{fig:system}
\end{figure}