# HG changeset patch # User Ken Miyahira # Date 1610453699 -32400 # Node ID 00b7356a070656e06da628eaede3b3de9895ce22 # Parent 044832c47f5497073f12486aec60a84c2770d9d1 update tex diff -r 044832c47f54 -r 00b7356a0706 paper/chapter/bibitem.tex --- a/paper/chapter/bibitem.tex Fri Jan 08 17:46:34 2021 +0900 +++ b/paper/chapter/bibitem.tex Tue Jan 12 21:14:59 2021 +0900 @@ -4,6 +4,8 @@ \bibitem{docker} Docker,https://www.docker.com/,2021/1/8. \bibitem{registry} Docker Registry,https://docs.docker.com/registry/,2021/1/8. \bibitem{singu} Singularity,https://sylabs.io/singularity/,2020/9/11. +\bibitem{ceph} Ceph,https://docs.ceph.com/en/latest/,2021/1/12. +\bibitem{ansible} Ansible,https://www.ansible.com/,2021/1/12. \bibitem{ie-virsh} 平良 太貴 and 河野 真治,OS 授業向けマルチユーザ VM 環境の構築,研究報告システムソフトウェアとオペレーティング・システム(OS)(2014). \bibitem{kido} 城戸翔太,安里悠矢,城間政司,長田智和,谷口祐治,"情報系学科における教育情報システムの構築及び運用管理に関する取り組み",研究報告インターネットと運用技術(IOT)(2016). \bibitem{podman} Podman,https://podman.io/,2021/1/4. diff -r 044832c47f54 -r 00b7356a0706 paper/chapter/technology_overview.tex --- a/paper/chapter/technology_overview.tex Fri Jan 08 17:46:34 2021 +0900 +++ b/paper/chapter/technology_overview.tex Tue Jan 12 21:14:59 2021 +0900 @@ -76,7 +76,7 @@ Podman は OCI準拠のコンテナランタイムに依存するため, 前述した Docker など他のコンテナエンジンと互換性を持つ。 また, Podman CLI は Docker CLI と同じ機能を提供する。 Podman はコンテナとイメージストレージ, コンテナランタイムを介してLinxuカーネルと直接対話することで, デーモンレスで実行される (図\ref{fig:podman})。 -Podman の制御かにあるコンテナは, 特権ユーザ又は非特権ユーザのいずれかによって実行することができる。 +Podman の制御下にあるコンテナは, 特権ユーザ又は非特権ユーザのいずれかによって実行することができる。 \begin{figure}[H] \begin{center} \includegraphics[width=120mm]{fig/podman.pdf} @@ -86,10 +86,57 @@ \end{figure} \section{Singularity} +Singularity\cite{singu} とは, HPC環境向けに設計されたコンテナプラットフォームである。 +Singularity は マルチユーザに対応しており,コンテナ内での権限は実行ユーザの権限を引き継ぐため,ユーザに特別な権限の設定が必要ない。 +またデフォルトで, \$HOME, /tmp, /proc, /sys, /dev がコンテナにマウントされ, サーバ上の GPU を簡単に利用できる。 +コンテナイメージは Singularity Image Format (以下, sif) と呼ばれる単一ファイルベースのため, アーカイブや共有が容易である。 \section{Ceph} +Ceph は, RedHat 社が開発, 提供する分散ファイルシステムである。 +Ceph は分散オブジェクトストレージであるRADOS (Reliable Autonomic Distributred Object Storage) がベースとなっている (図\ref{fig:ceph})。 +RODOS はクラスタに保存されるデータの管理を待ち受け, 保存オブジェクトへのアクセス方法として Object Gateway, RADOS Block Device (以下, RBD), CephFS がある。 +Object Gateway は HTTP REST 経由でクラスタに保存されるオブジェクトへ直接アクセスが可能である。 +RBD はブロックデバイスとしてアクセスが可能で, libvirt を組み合わせてVMのディスクとして使用できる。 +また, RBDドライバを搭載したOSにマップし ext4 や XFS などでフォーマットして利用できる。 +CephFS は POSIX互換のファイルシステムである。 +\begin{figure}[H] + \begin{center} + \includegraphics[width=120mm]{fig/ceph.pdf} + \end{center} + \caption{Cephのアーキテクチャ} + \label{fig:ceph} +\end{figure} + +\par +Ceph では, ノードとはクラスタを構成するサーバであり, ノードでは以下の4つのデーモンが実行できる。 +\begin{itemize} + \item Ceph Monitor + \item Ceph OSD + \item Ceph Manager + \item Ceph Metadata Server +\end{itemize} + +\subsection{Ceph Monitor} +Ceph Monitor (以下, MON) ノードはクラスタのヘルス状態に関する情報, データ分散ルールを維持する。 +障害が発生した場合, クラスタ内のMONノードでPaxosという合意アルゴリズムを使用して, どの情報が正しいかを多数決で決定する。 +そのため, 奇数個のMONノードを設定する必要がある。 + +\subsection{Ceph OSD} +Ceph OSD (以下, OSD) は物理ストレージになる。このデーモンは1台のHDDなどの物理ストレージに対して, 1つのデーモンが動作する。 +OSD は MON と通信し, OSD デーモンの状態を提供する。 + +\subsection{Ceph Manager} +Ceph Manager (以下, MGR) ノードはクラスタ全体から状態情報を収集する。 +MGR は MON と共に動作し, 外部のモニタリングシステムや管理システムのインターフェースとして機能する。 + +\subsection{Ceph Metadata Server} +Ceph Metadata Server (以下, MDS) ノードは CephFS のメタデータを保存する。 + \section{Ansible} +Ansible\cite{ansible} は RedHat 社が開発, 提供するシステム構成, ソフトウェアの展開などを行う自動化ツールである。 +Ansible では一連の処理を YAML 形式のファイルで記述し, エージェントレスで SSH を介してタスクを実行する。 +そのため, インフラストラクチャをコードとして残すことができる。 \section{Slurm} diff -r 044832c47f54 -r 00b7356a0706 paper/fig/ceph.pdf Binary file paper/fig/ceph.pdf has changed diff -r 044832c47f54 -r 00b7356a0706 paper/fig/system.graffle Binary file paper/fig/system.graffle has changed diff -r 044832c47f54 -r 00b7356a0706 paper/final_thesis.pdf Binary file paper/final_thesis.pdf has changed