annotate shoshi-paper.tex @ 2:d9e526a0e9ff

added description of webvirt and virtualization.
author Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
date Sun, 07 Aug 2011 22:51:40 +0900
parents 600b5de23cc6
children d779b8753c55
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 % Sample file for the use of compsoft style file.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \documentclass[T]{compsoft}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 % Preamble
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 % 「コンピュータソフトウェア」誌に掲載される論文の場合,次で
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 % 巻数,号数,開始ページ,終了ページを指定する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 %\volNoPp{16}{5}{78}{83}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 % ワークショップによる推薦論文の場合,ワークショップ名を指定する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 % \suisen{ワークショップ名}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 % 特集の場合,特集のタイトルを与える.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 % \tokushu{特集のタイトル}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 % 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 % 大会の回数は計算される.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \taikai{2011}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 % ここに,使用するパッケージを列挙する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \usepackage[dvipdfm]{graphicx}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \usepackage{mediabb}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \usepackage{url}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 % ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 % 再定義は原則として避けること.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 \begin{document}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 % 論文のタイトル
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 \title{Cassandraと非破壊的構造を用いたCMSのスケーラビリティ検証環境の構築}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 % 著者
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 % 和文論文の場合,姓と名の間には半角スペースを入れ,
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 % 複数の著者の間は全角スペースで区切る
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 \author{玉城 将士 \and 河野 真治
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 % ここにタイトル英訳 (英文の場合は和訳) を書く.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 \ejtitle{Constructing Scalability Evaluation Environment for CMS using Monotonic-Tree Operation and Cassandra}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 % ここに著者英文表記 (英文の場合は和文表記) および
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 % 所属 (和文および英文) を書く.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 % 複数著者の所属はまとめてよい.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 \shozoku{Shoshi TAMAKI, Shinji KONO}{琉球大学理工学研究科情報工学専攻}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 {Dept. \ of Information Engineering, Ryukyu University}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 % 出典情報は \shutten とすれば出力される.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 %\shutten
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 % 受付年月日,記事カテゴリなどは自動的に生成される.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 %\uketsuke{1999}{8}{3}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 % その他,脚注に入れるものがあれば,\note に記述する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 %\note{脚注に入れる内容}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 }
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 % 和文アブストラクト
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 \Jabstract{%
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 本研究では,スケーラビリティのあるCMSを開発するために,PCクラスタを利用したスケーラビリティの検証環境を構築し,ロックフリーな木構造である非破壊的木構造・多段キャッシュ・Cassandraを用いた設計と実装を行って来た.今回は,実装したシステムのスケーラビリティを検証するため,構築したスケーラビリティの検証環境を用いてベンチマークを取り,スケーラビリティがあるか確認するために,環境構築を行った.また,非破壊的木構造をバランス木に応用し,バランス木の性能であるO(log N)を保ちつつ並列に読み・書き込みが可能である辞書アルゴリズムの提案をする.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 }
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 % 英文アブストラクト(大会論文には必要なし)
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 % \Eabstract{}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 \maketitle
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 \section{はじめに}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73  Cassandraは複数のサーバーで動作を想定した分散データベースである.本研究は,Cassandraの検証と非破壊的木構造を用いたスケーラビリティのあるCMSの設計と開発を行った.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 非破壊的木構造を用いたCMSのとは,木構造で表すことの出来るコンテンツを編集する際に,編集元の木構造を破壊することなく編集するアルゴリズムである.これを利用してCassandra上に非破壊的木構造を構築しCMSを実装することができた.\\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75  本研究では,開発したCMSのスケーラビリティの検証を行うため,仮想環境を用いた検証環境の構築と管理ソフトウェアを開発した.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 \section{分散データベースCassandra}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 Cassandraは, FaceBookが自社のために開発した分散Key-Valueストアデータベースであり,Dynamo\cite{DYNAMO}とBigTable\cite{BIGTABLE}を合わせた特徴を持っている. 2008年にオープンソースとして公開され, 2009年にApache Incubatorのプロジェクトとなった.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 2010年にはApacheのトップレベルプロジェクトとなり, 現在でも頻繁にバージョンアップが行われている. \\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 \section{非破壊的木構造}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80  非破壊的木構造とは,木構造を編集する際に編集元の木構造を破壊することなく,新しく木構造を構築する.新しい木構造のルートノードを置き換えることにより編集する方法である.\\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 非破壊的に変更することで,編集元の破壊することなく編集することが出来るため,木構造の整合性を保ちつつ変更することが可能になる.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 \subsection{木構造の破壊的変更}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83  従来の破壊的木構造は,存在する木構造を書き換えて編集する.以下の様な操作を行う.\\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 \includegraphics[scale=0.5]{dest-tree1.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 \caption{木構造の破壊的変更例}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 \label{fig:dest-tree1}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 \end{figure}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91  図\ref{fig:dest-tree1}の操作では,ノード$F$の内容をノード$G$に書き換える操作を行った.破壊的変更では,単純に編集したいノードを書き換えることにより行われる.この操作では,編集時に木を参照している処理がある場合,参照されている木構造を破壊するため,参照を開始した自転での木構造の整合性が破壊されるという問題が起きる.\\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 \includegraphics[scale=0.4]{dest-tree2.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 \caption{破壊的変更の問題点}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 \label{fig:dest-tree2}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 \end{figure}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 この問題を解決するためには,木構造の操作に排他制御を取り入れてロックする必要がある.しかし,その方法ではスケーラビリティを確保できるとは考えられないため,非破壊的な変更を方法を用いて木構造を編集する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 \subsection{木構造の非破壊的変更}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 木構造の非破壊的な変更は,編集元の木構造を破壊せずに編集を行う,編集の様子を図\ref{fig:mono-tree1}に示す.図\ref{fig:mono-tree1}では図\ref{fig:dest-tree1}と同様にノード$F$の内容をノード$G$に書き換える処理を行っている.\\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 \includegraphics[scale=0.4]{mono-tree1.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 \caption{木構造の非破壊的変更例}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 \label{fig:mono-tree1}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 \end{figure}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109  この方法での編集は以下の手順を用いて行われる.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 \begin{enumerate}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 \item{ルートノードであるノード$A$から編集対象であるノード$F$までのパスをコピーする.(ノード$A,C,F$をコピーする)}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 \item{パスに含まれないノードは編集元のノードと共有する.(コピーノード$A$からノード$B$へリンクを作成する)}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 \item{編集対象であるノード$F$は編集せず,コピーしたノード$F$をノード$G$へと編集する.}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 \item{木構造のルートノードをノード$A$からコピーしたノード$A$へと置き換える.}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 \end{enumerate}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 この手順では,元の木構造は破壊されることは無い,そのため木の閲覧者が存在していても閲覧している木構造の整合性が破壊されることはない.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 よって,並列に読み書きを行うことが出来る.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 \subsection{応用例:非破壊的木構造を用いた二分木辞書}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120  この方法の応用例として非破壊的木構造とバランス木を用いた二分木辞書を考えることが出来る.二分木辞書とは二分探索を用いたO(lg n)を保証する辞書アルゴリズムである.二分木辞書では,バランスのとれた木構造を維持するためにバランス木のアルゴリズムを利用する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 これらのアルゴリズムと非破壊的木構造を組み合わせることにより,並列に読み書きを行うことが出来る辞書を作成することが出来る.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 また,この辞書アルゴリズムの利点として辞書全体のコピーにかかる計算量がO(1)で済むことも利点の一つである.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 \subsubsection{AVL-Treeを用いた非破壊的二分木辞書}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124  実装例として,AVL-Treeを用いた非破壊的二分木辞書を紹介する.この辞書は読み書きがO(lg n)かつ辞書の複製のコストがO(1)で有ることを保証する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 \begin{enumerate}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 \item{辞書の読み込み}\\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127  非破壊二分木辞書の読み込みは通常の二分木と同様で,ルートノードよりキーの大小関係を比較し値を検索する.そのため,省略する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 キーを検索する際に,二分木辞書で使われている木構造は破壊されることがないため,並列に行うことが出来き,スレッドセーフである.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 \item{辞書の書き込み}\\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130  非破壊辞書の書き込みは以下の手順で行われる.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 \begin{enumerate}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 \item{二分木探索より,書きこむ場所を特定する.この時,同時に通過したノードのコピーを行う.}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 \includegraphics[scale=0.4]{mono-dic1.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 \caption{手順1:ノードのコピーと書き込み}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 \label{fig:mono-dic1}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 \end{figure}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 \\ この例では,木構造に新しくノード$7$を追加する.そのため,編集元の二分木より$50,25,15$のノードをコピーする.他の影響のない$100,35$は共有する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 \item{ローカルにコピーしたノードを編集し,書き込みむ}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 \\ 次に,コピーした木構造を編集し書き込みを行う.図\ref{fig:mono-dic1}の例ではノード$15$の右部分に新しくノード$7$を追加する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 \item{コピーし編集したノードよりルートノードまでを走査し,木の回転が必要な場合は回転させる.}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 \includegraphics[scale=0.4]{mono-dic2.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 \caption{手順2:コピーした木構造のバランス}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 \label{fig:mono-dic2}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 \end{figure}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 \\ 新しく構築した二分木のバランスさせるために木構造を追加したノードよりルートノードまで辿りバランスを確認する.図\ref{fig:mono-dic2}ではノードを$7-15-25-50$とルートへとバランスを確認し,回転が必要であるノード$50$の位置で木の回転を行う.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 \item{CASを用いて,ルートノードへの参照を入れ替える.}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 最後に,二分木辞書がルートノードとして保持している編集元の木構造を,新しい木構造へと置き換える.この時CASを使用することによりアトミックに置き換える.他のスレッドがこの木構造を編集し置き換えていた場合,この処理は失敗する.その場合,再度,非破壊的に編集を行う.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 \includegraphics[scale=0.4]{mono-dic3.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 \caption{手順3:非破壊的に編集した木構造の適用}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 \label{fig:mono-dic2}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 \end{figure}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 \end{enumerate}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 \item{辞書のコピー}\\
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163  非破壊辞書のコピーは,単にルートノードを共有するだけで行うことが出来る.木構造は破壊されないため,元の木構造は不変である.共有した木構造を元にローカル新しい木構造を作成していくため,問題は起きない.\\よって,この場合の計算量は定数でありO(1)である.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 \end{enumerate}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 この二分木辞書は主に,辞書をコピーするときに効果を発揮する.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 \section{非破壊的木構造を用いたCMS}
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
168  本研究では,非破壊木構造を用いてスケーラビリティのあるCMSの設計と実装を行った.本システムではコンテンツを木構造で表現する.Cassandra上に木構造を構築し,それを非破壊的に編集する.図\ref{fig:tree-cms1}に概略図を示す.
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
169 \begin{figure}[!htbp]
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
170 \begin{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
171 \includegraphics[scale=0.2]{tree-cms1.pdf}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
172 \end{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
173 \caption{システムのアーキテクチャ}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
174 \label{fig:tree-cms1}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
175 \end{figure}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
176 \\本システムでは,Cassandra上に木構造を構築するサーバー(API Server)を設ける,サーバーの提供するAPIを用いてコンテンツを非破壊的に操作することができる.
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
177 WebServerはAPI Serverを利用してコンテンツを操作しコンテンツの配置を記述したレイアウトを用いてレンダリングを行い,木構造を編集する際には専用のエディタを提供する.(図\ref{fig:tree-cms2})
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
178 また,各段階(API Server , WebServer , Browser)で木構造のキャッシュを保持し,必要になったときのみキャッシュを同期・マージさせる.(図\ref{tree-cms3})こうすることでスケーラビリティを確保することが出来ると考えられる.
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
179 \begin{figure}[!htbp]
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
180 \begin{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
181 \includegraphics[scale=0.35]{tree-cms2.pdf}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
182 \end{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
183 \caption{木構造のレンダリングと編集}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
184 \label{fig:tree-cms2}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
185 \end{figure}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
186 \begin{figure}[!htbp]
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
187 \begin{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
188 \includegraphics[scale=0.35]{tree-cms3.pdf}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
189 \end{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
190 \caption{多段キャッシュとマージ処理}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
191 \label{fig:tree-cms3}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
192 \end{figure}
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 \section{検証環境の構築}
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
194 検証では,前回用いたPCクラスタがシステム更新のために使用不可になってしまったため,新しく導入されたブレードサーバーによる仮想環境において検証環境を構築する.
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
195 仮想環境のホストとして利用するサーバーを表\ref{tab:bldsv-info}に示す.
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
196 \begin{table}[!htbp]
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
197 \caption{検証環境に用いたサーバー}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
198 \label{tab:bldsv-info}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
199 \begin{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
200 \begin{tabular}{|c|c|c|c|} \hline
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
201 サーバー名 & CPU & メモリ & 仮想化 \\ \hline \hline
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
202 server01 & Xeon x2 & 139GB & KVM \\ \hline
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
203 \end{tabular}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
204 \end{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
205 \end{table}
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 \subsection{仮想環境}
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
207 説明する必要あり?
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 \subsection{仮想化管理ツールの実装}
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
209 仮想環境で複数の仮想マシンを操作する場合,仮想マシン個々の設定を物理マシンのコンソールより操作するのは大変困難な作業であり,仮想化管理ツールの利用が必須であると考えられる.\\
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
210 そこで,本研究では初めに仮想環境を管理するツールを開発し,検証環境の構築に利用する.
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
211 \subsubsection{libvirt}
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
212 libvirtとは,複数ある仮想環境においてノードをリモートより共通で十分に安全な安定した管理方法を提供するライブラリである.この場合のノードは1台の物理的なマシンであり,ドメインは仮想マシンを指す.
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
213 様々な言語とハイパーバイザ,ユーザーの認証方法に対応している.
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
214 \begin{enumerate}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
215 \item{ハイパーバイザ}\\
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
216 KVM,Xen,VirtualBox,VMWare,etc..
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
217 \item{プログラミング言語}\\
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
218 C,Python,C\#,Java,Perl,Ruby,PHP,etc..
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
219 \end{enumerate}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
220 libvirtを用いた仮想化管理ツールは複数存在している,以下にその一例を示す.
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
221 \begin{table}[!htbp]
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
222 \caption{libvirtを用いた管理ツール}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
223 \begin{center}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
224 \begin{tabular}{|c|c|} \hline
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
225 virsh & CUI \\ \hline
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
226 virt-manager & GUI \\ \hline
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
227 oVirt & Web \\ \hline
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
228 \end{tabular}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
229 \end{center}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
230 \end{table}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
231 \\libvirtを用いた管理ツールは複数存在するが,インストールが複雑であり,必要のない機能を実装してることが多い.そこで,導入が用意であり,かつ十分な機能を提供するウェブ上の管理ツールを実装する.
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
232 \subsubsection{webvirt}
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
233 webvirtとは,本研究室で開発した仮想環境のウェブ管理ツールである.ウェブアプリケーションフレームワークであるCakePHPとlibvirt-phpを用いて開発した.\\
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
234 webvirtは,シンプルで十分なシングルノード上でのウェブ仮想化管理ツールを目指して開発した.インストールに必要なのはPHPが動作可能なウェブサーバー・PHP・libvirt-phpのみであり,主な機能として,以下の機能を提供する.
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
235 \begin{itemize}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
236 \item{VNCViewer(TightVNCViewer2)}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
237 \item{仮想マシンのシャットダウン}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
238 \item{仮想マシンの起動}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
239 \item{仮想マシンの定義・変更}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
240 \item{ストレージプールの管理}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
241 \item{ネットワークの管理}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
242 \end{itemize}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
243 また,シングルノードのみを管理する目的で開発されているため,ライブマイグレーションなどの機能は実装していない.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
244 \section{まとめ}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
245
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 \end{document}