changeset 37:7f339935d89d

fix slide
author taiki <taiki@cr.ie.u-ryukyu.ac.jp>
date Wed, 14 May 2014 14:20:56 +0900
parents 01d20d074d7a
children c73af41b2698
files slide/sigos.html
diffstat 1 files changed, 92 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/slide/sigos.html	Tue May 13 17:45:17 2014 +0900
+++ b/slide/sigos.html	Wed May 14 14:20:56 2014 +0900
@@ -65,21 +65,17 @@
 
 <div class='slide'>
 <!-- _S9SLIDE_ -->
-<h1>研究目的</h1>
-
-<h2>VM を用いた Web サービスの教育</h2>
+<h1>VM を用いた Web サービスの教育</h1>
 
 <ul>
   <li>学生でも Web サービスを開発する技術は必須なものとなっており、学生個人での Web サービス開発でも、手持ちの PC でサービスを構築し外部の VPS やクラウド等へデプロイするワークフローを学ぶ必要がある。</li>
   <li>しかし外部のサービスを利用する場合に、学生が VM の管理を十分に行うことが難しく、コストの支払いも困難である。クラウド上で学生が使う VM の管理方法は、クラウドの運営者と協調して API などを通して実現する必要がある。</li>
   <li>ここでは学校にあるブレードなどのサーバ機器を用いて<font color="red"> Web サービスを学生が構築、開発、運用する方法の実装</font>を行った。</li>
-</ul>
-
 </div>
 
 <div class='slide'>
-  <h1>研究目的</h1>
-  <h2>VM を用いた Web サービスの教育</h2>
+<!-- _S9SLIDE_ -->
+<h1>VM を用いた Web サービスの教育</h1>
   <ul>
     <li>本学の情報工学科で提供している Operating System という授業で、OS について学習し課題を提出させる。課題では VM の環境を学生が設定し、情報工学科の持つブレードサーバ上にアップロードし、プログラムの実装や計測を行う。</li>
     <li>これを教師あるいはシステム管理者が学生の<font color="red">一つ一つの VM に対して対応を行うのは現実的ではない</font>。</li>
@@ -87,21 +83,71 @@
   </ul>
 </div>
 
+
 <div class='slide '>
-  <h1>ie-virsh</h1>
+ <h1>ie-virsh 導入前の VM 管理システム</h1>  
+ <p>ie-virsh を実装し適用する前に、VMWare ESXI / vSphere Client を利用していた。</p>
+ <h2>VMWare ESXI / vSphere Client</h2>  
+ <ul>
+   <li>vSphere Client は仮想環境の統合管理をするプラットフォーム vCenter Server と接続し、管理する</li>
+   <li>vSphere Client は詳細な権限の設定が可能で、複数の学生に対して VM を配布し権限を管理する事ができる</li>
+ </ul>
+ <h2>KVM / ie-virsh への変更</h2>  
+ <ul>
+   <li>手動で権限を移譲する場合は管理者側の操作が増え、学生への権限の配布に手間と時間が掛かる。</li>
+   <li>ie-virsh は権限を移譲するという操作が必要なく、機能も学生が VM を操作するには十分である。</li>
+   <li>KVM / ie-virsh はオープンソースであり、導入コストやランニングコストがかからない</li>
+ </ul>
+ <p>授業 Operating System に使用するために、VMWare ESXI / vSphere Client の代わりに<font color="red">ie-virsh を実装した</font>。授業 Operating System で使用する。</p>
+</div>
+
+<div class='slide '>
+  <h1>目次</h1>
+  <ol>
+    <li>授業 Operating System で要求されること</li>
+    <li>ie-virsh の実装</li>
+    <li>ie-virsh の機能</li>
+    <li>リソースの制限</li>
+    <li>OCFS2 を使った構成</li>
+    <li>ホストのブレードサーバの構成</li>
+    <li>Vagrant Box の使用</li>
+    <li>他の管理ツールとの比較</li>
+    <li>ie-virsh の改善点</li>
+    <li>まとめと今後の課題</li>
+  </ol>
+</div>
+
+<div class='slide'>
+  <h1>授業 Operating System で要求されること</h1>
+  <p>授業 Operating System では、VM を使って課題や実験を行う。VM を学生が操作するにあたっての基本的な要件を満たす必要があり、また教師や管理者側の負担を減らさなければならない。</p>
+  <ul>
+    <li>学生のノート PC で環境設定したイメージを、ブレードサーバ上で VM として動作させることができる</li>
+    <li>作成した VM を、VM を持つ学生だけが削除することができる</li>
+    <li>学生自身の VM のみを起動・停止することができる</li>
+    <li>VM へ ssh でのアクセスが可能である</li>
+    <li>パスワードやフィルタリングなどの安易な設定をチェックし、設定し直すよう勧告する</li>
+  </ul>
+  <p>ie-virsh では以上のことを行えるように実装する必要がある。</p>
+</div>
+
+<div class='slide '>
+  <h1>ie-virsh の実装</h1>
   <p>virsh をラップし、複数の学生が学生自身の VM のみを操作できるように実装した。virsh の個々の VM を操作するのに必要な機能だけを抜き出し、学生に提供する。</p>
+  <h2>libvirt</h2>
+  <p>仮想マシンの制御を抽象化したライブラリで、VM の情報を習得・操作することができる API 群である。KVM の他にも VMWare や Xen など多くのハイパーバイザに対応しており、アクセスすることができる。</p>
   <h2>virsh</h2>
   <ul>
     <li>libvirt にある CLI ツールである</li>
+    <li>libvirt がアクセスできるハイパーバイザを操作できる</li>
     <li>libvirt の API を制御することができる</li>
-    <li>VM の起動や停止、情報の表示、ゲストが接続しているネットワークデバイスの管理をすることができる。</li>
-    <li>別のホストへゲストを移動することができる。</li>
+    <li>VM の起動や停止、情報の表示、ゲストが接続しているネットワークデバイスの管理をすることができる</li>
+    <li>別のホストへゲストを移動することができる</li>
   </ul>
 </div>
 
 
 <div class='slide '>
-  <h1>ie-virsh - ie-virsh の機能</h1>
+  <h1>ie-virsh の機能</h1>
   <p>ie-virsh は virsh にある機能を制限し、学生に VM に必要な基本的な操作を提供する。またこれらの操作を、学生自身の VM 以外の VM に対して適応不可にする。</p>
   <table border=1 align=left>
     <tr>
@@ -135,6 +181,7 @@
   </table>
 </div>
 
+<!--
 <div class='slide '>
   <h1>ie-virsh - 使用手順</h1>
   <ol>
@@ -145,10 +192,21 @@
     <li>ie-virsh start [domain name] でイメージを元に VM を起動</li>
   </ol>
 </div>
+-->
 
 <div class='slide '>
-  <h1>ie-virsh - リソースの制限</h1>
-  <p>学生が個人で大量のリソースを取らないよう、制限する必要がある。</p>
+  <h1>マルチユーザへの対応</h1>
+  <p>各個人のリソースや操作を制限することによって、<font color="red">複数の学生の VM 使用を管理</font>することができる。</p>
+  <ul>
+    <li>学生の Web サービス構築の学習や、授業 Operating System での課題をさせるためにはマルチユーザに対応する必要がある。</li>
+    <li>ホストを、情報工学科の LDAP サーバの情報を利用して、学生が情報工学科のアカウントで ssh ログイン可能な状態に設定した。</li>
+    <li>そうすることで独自にアカウントを登録させる必要がなく、またアカウントは学籍番号で登録されているため管理が用意になる。</li>
+ </ul>
+</div>
+
+<div class='slide '>
+  <h1>リソースの制限</h1>
+  <p>限られたリソースをマルチユーザとして複数の学生に配布するためには、学生が個人で大量のリソースを取らないよう、制限する必要がある。</p>
   <h2>XML template</h2>
   <p>libvirt は VM を、XML の設定ファイルを使用して管理している。ie-virsh ではその XML ファイルを template として用意することにより、リソースを制限した。</p>
   <ul>
@@ -160,18 +218,9 @@
   <p>学生は VM のインスタンスを最大4つまで作ることができる。これは学生が大量にVM を起動し、メモリや CPU を消費することを防ぐためである。</p>
 </div>
 
-<div class='slide '>
-  <h1>ie-virsh - マルチユーザ</h1>
-  <p>各個人のリソースや操作を制限することによって、<font color="red">複数の学生の VM 使用を管理</font>することができる。</p>
-  <ul>
-    <li>学生の Web サービス構築の学習や、授業 Operating System での課題をさせるためにはマルチユーザに対応する必要がある。</li>
-    <li>ホストを、情報工学科の LDAP サーバの情報を利用して、学生が情報工学科のアカウントで ssh ログイン可能な状態に設定した。</li>
-    <li>そうすることで独自にアカウントを登録させる必要がなく、またアカウントは学籍番号で登録されているため管理が用意になる。</li>
- </ul>
-</div>
 
 <div class='slide '>
-  <h1>ie-virsh - OCFS2 を使った構成</h1>  
+  <h1>OCFS2 を使った構成</h1>  
   <p>OCFS2 とは汎用の共有ディスククラスタファイルシステムであり、一つのブロックデバイスを複数の PC から同時に読み書きすることができる。</p>
   <table>
     <tr class="img-table">
@@ -187,7 +236,7 @@
 </div>
 
 <div class='slide '>
-  <h1>ie-virsh - ホストのブレードサーバの構成</h1>  
+  <h1>ホストのブレードサーバの構成</h1>  
   <p>学生は ie-virsh を使用するためにホスト OS へアクセスし、ie-virsh によって学生自身の VM を操作する。</p>
   <table>
     <tr class="img-table">
@@ -202,7 +251,7 @@
 </div>
 
 <div class='slide '>
-  <h1>ie-virsh - Vagrant Box の使用</h1>  
+  <h1>Vagrant Box の使用</h1>  
   <ul>
     <li>VM を使用する際は学生の PC で VM を設定させ、VM イメージをアップロードさせるという形をとった。授業 Operating System では VM を学ぶ環境として学生の PC で Vagrant を使用させた。</li>
     <li>Vagrant Box は Vagrant での、仮想マシンのベースとなるイメージファイルである。</li>
@@ -211,7 +260,7 @@
 </div>
 
 <div class='slide '>
- <h1>他のツールとの比較</h1>  
+  <h1>他のツールとの比較</h1>  
  <h2>OCFS2 と NAS</h2>  
  <ul>
    <li>ie-virsh の動作するサーバ構成では SAN へ複数の PC がアクセスし、同時にアクセスするため ext3・ext4 のようなファイルシステムでフォーマットを行うと整合性が取れない。</li>
@@ -226,24 +275,22 @@
 </div>
 
 <div class='slide '>
- <h1>他のツールとの比較 - 管理ツールとの比較</h1>  
- <h2>vSphere Client</h2>  
- <ul>
-   <li>vSphere Client は仮想環境の統合管理をするプラットフォーム vCenter Server と接続し、管理する。</li>
-   <li>vSphere Client は詳細な権限の設定が可能で、複数の学生に対して VM を配布し権限を管理する。</li>
-   <li>手動で権限を移譲する場合は管理者側の操作が増え、学生への権限の配布に手間と時間が掛かる。</li>
-   <li>ie-virsh は権限を移譲するという操作が必要なく、機能も学生が VM を操作するには十分である。</li>
- </ul>
+ <h1>他の管理ツールとの比較 [1/2]</h1>  
  <h2>Vagrant</h2>  
  <ul>
    <li>KVM をプロバイダとするプラグインを持っているため、KVM を VirtualBox の用にプロバイダとして使用できる。</li>
    <li>Vagrant をマルチユーザへ対応させ、学生が使えるように設定できるか試したが、Vagrant の KVM プラグイン vagrant-kvm が複数でネットワークを使用できるように実装されていなかった。</li>
    <li>また ie-virsh と できることがほぼ同じであり、既存の Box を使える以外の利点はない。</li>
  </ul>
+ <h2>OpenStack</h2>  
+ <ul>
+   <li>クラウド基盤ソフトウエアであり、仮想サーバやブロックストレージ、仮想ネットワークなどのリソースを提供する。</li>
+   <li>OpenStack はマルチユーザではないため、今回の複数の学生の権限を管理するツールとしては適さない。</li>
+ </ul>
 </div>
 
 <div class='slide '>
- <h1>他のツールとの比較 - 管理ツールとの比較</h1>  
+ <h1>他の管理ツールとの比較 [2/2]</h1>  
  <h2>Web サービス実装</h2>  
  <ul>
    <li>ie-virsh とは別に、vSphere の API を使用した Web サービスが情報工学科で利用されている。</li>
@@ -256,21 +303,13 @@
 </div>
 
 <div class='slide '>
- <h1>他のツールとの比較 - 管理ツールとの比較</h1>  
- <h2>OpenStack</h2>  
- <ul>
-   <li>クラウド基盤ソフトウエアであり、仮想サーバやブロックストレージ、仮想ネットワークなどのリソースを提供する。</li>
-   <li>OpenStack はマルチユーザではないため、今回の複数の学生の権限を管理するツールとしては適さない。</li>
- </ul>
-</div>
-
-<div class='slide '>
  <h1>ie-virsh の改善点</h1>  
+ <p>ie-virsh を実装し使用して発見した改善点を挙げる</p>
  <h2>VM のセキュリティチェック</h2> 
  <p>学生が VM のセキュリティ設定をしているか確認し、また VM に対して攻撃や不正なアクセスがないかを検査する機能が ie-virsh に必要である。</p>
  <ul>
    <li>簡単に VM へ侵入されてしまうことを防ぐために、簡易なパスワードやユーザ名が設定されている VM のパスワードやユーザ名を変更するように促す。</li>
-   <li>侵入後に他の VM や外部へ攻撃しているかをチェックするために、VM までのトラフィックを監視し、学生の VM が外部へ不正なトラフィックを送っていないか監視する。</li>
+   <li>侵入後に他の VM や外部へ攻撃しているかをチェックするために、VM までのトラフィックを監視し、学生の VM が外部へ不正なトラフィックを送っていないかをみる。</li>
    <li>外部からの不正なトラフィックを受け取らないように、ファイアウォールなどの機能が適切に設定されているかをチェックする。</li>
  </ul>
 </div>
@@ -298,7 +337,14 @@
    <li>ie-virsh を実装し、既存の管理ツールとの比較を行った。</li>
    <li>学生の権限を制限し、使用できる資源を絞る事によって管理者の手間を減らす事ができ、また学生と管理者のやりとりを減らすこともできた。</li>
    <li>学生は情報工学科のアカウントを持っていれば、Web サービスの構築や課題の学習の為に管理者とのやりとりなしに VM を作成し利用することができる。</li>
-   <li>今後の課題としてセキュリティ上の問題点の解決と、クラウドサービスへのデプロイをあげた。</li>
+ </ul>
+ <h1>今後の課題</h1>
+ <ul>
+   <li>安易なパスワードやユーザ名の設定されている VM を検出し、運営している学生に対して連絡する仕組みを実装する</li>
+   <li>学生の VM に対してスキャンをかけ、適切なフィルタリングかを確認する</li>
+   <li>不正なトラフィックを監視する</li>
+   <li>クラウドサービスへ簡単にデプロイできるようにする</li>
+   <li>起動したまま放置されている VM を見つけ、学生へ報告する仕組みを作る</li>
  </ul>
 </div>