comparison paper/chapter3.tex @ 11:a7cd328c44f2

fix pdf
author taiki
date Thu, 12 Feb 2015 18:06:37 +0900
parents 741bd4ff00c0
children b4b5eb3b7321
comparison
equal deleted inserted replaced
10:cbc7ac08e590 11:a7cd328c44f2
4 4
5 Shien システムは、複数のアカウントの計算機資源の使用を管理できるよう補助するシステムである。アカウント所有者が開発したアプリケーションのデプロイや、コンテナ・VM を使った実験を行える環境を提供する。 5 Shien システムは、複数のアカウントの計算機資源の使用を管理できるよう補助するシステムである。アカウント所有者が開発したアプリケーションのデプロイや、コンテナ・VM を使った実験を行える環境を提供する。
6 6
7 \section{Fedora} 7 \section{Fedora}
8 8
9 Shien システムは情報工学科の次期システムに合わせて設計する。そのためには最新のソフトウエアを取り入れ、次期システムが稼働する際に安定になっているものを検証する必要がある。 9 Shien システムは本学科の次期システムに合わせて設計する。そのためには最新のソフトウエアを取り入れ、次期システムが稼働する際に安定になっているものを検証する必要がある。
10 10
11 Fedora は最新の技術を積極的に取り込んでおり、その成果を Ret Hat Enterprise Linux に取り込まれるといった検証目的の位置づけになっている。 11 Fedora は最新の技術を積極的に取り込んでおり、その成果を Ret Hat Enterprise Linux に取り込まれるといった検証目的の位置づけになっている。
12 12
13 最新の Fedora を使用することによって、教育用 OS 管理システムで使われる OS やソフトウエアを予測し、また検証することが可能である。そのため今回のシステムでは Fedora を利用し、次期システムが稼働する際の環境を構築し、検証を行った。 13 最新の Fedora を使用することによって、教育用 OS 管理システムで使われる OS やソフトウエアを予測し、また検証することが可能である。そのため今回のシステムでは Fedora を利用し、次期システムが稼働する際の環境を構築し、検証を行った。
14 14
62 62
63 クラスタを構成するノード間で LVM を使用する場合は、CLVM を使う。 63 クラスタを構成するノード間で LVM を使用する場合は、CLVM を使う。
64 64
65 LVM のクラスタリング拡張機能のセットである。一部のホストが変更した LVM 情報を他のホストに通知する。クラスタは LVM を使用した共有ストレージを管理できるようになる。GFS2 は CLVM を利用して複数ノードからのアクセスに対応する。 65 LVM のクラスタリング拡張機能のセットである。一部のホストが変更した LVM 情報を他のホストに通知する。クラスタは LVM を使用した共有ストレージを管理できるようになる。GFS2 は CLVM を利用して複数ノードからのアクセスに対応する。
66 66
67 クラスタで Volume Group を使用する場合は、Volume Group にクラスタに対応するフラグの設定を行わなければならない。
68
69 \section{構成} 67 \section{構成}
70 68
71 図\ref{fig:gfs2cluster} がブレードサーバの構成である。複数のブレードサーバでクラスタを構成する。クラスタの構成には corosync を使う。クラスタのノード同士は corosync を使用し、互いに通信を行う。 69 図\ref{fig:gfs2cluster} がブレードサーバの構成である。サーバ全てに Fedora を導入し、クラスタを構成する。クラスタの構成には corosync を使う。クラスタのノード同士は corosync を使用し、互いに通信を行う。
72 70
73 \begin{figure}[htpb] 71 \begin{figure}[htpb]
74 \begin{center} 72 \begin{center}
75 \includegraphics[scale=0.7]{figures/gfs2cluster.pdf} 73 \includegraphics[scale=0.7]{figures/gfs2cluster.pdf}
76 \caption{GFS2 Cluster} 74 \caption{GFS2 Cluster}
77 \label{fig:gfs2cluster} 75 \label{fig:gfs2cluster}
78 \end{center} 76 \end{center}
79 \end{figure} 77 \end{figure}
80 78
81 corosync 79 iSCSI ディスクに LVM で使用できるパーティションを割り当てる。パーティションを一つにする場合は、Physical Volume と Volume Group、Logical Volume は全て一つである。Logical Volume を GFS2 でフォーマットする。フォーマット時に journaling を指定しなければならない。journaling 数は、GFS2 を参照する計算機の数である。
80
82 GFS2 でフォーマットされた一つの iSCSI ストレージを共有し、iSCSI ストレージに VM のディスクイメージ、Docker のアプリケーションを保存する。これにより複数のブレードサーバ間で VM のイメージの共有や移動、コンテナイメージの移動を簡単に行える。 81 GFS2 でフォーマットされた一つの iSCSI ストレージを共有し、iSCSI ストレージに VM のディスクイメージ、Docker のアプリケーションを保存する。これにより複数のブレードサーバ間で VM のイメージの共有や移動、コンテナイメージの移動を簡単に行える。
83 82
84 \section{ie-virsh による資源の制限}
85
86 複数のアカウントで計算機資源を共有する場合、管理者による資源の制限が必須である。VM の使用が主な ie-virsh では過剰なディスク容量やメモリ、CPU の確保を防がなければならない。
87
88 ie-virsh がラップしている virsh は、XMLファイルを使って VM を管理している。XML ファイルには VM のパラメータが記述されている。
89
90 ie-virsh では学生が使用する VM が使用する資源を制限するために、予めこの XML ファイルのテンプレートを作成し利用している。
91
92 XML テンプレートで予め制限されている設定は、以下のようになる。
93
94 \begin{itemize}
95 \item ネットワークの設定
96 \item I/O 設定
97 \item VM イメージのフォーマット
98 \item CPU 数
99 \item メモリ容量
100 \end{itemize}
101
102 これによって学生が使用する背資源を制限し、過剰なメモリや CPU の確保を防ぐ。
103 また学生が VM を多く作成するという形で資源を利用してしまうことを防ぐために、作成し操作できる VM の数を4台に制限した。
104 83
105 \section{ie-virsh debug} 84 \section{ie-virsh debug}
106 85
107 本研究では、ie-virsh の新しい機能として debug コマンドの実装を行った。Linux Kernel のソースコードを読む方法は2つ挙げられる。Linux kernel をダウンロードし、そのソースコードをそのまま読むという手法と、gdb で逐次ソースコード追って読むという手法である。 86 本研究では、ie-virsh の新しい機能として debug コマンドの実装を行った。Linux Kernel のソースコードを読む方法は2つ挙げられる。Linux kernel をダウンロードし、そのソースコードをそのまま読むという手法と、gdb で逐次ソースコード追って読むという手法である。
108 87
121 \end{figure} 100 \end{figure}
122 101
123 102
124 \section{Docker} 103 \section{Docker}
125 104
126 Docker とは、Docker 社が開発してるオープンソースのコンテナ型仮想化ソフトウエアである。Linux 上で Linuxコンテナ (LXC) を活用し、コンテナ型の仮想環境を作成する。図\ref{fig:container} は Docker のアーキテクチャである。 105 Docker とは Docker 社が開発してるオープンソースのコンテナ型仮想化ソフトウエアである。Linux 上で Linuxコンテナ (LXC) を活用し、コンテナ型の仮想環境を作成する。図\ref{fig:container} は Docker のアーキテクチャである。
127 106
128 \begin{figure}[htpb] 107 \begin{figure}[htpb]
129 \begin{center} 108 \begin{center}
130 \includegraphics[scale=0.7]{figures/container.pdf} 109 \includegraphics[scale=0.7]{figures/container.pdf}
131 \caption{Container architecture} 110 \caption{Container architecture}
184 \end{center} 163 \end{center}
185 \end{figure} 164 \end{figure}
186 165
187 \section{ie-docker による資源の制限} 166 \section{ie-docker による資源の制限}
188 167
189 Docker はコンテナごとに使用するメモリの上限を指定することができる。ie-docker では、コンテナのメモリ使用量の制限をユーザ全てに管理者が付与できるよう実装した。 168 Docker はコンテナごとに使用するメモリの上限を指定することができる。ie-docker では、コンテナのメモリ使用量の制限をユーザ全てに管理者が付与できるよう実装した。docker run で Docker のコンテナを起動する。起動時に -m (memory) を指定することでメモリの指定が可能だが、今回は ie-docker でラップし -m (memory) を自動的に付与するよう実装を行った。
190 169
170 また ie-virsh と同様に、1 ユーザが使用可能なコンテナの数を 8 つに制限した。
191 171
192 \section{クラウド上での使用} 172 \section{クラウド上での使用}
193 173
194 クラウドサービスではコンテナをユーザに使用させる。コンテナが VM と比べて高速なためである。ie-docker は LDAP を参照してユーザに与える資源を制限しているため、クラウド上でも本学科の LDAP を利用する必要がある。 174 クラウドサービスではコンテナをユーザに使用させる。コンテナが VM と比べて高速なためであり、またクラウドサービス上へ VM イメージを送信するよりもデプロイしやすいためである。ie-docker は LDAP を参照してユーザに与える資源を制限しているため、クラウド上でも本学科の LDAP を利用する必要がある。