# HG changeset patch # User Ken Miyahira # Date 1611580563 -32400 # Node ID 26a9f492bb21ba981b3476d4d687c5e3482ba95c # Parent cfe8f0abdacb415099cc675e87555ae3900a7032 update system diff -r cfe8f0abdacb -r 26a9f492bb21 paper/chapter/new_system.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/chapter/new_system.tex Mon Jan 25 22:16:03 2021 +0900 @@ -0,0 +1,95 @@ +\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 の事書きたいね + +\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} \ No newline at end of file diff -r cfe8f0abdacb -r 26a9f492bb21 paper/chapter/old_system.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/chapter/old_system.tex Mon Jan 25 22:16:03 2021 +0900 @@ -0,0 +1,127 @@ +\chapter{旧システム} + +本章では, 2020年8月まで使用されていたシステムの環境, 演習や研究用に利用できるVM管理システムについて述べる。 + +\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を採用した。 +KVMは標準でライブマイグレーションに対応している。 +そこで, クラスタファイルシステムとして利用可能なファイルシステムである, 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{Akatsuki} +Webコントロールパネルから有線LAN接続サービスやVM貸出サービスを管理している。 +利用者はシステム管理チームへVMの利用申請を行い, VM作成の権限を取得する。 +権限を取得後, WebコントロールパネルよりVM作成, 電源操作を行えるようになっている。 +VMのリソースはCPU1コア, メモリ1GB, ストレージ10GBとなり, 申請を行うことでリソースを増やすことができる。 +VM貸出サービスの概要を図\ref{fig:akatsuki}に示す。 + +\begin{figure}[H] + \begin{center} + \includegraphics[width=150mm]{fig/akatsuki.pdf} + \end{center} + \caption{Akatsukiの概要} + \label{fig:akatsuki} +\end{figure} + +\subsection{ie-virsh} +ie-virsh は手元のPCで作成したVMを学科のブレードサーバにデプロイできるサービスである。 +ユーザのUID及びGID情報を取得することで, マルチユーザに対応している。 +表\ref{tb:ie-virsh}は ユーザが利用できる ie-virsh の機能である。 +ie-virshは手元のPCで作成したVMを実行できるため, ユーザが好みのOSや環境を構築できるなど自由度が高い。 +\begin{table}[htb] + \begin{center} + \caption{ie-virsh のコマンド} + \begin{tabular}{c|l} \hline + define & XML の template を下に domain を作成 \\ \hline + undefine & define で作成した domain を削除 \\ \hline + list & define で作成した domain の一覧表示 \\ \hline + start & 指定した domain 名の VM を起動 \\ \hline + destroy & 指定した domain 名の VM を停止 \\ \hline + dumpxml & domain の XML を参照 \\ \hline + \end{tabular} + \label{tb:ie-virsh} + \end{center} +\end{table} + +\subsection{ie-docker} +ie-dockerはDocker をラップしたツールであり, ユーザは学科のブレードサーバへsshで接続を行いCUIから利用することができる。 +ie-virshと同じく, ユーザのUID及びGID情報を取得することで, マルチユーザに対応している。 +表\ref{tb:ie-docker} は ie-docker で利用できる機能である。 +コンテナで使用するイメージを管理者が用意する必要がある。 + +\begin{table}[htb] + \begin{center} + \caption{ie-docker のコマンド} + \begin{tabular}{c|l} \hline + ps & 起動中のコンテナの一覧を表示する \\ \hline + run & コンテナを作成する \\ \hline + start & コンテナを起動する \\ \hline + stop & コンテナを停止する \\ \hline + attach & 起動しているコンテナに attach する \\ \hline + cp & コンテナにファイルを送信する \\ \hline + rm & コンテナを削除する \\ \hline + \end{tabular} + \label{tb:ie-docker} + \end{center} +\end{table} + +\subsection{問題点} + +旧システムでは, 学生が演習などで利用できる環境として貸出VMのみであった。そのため以下のような問題が生じた。 + +\begin{itemize} + \item 仮想環境の貸出サービスにおいて, 新しく仮想環境を作成するにはシステム管理チームへ申請が必要であった。 + そのため, 一部学生は申請の方法が分からなかったり, 貸出サービスがあることが周知されていなかったため, 旧システムのリソースが余っていた。 + \item 機械学習の演習ではGPUが求められる。だが, 旧システムにはGPUが搭載されていないため, 要求されるリソースを提供できない。 + そのため, 貸出サービスではなく研究室ごとの機器が多く利用された。 +\end{itemize} + +% 簡単に 1ページ未満にしよう +% 無理でした ^_^;) \ No newline at end of file diff -r cfe8f0abdacb -r 26a9f492bb21 paper/chapter/system_renew.tex --- a/paper/chapter/system_renew.tex Mon Jan 25 13:42:33 2021 +0900 +++ b/paper/chapter/system_renew.tex Mon Jan 25 22:16:03 2021 +0900 @@ -3,8 +3,8 @@ 本コースでは5年ごとにシステム更新をしており, 2020年9月にシステム更新が行われた。 \section{旧システム} -旧システムでは, KVMを利用したVMベースのシステムを構築していた。 -VMは本コースのWebやDNS等の基幹システムや, 学生が学習等で利用できる貸出VMで利用されていた。 +旧システムは, KVMを利用したVMベースのシステムを構築していた。 +VMは本コースのWebやDNS等の基幹システムや, 学生が演習や研究用で利用できる貸出VMで利用されていた。 そのため, 利用者が必要とする十分なスペックを提供するため, 表\ref{tb:oldserver}のスペックの汎用サーバを4台導入した。 \begin{table}[H] \begin{center} @@ -22,7 +22,8 @@ 次にVMのイメージを保存するために表\ref{tb:oldsandisk}のストレージを2台導入した。 ハードディスクドライブの故障が想定されるため, RAID6を採用し信頼性及び可用性の向上を行った。 ストレージと汎用サーバとの接続プロトコルはiSCSIを採用した。 -VMベースのシステムであることから, ライブマイグレーションに対応するためにクラスタファイルシステムとして利用可能なファイルシステムである, GFS2を採用した。 +KVMは標準でライブマイグレーションに対応している。 +そこで, クラスタファイルシステムとして利用可能なファイルシステムである, GFS2を採用した。 \begin{table}[H] \begin{center} diff -r cfe8f0abdacb -r 26a9f492bb21 paper/fig/akatsuki.pdf Binary file paper/fig/akatsuki.pdf has changed diff -r cfe8f0abdacb -r 26a9f492bb21 paper/fig/system.graffle Binary file paper/fig/system.graffle has changed diff -r cfe8f0abdacb -r 26a9f492bb21 paper/fig/system.pdf Binary file paper/fig/system.pdf has changed diff -r cfe8f0abdacb -r 26a9f492bb21 paper/final_thesis.pdf Binary file paper/final_thesis.pdf has changed diff -r cfe8f0abdacb -r 26a9f492bb21 paper/final_thesis.tex --- a/paper/final_thesis.tex Mon Jan 25 13:42:33 2021 +0900 +++ b/paper/final_thesis.tex Mon Jan 25 22:16:03 2021 +0900 @@ -72,11 +72,18 @@ \input{./chapter/technology_overview.tex} + +%%%%%%%%%%%% +% 旧システム +%%%%%%%%%%%% + +\input{./chapter/old_system.tex} + %%%%%%%%%%%% % 教育計算機システムの構築 %%%%%%%%%%%% -\input{./chapter/system_renew.tex} +\input{./chapter/new_system.tex} %%%%%%%%%%%% % 教育計算機システムの管理