view paper/chapter4.tex @ 8:bc41d38f98d0

update pdf file
author taiki
date Fri, 06 Feb 2015 11:07:58 +0900
parents 9c08c451a8fc
children 741bd4ff00c0
line wrap: on
line source

\chapter{Shien システムでの管理方法}

本章では、Shien システムを用いたシステム管理の方法と、 VM やコンテナ操作方法を述べる。

\section{LDAP による権限管理}

VMWare vSphere Client では VM やシステムに対する権限を細かく設定できる。しかし各利用者に対して適切な権限を振るのは多くの時間を要するため、自動的に権限を配布する必要がある。

教育用の計算機システムでは、権限は管理者と利用者のみに分けられる。そのため権限の配布は同一の権限を利用者に一度に振るのがよい。

本研究で提案する計算機システムでは、LDAP から取得したアカウントによって権限を配布する。情報工学科では学生や教師などの利用者アカウントを LDAP で管理しており、そのアカウントをそのまま権限配布に使用することができるためである。

またデータや VM のイメージを保存する Fibre Channel ストレージに各利用者へディレクトリを自動的に作成し、そのディレクトリにそれらを保存する。ディレクトリに各利用者と管理者だけがアクセスできるように権限を設定する。

Shien システムの利用者は他の利用者の VM やコンテナに対して操作を行うことができず、またデータや VM を操作・改編することができない。

そのように、LDAP を使用して権限を管理することが可能である。

\section{ie-virsh で使用する VM イメージのアップロード}

利用者は Fibre Channel ストレージに VM イメージを保存する。この計算機システムでは各 VM 所有者ごとにディレクトリを分けて使う。

VM 使用者は手元の PC で VM イメージを作成し、実験・開発環境を作成する。次に VM イメージを Fibre Channel ストレージにアップロードする。アップロード先は Fibre Channel ストレージ上にある所有者自身のディレクトリである。ie-virsh は VM を設定する XML ファイルをテンプレートから作成するため、VM イメージの形式は固定である。そのため、VM イメージをテンプレートに合わせた形式にしなければならない。

アップロードした後は、ie-virsh で XML テンプレートを使用したドメインを作成する。ie-virsh は virsh のドメインを自動的に定義することができる、define コマンドを持っており、そのコマンドを利用する。

ドメインの定義は下記のように行う。

\begin{verbatim}
% ie-virsh define [01 - 04]
\end{verbatim}

ドメインは 01 から 04 までの名前をつけることができる。

\section{VM の起動}

ie-virsh を使用して、VM を起動する。
起動するには、下記の操作を行う。

\begin{verbatim}
% ie-virsh start [01 - 04]
\end{verbatim}

また、VM に適切な設定を行うことによって、console でログインすることができる。
console を使用するには下記の操作を行う。

\begin{verbatim}
% ie-virsh console [01 - 04]
\end{verbatim}

各 VM 所有者自身で console にアクセスすることができるため、間違った VM の設定を適用したとしても管理者に連絡する必要はない。console でアクセスし、正しい設定に変更することができる。

\section{VM のリストの取得}

VM 所有者は ie-virsh を使用して自身の持つ VM の一覧を見ることができる。下記の操作を行う。

\begin{verbatim}
% ie-virsh list
\end{verbatim}

virsh はオプションで --all をつけることによって停止した VM も一覧することができるが、ie-virsh はサーバ用途以外の実験にも使用されるため、VM を停止する場合も多い。そのため ie-virsh の  list コマンドではオプションを付けなくても停止している VM が一覧に含まれる。

\section{VM の停止}

VM の停止は virsh と同じである。

\begin{verbatim}
% ie-virsh destroy [01 - 04]
\end{verbatim}

virsh の destroy コマンドをラップしているため、VM を強制的に停止させる。

\section{VM への console ログイン}

VM へ console でログインするには、下記の操作を行う。VM が console から見れるよう、正しく設定しておく必要がある。

\begin{verbatim}
% ie-virsh console [01 - 04]
\end{verbatim}

VM へリモートログインできなくなった時に、VM の設定を修正するために使用させる。管理者は console ログインするための連絡を使用者とやりとりする必要はない。

\section{VM のブレードサーバ間の移動}

ブレードサーバは GFS2 でフォーマットされた Fibre Channel ストレージを共有している。Shien システムではそのストレージに VM イメージを配置する。VM イメージはどのブレードサーバからでも起動することができる。

VM を他のブレードサーバへ移動するには、VM の XML 設定ファイルを移動先のブレードサーバへコピーし、virsh のコマンドで define する。

Fibre Channel ストレージにある VM イメージのパスが同じであれば、そのまま起動することができる。

また VM イメージは共有しているため、移動元の起動中の VM の VM イメージを使って移動先のブレードサーバで VM を起動することも可能となっている。

virsh の機能として、ライブマイグレーション機能がある。GFS2 はライブマイグレーションに対応している。ライブマイグレーション機能を利用することで、他のブレードサーバへ起動中の VM を起動したまま移動させることが可能である。

\section{Kernel debug 方法}

Kernel debug をするためには、下記のコマンドを実行する。

\begin{verbatim}
% ie-virsh debug
\end{verbatim}

実行すると Port の Pool から Port を取得する。取得した Port を使用し Kernel debug のための VM が起動する。 VM の起動後に自動的に gdb が立ち上がる。取得した Port を使い、gdb から Kernel debug のための VM に接続する。

\section{Docker の起動}

本研究で新たに実装を行った ie-docker は Docker のラッパーとなっている。任意の Process name を下記のコマンドを使用して割り当てる。

\begin{verbatim}
% ie-docker run -it --name [process name] [image name] [exec command]
\end{verbatim}

Process name は任意に割り当てることができる。また process name はアカウント名が ie-docker によって補完されるため、他のアカウントと被ることはない。

\section{Docker からの iSCSI ストレージの使用}

Docker の特徴として、Commit を行なわずにコンテナを止めてしまうと、コンテナ内部に保存していたデータが消える。つまり Commit 前にコンテナ上に追加されたデータを保つためには、コンテナの外部にデータを保存しておかなければならない。

Shien システムでは、iSCSI で接続されたストレージにコンテナのデータを保存する。そうすることによってデータを保護することができ、またコンテナのイメージ内に動作に必要でないデータを配置しなくてよい。

Docker は、ホストのディレクトリをコンテナ内部のディレクトリにマッピングすることができる。ie-docker もその機能を持つ。-v オプションを使い、下記のように Docker コンテナを実行する。

\begin{verbatim}
% ie-docker run -it -v [directory:container directory] \ 
    --name [process name] fedora:20 /bin/bash
\end{verbatim}

実行されたコンテナはホストのディレクトリにマッピングされた、任意の名前のディレクトリを参照することができる。iSCSI ストレージ上にアプリケーションのリポジトリを配置し、コンテナでそのリポジトリ上のアプリケーションを動作させる。