...

0.9MB - 高知工科大学

by user

on
Category: Documents
13

views

Report

Comments

Transcript

0.9MB - 高知工科大学
平成 27 年度
学士学位論文
クラウド環境における
リアルタイム機器制御の実現性の検討
Consideration of feasibility for real-time device
control on cloud environments
1160290
大崎 康平
指導教員
横山 和俊
2016 年 2 月 26 日
高知工科大学 情報学群
要 旨
クラウド環境における
リアルタイム機器制御の実現性の検討
大崎 康平
近年,クラウドの需要と,インターネットに繋がるモノ (IoT 端末) が増加している.その
変化からクラウドで IoT 端末を制御しようという研究や開発が行われている.クラウド環
境では様々なサービスが同一の物理リソース上で動作していることが多く,それらが機器制
御を行うシステムに影響を与えることが考えられる.その場合,他サービスの負荷によって
処理が遅延し,リアルタイム制御が破綻するおそれがある.
本研究では,クラウド環境において,クラウド環境で動作する他のサービスで発生する負
荷の影響を機器制御サービスがどの程度受けるかを調査した.具体的には,他サービスが,
CPU 負荷の高い処理を実行する場合,及び,I/O 負荷の高い処理を実行する場合について
調査した.その結果,クラウド環境は物理環境に比べて,他のサービスの影響を受けにくい
ことが示され,他のサービスの影響という面で見れば,クラウド環境で十分リアルタイム処
理を行うことができることを示す.また,実際にクラウド環境上にライントレース処理を実
装して,動作実験を行い,ライントレースを行うことができたことを示す.
キーワード
クラウドコンピューティング,リアルタイム処理
–i–
Abstract
Consideration of feasibility for real-time device control on
cloud environments
Kouhei OOSAKI
In reacent years, it has been widely used cloud computing environment. In addition,
since the number of IoT devices has increased, reserches for real-time control of devices
on cloud computing environments has been attracting attention. Usually several services
are executed simultaneously on the cloud computing environment. Thus, there is a
possibility that the real-time processing is affected by the other processing.
In this reserch, we clarify the influence of performance of real-time processing by
other services on cloud computing environments. In particular, we investigate influence
the case of high CPU loads and high I/O loads. Experimental results show that cloud
computing environments can reduce influence of other services compare with physical
computing environments. Furthermore, we implement line trace processing that control
running of a robot on cloud servers.
key words
cloud computing, real-time control
– ii –
目次
第1章
はじめに
1
第2章
クラウドを用いた機器制御
4
2.1
クラウドとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2
リアルタイム機器制御とは . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3
関連研究 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
第3章
2.3.1
遠隔制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.2
クラウド遠隔制御 . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
クラウドでのリアルタイム処理評価
10
3.1
評価項目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2
負荷生成処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.3
評価結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
第4章
3.3.1
物理環境での CPU 負荷の影響 . . . . . . . . . . . . . . . . . . . .
14
3.3.2
クラウド環境での CPU 負荷の影響 . . . . . . . . . . . . . . . . . .
14
3.3.3
物理環境でのディスク I/O 負荷の影響 . . . . . . . . . . . . . . . .
16
3.3.4
クラウド環境でのディスク I/O 負荷の影響 . . . . . . . . . . . . . .
16
適用例
20
4.1
システムの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
4.2
ライントレース制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
4.3
負荷生成時の動作実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
おわりに
24
第5章
謝辞
25
– iii –
目次
参考文献
付録 A
26
ライントレース制御のアルゴリズム
– iv –
27
図目次
1.1
クラウドサービスの利用動向 . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
IoT 端末数の推移と予測 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.1
物理環境上での実行時間 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
遠隔制御の概略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3
クラウド遠隔制御の概略 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.4
高負荷発生による影響 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1
物理環境での評価システム . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.2
クラウド環境での評価システム . . . . . . . . . . . . . . . . . . . . . . . .
11
3.3
物理環境上での負荷無し時の CPU 処理実行時間 . . . . . . . . . . . . . . .
14
3.4
物理環境上での負荷有り時の CPU 処理実行時間 . . . . . . . . . . . . . . .
15
3.5
クラウド環境上での負荷無し時の CPU 処理実行時間 . . . . . . . . . . . .
15
3.6
クラウド環境上での負荷有り時の CPU 処理実行時間 . . . . . . . . . . . .
16
3.7
物理環境上での負荷無し時のディスク I/O 処理時間 . . . . . . . . . . . . .
17
3.8
物理環境上での負荷有り時のディスク I/O 処理時間 . . . . . . . . . . . . .
18
3.9
クラウド環境上での負荷無し時のディスク I/O 処理時間 . . . . . . . . . . .
18
3.10 クラウド環境上での負荷有り時のディスク I/O 処理時間 . . . . . . . . . . .
19
4.1
クラウドを用いたライントレース制御システム . . . . . . . . . . . . . . . .
20
4.2
負荷生成無し時のライントレース制御実行時間 . . . . . . . . . . . . . . . .
23
4.3
ディスク I/O 負荷生成時のライントレース制御実行時間 . . . . . . . . . . .
23
A.1 ライントレース制御処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
A.2 White エリア時処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
–v–
図目次
A.3 Black エリア時処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
A.4 Edge エリア時処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
– vi –
表目次
3.1
ハードウェア構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.2
ソフトウェア構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
– vii –
第1章
はじめに
近年,国内におけるクラウドサービスの利用は年々増加している.図 1.1 に総務省が企
業に対して行ったクラウドサービス利用の状況調査のデータを示す.2010 年末ではクラウ
ドサービスを利用もしくは利用する予定と回答した企業が 36.0%だったが,2014 年末には
54.6%にまで成長している.このことから企業のクラウドサービスへの需要は年々伸びてい
ることが示される.
また,インターネットに繋がるモノ (IoT 端末) の数が近年急速に増加している.IoT 端
末数の 2011 年から 2015 年までの変化を示したグラフを図 1.2 に示す.2011 年に 100 億個
とされた IoT 端末は,2015 年には 242 億個となり,さらに 2020 年には 2011 年の 5 倍以
図 1.1
クラウドサービスの利用動向
–1–
図 1.2 IoT 端末数の推移と予測
上となる 530 億個になると予測されている [2].IoT 端末としては自動車,家電,モバイル
PC など様々なモノがあり,これらはネットワークに接続して様々な情報をやりとりしてい
る.これらの IoT 端末はセンサなどによって大量の情報を取得し,ネットワーク上に送信す
る.この膨大なセンサ情報を利用して周囲の状況をリアルタイムに収集してロボットや車と
いった端末の制御を行おうという試みが今後期待されている.
こうした IoT 機器をクラウドとして統合し,データを収集,遠隔に機器の制御を行おうと
いう研究,開発が行われている.これらの例としてクラウドロボティクスと呼ばれるものが
ある.これはクラウドが持っている情報やコンピュートリソースを利用して,ロボットを制
御,操作するというものだ.これによって,従来個別に設計,開発されてきたロボットサー
ビスは共通のプラットフォームで設計,開発できるようになるため,ロボットを低コスト化
することができ,様々なサービスに活かすことができると考えられている.
ネットワークに接続される IoT 端末の中には自動車やロボットなどリアルタイム性が重
要なモノがある.従来ネットワークを通じて遠隔操作されるものについては通信遅延が機器
の制御に大きな影響を与え,それが実現のための障壁になっていた.さらにクラウドで実現
する場合,従来の通信遅延に加え,さまざまなサービスが動作する環境上でリアルタイム性
–2–
を保障しなければならない.そのためリアルタイム機器を制御するシステムをクラウド環境
上で構築する場合,それぞれのシステムが,利用する物理リソースによって相互に干渉する
ことを考慮し,それによってどのような影響が発生するかを明確する必要がある.
本論文では,クラウド環境に構築されたリアルタイム機器制御システムにおいて,同環境
上で動作する他のサービスがリアルタイム性にどのような影響を与えるか調査し,影響が発
生する物理リソースと,影響の大きさを明確にして,リアルタイム機器制御が実現できるか
を検証する.
–3–
第2章
クラウドを用いた機器制御
本章では,クラウドに関する基礎的な知識について述べ,クラウドを用いた機器制御に関
連する研究の紹介を行う.
2.1
クラウドとは
クラウドは,構成の設定や再配置が可能なコンピューティングリソースをユーザがネット
ワークを通じて利用できる形態である.コンピューティングリソースには,ストレージや仮
想マシンなどのインフラや,メールアプリケーションなどのソフトウェア資源などがある.
クラウドの概念図を 2.1 に示す.この図では,クラウド上に配置されている,ストレージ,
仮想マシン,メールソフトをネットワークを通じて利用できることを示している.これらの
コンピューティングリソースは,サーバ単体もしくはサーバ群の上で動作している.
クラウドは次に示す特徴を持つ [3].
(1) オンデマンドかつセルフなサービス
ユーザがサーバの使用時間や利用するリソースの設定を人の介在無しに必要な時に行
える.
(2) 幅広い種類のネットワークアクセス 携帯電話,PC,PDA などのような様々なクライアントから標準のクラウド機能を用い
てネットワーク経由で利用できる.
(3) リソースのプーリング
クラウドより提供されるコンピューティングリソースは,複数のサービス利用者が共有
–4–
2.1 クラウドとは
図 2.1
物理環境上での実行時間
可能な形で提供され,ユーザの要求に応じて提供事業者が保有しているリソースをいつ
でも割当,再割当てが行える.
(4) 迅速なリソースの伸縮
クラウドでは,コンピューティングリソースを自動的に,スケールアウト,スケールイ
ンすることができ,ユーザからはコンピューティングリソースに制限が無いように見
え,また任意の単位でいつでも追加,購入することができる.
(5) 測定,管理できるサービス
クラウドでは,使用されるコンピューティングリソースの利用状況を測定でき,またそ
の結果に応じて,自動的にコントロール,最適化することができる.
クラウドサービスはこれらの特徴を持ち,企業などはクラウドサービスを導入することで,
必要に応じた分だけコンピューティングリソースを利用し,利用した量に応じて料金を支払
う.これによって,必要な分のみのコストに抑えることができる.
–5–
2.2 リアルタイム機器制御とは
2.2
リアルタイム機器制御とは
リアルタイム機器制御は,ロボットなどの制御機器をリアルタイムに制御することであ
る.リアルタイム制御では,処理を指定された時間以内に終了することが重要となり,なん
らかの理由により処理が遅れた場合,制御処理が破綻することがある.
リアルタイム制御は求められるリアルタイム性によって次に示す 2 種類に分けることが可
能である.
(1) ソフトリアルタイム制御 ソフトリアルタイム制御は,ハードリアルタイム制御と比較して緩いリアルタイム制
御であり,なんらかの理由で遅延が発生した場合でも処理が破綻することはなく,でき
るだけ処理が早く終われば良い制御と言える.この制御の例としては,人との対話型ロ
ボットの制御処理などがあり,この例では遅延時間が数百 msec を超えてくると,利用
者が違和感を感じる場合がある.
(2) ハードリアルタイム制御
ハードリアルタイム制御は,遅延の限界が厳しいリアルタイム制御であり,遅延によっ
て限界時間を超えた場合,制御そのものが破綻するような制御である.この制御の例と
して,ロボットの姿勢制御や、工場の機器の制御などがある.このような機器の限界時
間は数百 msec∼数十 msec と言われ,非常に厳しい制約となっている.
リアルタイム制御システム上で遅延が発生すると考えられる場合,これらの制御処理に対応
した限界時間内で処理を終わらせるために対策が必要になる.
2.3
2.3.1
関連研究
遠隔制御
遠隔制御とは,図 2.2 のようにネットワークを通じ,遠隔地にあるロボットなどの端末を
操作,制御することを言う.遠隔制御を行うことで,利用者がロボットなどの端末のある場
–6–
2.3 関連研究
図 2.2 遠隔制御の概略
所に移動せずに操作,制御することが可能となり,遠隔での手術や,災害現場などでは利用
者の安全を確保することができる.
このような遠隔制御でリアルタイム機器制御を行う場合,通信がボトルネックとなり,処
理に遅延が発生する.そのため,通信による遅延が,システムの利用者やシステムそのもの
にどのような影響を及ぼすか,遅延による影響をどのようにして最小限にとどめるかという
研究が行われている.そのような研究の例として,ロボットアームの遠隔操作で,大まかな
操作は人による遠隔制御を適用し,細かい制御はロボット内部での制御で行う方法を提案し
たものがある [4].この研究では,通信遅延によってある程度の精度でロボットアームの操
作が可能であるものの,細かな操作はできないことに着目し,大まかな操作は人による制御
で操作し,細かな操作はロボット内部の制御を行うというシステムを構築し,目標位置まで
ロボットアームを操作するという実験を行っている.この研究では,この方式ならば遠隔操
作のみを用いる場合と比較して,正確に目標位置までロボットアームを動作させれることが
わかっている.
2.3.2
クラウド遠隔制御
クラウド遠隔制御とは,図 2.3 のようにロボットなどの電子機器を制御するシステムをク
ラウド上に構築し,遠隔制御を行う方法である.この形態では,ユーザがクラウドを介して
機器を遠隔操作することができ,また,機器から送信されるセンサ情報を元に,クラウドが
機器を制御することも可能である.
–7–
2.3 関連研究
図 2.3
クラウド遠隔制御の概略
クラウド遠隔制御を実現するために,クラウド遠隔制御システムを構築するためのフレー
ムワークの研究が行われている [5].その研究では,ロボットをクラウド上にあるコンピュー
ティングリソースの一つとみなし,クラウドに接続されたロボットの機能をユーザに対して
抽象化して表示することで,ユーザがロボットの利用を容易にすることができるとしてい
る.またそのプロトタイプシステムを構築し,ユーザが RPG 風の仮想環境を通じてネット
ワーク越しにロボットを操作し,キャンパスを体験できるようにしたものがある [6].
このようなクラウド遠隔制御を行うシステムはクラウド環境上に構築することが考えられ
る.クラウド環境では,様々な仮想マシンやサービスが動作しておりそれぞれの負荷が互い
のパフォーマンスに影響を与える可能性がある.そこで,クラウド環境では複数 VM のメモ
リアクセスが,全体のメモリキャッシュの利用効率に影響を与えるという点に着目し研究し
た例を紹介する [7].この研究では,前述の問題を解決するため,既存のメモリスケジュー
ラの仕様を変更し,各 VM のメモリキャッシュ利用効率によってメモリ割り当てを調整する
ようにした.その結果,負荷発生時のメモリキャッシュ利用効率を向上することに成功して
いる.
このように,クラウド遠隔制御を実現するためのフレームワークの提案や,クラウド環境
で VM 間の負荷の影響を抑える研究が行われている.本研究では,クラウド遠隔制御を実
–8–
2.3 関連研究
図 2.4
高負荷発生による影響
現するため,システムの基盤をクラウド環境とした場合,VM 間の負荷の影響によってど
の程度リアルタイム制御に影響を与えるかの調査を行う.VM 間の負荷の影響とは,図 2.4
に示すように,制御を行う VM 以外によって発生する負荷がによって,制御を行う VM を
含む他 VM の処理速度が低下することである.その影響がどの物理リソースで発生するか,
影響が発生する場合どの程度の影響が発生するかを調査する.
–9–
第3章
クラウドでのリアルタイム処理評価
本章では,物理環境とクラウド環境に機器制御システムを模したシステムを構築し,その
システムと同一のハードウェア上で負荷を生成してクラウドでのリアルタイム処理評価を
行う.
3.1
評価項目
リアルタイム機器制御サービスが稼働している環境上で,高い負荷を発生させる他のサー
ビスが存在した場合,どの物理リソースで影響が発生するか,また影響が発生する場合どの
程度の影響が発生するかを調査した.
評価はクラウド環境でのリアルタイム処理の比較対象として,物理環境での評価も行う.
評価に使用する物理環境でのシステム構成を図 3.1 に,クラウド環境でのシステム構成を図
3.2 に示す.実験環境に使用したサーバのハードウェア構成を表 3.1 に,使用したソフトウェ
ア構成を表 3.2 に示す.物理サーバには,HP ProLiant ML350e Generation 8 を,クライ
アントには Lego Mindstorms EV3 を利用している.クラウド環境は OpenStack Juno を
用いて CentOS6.7 の KVM を利用し構築した.仮想マシンには仮想 CPU を 2 個,仮想メ
モリを 4GB,ディスク容量を 40GB 割り当てられている.
これらのシステムで行うリアルタイム処理について説明する.端末上で動作するクライア
ントプロセスはネットワークを介して,サーバ上で動作するリアルタイム制御を模したダ
ミー制御を行うプロセスへ 4KByte のバイト列を送信し,ダミー制御プロセスはこのデータ
に対して制御処理を行い,その処理時間を計測しておく.処理が終了するとクライアントへ
– 10 –
3.1 評価項目
図 3.1 物理環境での評価システム
図 3.2 クラウド環境での評価システム
4KByte のデータを送信する.
ダミー制御処理には CPU 処理を行うものと,ディスク I/O 処理を行うものの 2 種類があ
る.これらに対応した負荷発生プロセスを動作させて,ダミー制御プロセスへどの程度影響
を与えるかを調査する.CPU 処理を行うプログラムをリスト 3.1 に示す.この関数は,buf
表 3.1
ハードウェア構成
CPU
Intel(R) Xeon(R) CPU E5-2420
メモリ
16GB
HDD
500GB
– 11 –
3.2 負荷生成処理
表 3.2
ソフトウェア構成
ハイパーバイザ
QEMU 1.5.3
OS
CentOS6.7
には受信したバイト列の先頭アドレスが格納されており,受信したバイト列の先頭から順に
読み出し,三角関数処理を行うというものである.
次に,ディスク I/O 処理を行うプログラムをリスト 3.2 示す.この関数は,buf には受信
したバイト列の先頭アドレスが格納されており,そのバイト列のデータを write を用いて書
き込みを行うというものである.
リスト 3.1
1
2
3
CPU 処理を行うダミー制御関数
void d_proc(char *buf, unsigned long buf_size) {
int i;
double a = 0.0;
4
for (i = 0; i < buf_size; i++) {
buf[i] = (char)sin(cos((double)buf[i]));
}
5
6
7
8
return;
9
10
}
リスト 3.2 ディスク I/O 処理を行うダミー制御関数
1
2
void d_proc(char *buf, unsigned long buf_size) {
write(d_proc_fd, buf, buf_size);
3
return;
4
5
}
3.2
負荷生成処理
評価では,物理環境とクラウド環境のそれぞれで,ディスク I/O 負荷生成時と CPU 負荷
生成時の影響を調査する.そのため,各ダミー制御処理に対応した負荷生成プロセスを動作
させる.ここでは負荷生成プロセスが実行するプログラムの説明を行う.
– 12 –
3.2 負荷生成処理
まず,CPU 負荷生成プログラムで行っている負荷生成処理をリスト 3.3 に示す.このプ
ログラムは,実行後すぐに無限ループに入り,強制終了されるまで三角関数処理を続ける.
こうすることで,OS が使用可能な CPU コアの一つを 100%利用することができる.この
プログラムを CPU コア数分起動することで,CPU 全体の使用率を 100%まで上げる.
次に,ディスク I/O 負荷生成プログラムで行う負荷生成処理をリスト 3.4 に示す.ここで
は,open や write で発生したエラーに対する処理は便宜上省いている.実験では buf size
は 16MByte に設定指定している.無限ループ中で 16MByte の書き込みを行った後,sync
によって強制書き込みを発生させている.また 100 回のループを行うと,一度書き込んでい
るファイルを閉じ,ファイルを削除してから再度ファイルを作成して処理を継続する.
リスト 3.3
1
2
3
CPU 負荷生成を行うプログラム
while (1) {
a = sin(cos(a));
}
リスト 3.4 ディスク I/O 負荷生成を行うプログラム
1
2
3
4
5
6
7
8
9
fd = open(argv[FILE_PATH_INDEX], (O_RDWR | O_CREAT));
loop_count = 0;
while (1) {
if (loop_count == 100) {
loop_count = 0;
close(fd);
remove(argv[FILE_PATH_INDEX]);
fd = open(argv[FILE_PATH_INDEX], (O_RDWR | O_CREAT));
}
10
write(fd, buf, buf_size);
sync();
11
12
13
loop_count++;
14
15
}
– 13 –
3.3 評価結果
3.3
3.3.1
評価結果
物理環境での CPU 負荷の影響
物理環境での他プロセスの CPU 負荷の影響を調査した.CPU 負荷生成を行わない場合
の制御処理の実行時間を図 3.3 に,負荷生成を行った場合の実行時間を図 3.4 に示す.負荷
生成を行わない場合の最大実行時間は 0.173msec であり,負荷生成を行った場合の最大実行
時間は 0.250msec という結果になった.負荷生成を行う場合と行わない場合の最大実行時
間の差は 0.077msec であり,物理環境上で高負荷が発生するとわずかであるがリアルタイ
ム機器制御システムに影響を与えることが示された.
3.3.2
クラウド環境での CPU 負荷の影響
クラウド環境での他 VM の CPU 負荷の影響を調査した.CPU 負荷生成を行わない場合
の制御処理の実行時間を図 3.5 に,負荷生成を行った場合の実行時間を図 3.6 に示す.負荷
生成を行わない場合と負荷生成を行った場合の最大実行時間はともに 0.280msec となった.
最も発生回数の多い実行時間については,負荷生成を行わない場合は 0.145msec,負荷生成
を行った場合は 0.150msec となり,0.005msec の増加となった.このように,クラウド環境
図 3.3 物理環境上での負荷無し時の CPU 処理実行時間
– 14 –
3.3 評価結果
図 3.4 物理環境上での負荷有り時の CPU 処理実行時間
での他 VM の CPU 負荷の影響は,物理環境と比較して影響が抑えられていることがわか
る.しかし小さな遅延は見られるため,リアルタイム制御を行う場合注意が必要である.
図 3.5 クラウド環境上での負荷無し時の CPU 処理実行時間
– 15 –
3.3 評価結果
図 3.6 クラウド環境上での負荷有り時の CPU 処理実行時間
3.3.3
物理環境でのディスク I/O 負荷の影響
物理環境での他 VM のディスク I/O 負荷の影響を調査した.ディスク I/O 負荷生成を行
わない場合の制御処理の実行時間を図 3.7,負荷生成を行った場合の制御処理の実行時間を
図 3.8 に示す.負荷生成を行わない場合の最大実行時間は 0.045msec であり,また,最多
実行時間は 0.018msec となった.負荷生成を行った場合の最大実行時間は 44.087msec であ
り,最多実行時間は負荷生成を行わない場合と同じ 0.018msec となった.また負荷生成時
は,1.000msec 以上の遅延が負荷生成を行わない場合とくらべて散発的に発生していること
がわかる.単発の大きな遅延が多数が発生していることから物理環境における,高負荷生成
サービスの存在はリアルタイム機器制御サービスに影響を与えることが示された.
3.3.4
クラウド環境でのディスク I/O 負荷の影響
クラウド環境での他 VM のディスク I/O 負荷の影響を調査した.負荷生成を行わない
場合の結果を図 3.9 に,負荷生成を行った場合の結果を図 3.10 示す.負荷生成を行わない
場合の最大実行時間は 0.125msec となり,負荷生成を行った場合の最大遅延時間はおよそ
0.140msec となった.最大実行時間については,差は 0.015msec となり,物理環境に比べて
– 16 –
3.3 評価結果
図 3.7
物理環境上での負荷無し時のディスク I/O 処理時間
負荷の影響ははるかに小さいと言える.また,発生回数が多かった最多実行時間を見ると,
負荷生成を行わない場合は,0.018msec,負荷生成を行った場合は 0.037msec となっており,
0.019msec ほど負荷によって実行時間が増加していることが示される.しかしこれも小さな
時間であり,リアルタイム機器制御に大きな影響を与えないと考えられる.
このようにクラウド環境では,負荷に影響は低減された結果となった.これは,KVM
によって物理リソースを利用する帯域が制限されないように調整されているためだと思わ
れる.
– 17 –
3.3 評価結果
図 3.8
図 3.9
物理環境上での負荷有り時のディスク I/O 処理時間
クラウド環境上での負荷無し時のディスク I/O 処理時間
– 18 –
3.3 評価結果
図 3.10 クラウド環境上での負荷有り時のディスク I/O 処理時間
– 19 –
第4章
適用例
4.1
システムの構成
クラウドでのリアルタイム処理評価の結果を踏まえ,EV3 を用いたライントレース制御
をクラウド環境を用いて実装した.実装したシステムの構成を図 4.1 に示す.このシステム
では,クラウドでのリアルタイム処理評価で利用したクラウド環境と同様に,ハイパーバイ
ザー上で機器制御を行う VM を動作させる.この VM 上でライントレース制御プロセスを
動作させた.EV3 上ではクライアントプログラムを動作させ,クラウド環境上で動作する
ライントレース制御プロセスと通信を行うことでラインを追跡するライントレース処理を
行う.
EV3 上で動作するクライアントプロセスはプロセスの起動後,ライントレース制御プロ
セスへ TCP/IP で通信を行い接続を確立する.クライアントプロセスが行う処理を次に
図 4.1 クラウドを用いたライントレース制御システム
– 20 –
4.1 システムの構成
示す.
(1) センサ情報の取得 クライアントプロセスは,カラーセンサの情報の情報を取得する.
(2) センサ情報の送信
クライアントプロセスは,カラーセンサの情報をライントレース制御プロセスへ送信
する.
(3) 進路情報の受信
クライアントプロセスは,ライントレース制御プロセスから進行方向情報を受信する.
(4) 進行方向の変更
クライアントプロセスは,進路情報に対応したモータ制御を行い,進行方向を変更する.
クライアントプロセスは,これらの処理を 10msec 周期で実行する.
ライントレース制御プロセスは,プロセスの起動後,EV3 上で動作するクライアントプ
ロセスからの通信要求を待つ.受信後行うライントレース制御を次に示す.
(1) センサ情報の取得 ライントレース制御プロセスは,EV3 から送信された 1Byte のカラーセンサ情報を受
信する.
(2) センサ情報の保存
ライントレース制御プロセスは,受信したカラーセンサ情報と取得した時間の情報を
ディスクに書き込む.
(3) センサ情報から進行方向を確定 (ライントレース制御)
ライントレース制御プロセスは,受信したカラーセンサ情報から,EV3 が走っている
位置を推定し,次の進行方向を確定する.
(4) 進路情報を送信
ライントレース制御プロセスは,決定した EV3 の進行方向を進路情報として EV3 に
送信する.
– 21 –
4.2 ライントレース制御
4.2
ライントレース制御
今回実装したライントレース制御の処理は,株式会社アフレルが出版している教育版 EV3
C 言語プログラミングガイド Ver2.0 に掲載されているライントレースプログラムを,遠隔
制御型に改変したものになっている [8].このプログラムは,走路をラインの左側にある白
い領域の Left White,ラインの左側にあるラインとの境界部分の Left Edge,ライン上の
Black,ラインの右側にあるラインとの境界部分の Right Edge,ラインの右側にある白い領
域の Right White の 5 つのエリアに分割して走行する.このエリア分けの中で Right Edge
上を走るようにモータを制御する.またこのプログラムは,起動時に引数を取得し,次に示
す内容で LowTH,HighTH が定義される.
LowTH 起動時引数-10 で定義され,センサ値がこれより小さいと Black エリアとなる.
HighTH 起動時引数+10 で定義され,センサ値がこれより大きいと White エリアとなる.
ここまで説明したエリア分けの情報と LowTH,HighTH の2つの閾値情報を用いてライ
ントレース制御を行った.ライントレースを行うための制御アルゴリズムについては,付録
に示しておく.
4.3
負荷生成時の動作実験
クラウド環境上で動作するライントレース制御を行う VM 以外で負荷が発生した場合の
影響を調査した.図 4.2 は負荷生成を行わない場合のライントレース制御プロセスでのライ
ントレース制御の実行時間を示したものであり,図 4.3 はディスク I/O 負荷を発生させたも
のとなっている.負荷生成を行わない場合の最大実行時間は 0.618msec となっており,負荷
生成を行った場合の最大実行時間は 0.502msec となっており,負荷によって発生する遅延は
ほとんど確認できなかった.この結果から,1Byte 程度のセンサ情報に対してしきい値判定
を行うような今回のシステムであれば,クラウド環境でも問題無く処理を行うことが可能で
あることが確認できた.
– 22 –
4.3 負荷生成時の動作実験
図 4.2 負荷生成無し時のライントレース制御実行時間
図 4.3
ディスク I/O 負荷生成時のライントレース制御実行時間
– 23 –
第5章
おわりに
クラウド環境上でリアルタイム機器制御を行った場合に発生する,他 VM の負荷の影響
を調査した.その結果,クラウド環境では,他 VM による負荷が他の VM へ与える影響は
ある程度抑えられていることを明らかにし,ある程度のリアルタイム処理ならば,クラウド
環境で実現可能であることを示した.また,クラウド環境と EV3 を用いたライントレース
制御を実装し,ライントレース程度であればクラウドでのリアルタイム処理が可能であるこ
とを示した.
今後の課題は,ネットワーク利用による負荷と一つの機器制御 VM に複数の機器が接続
された場合の負荷の影響の調査とする.
– 24 –
謝辞
本研究を行うにあたり,丁寧なご指導,ご鞭撻を頂きました指導教員であり主査の横山和
俊教授に心より感謝致します.また,様々なご指摘を頂きました副査の高田喜朗准教授,松
崎公紀准教授に心より感謝致します.横山研究室の皆様には,実験の手法や結果について大
変参考になる意見を頂き心より感謝致します.
– 25 –
参考文献
[1] 総務省 — 平成 27 年度版 情報白書 — ICT サービスの利用動向,http://www.
soumu.go.jp/johotsusintokei/whitepaper/ja/h27/pdf/n7200000.pdf,2016
年 1 月 19 日閲覧.
[2] 総務省 — 平成 27 年度版 情報白書 — ICT の更なる進化,http://www.soumu.go.
jp/johotsusintokei/whitepaper/ja/h27/pdf/n7200000.pdf,2016 年 1 月 19 日
閲覧.
[3] 清野克行,仮想化の基本と技術株式会社,pp196–200,翔泳社 (2012). [4] 中 拓也,後藤 聡,江頭 成人: フォースフリー制御とビジュアルサーボを用いたロボッ
トアームの遠隔操作,https://www.jstage.jst.go.jp/article/jceeek/2009/0/
2009_0_276/_article/-char/ja/,2016 年 2 月 4 日閲覧.
[5] 中川幸子,成田雅彦,土屋陽介,加藤由花:ロボットとインターネットサービスの融
合を実現する分散処理フレームワークの拡張,マルチメディア通信と分散処理ワーク
ショップ論文集 2012 Vol.4 257–262 (Oct.2012).
[6] 高橋雅彦,野本悠太,伊藤由佳,土屋陽介,成田雅彦,加藤由花: ロボットの遠隔操作
による RPG 風キャンパス体験サービスの提案, 研究報告コンピュータセキュリティ
(CSEC) 2013-CSEC-60 33(2013).
[7] 田島幸恵,竹内理,野中祐介:クラウド環境におけるキャッシュ利用効率向上を目的
としたメモリスケジューラの提案,情報処理学会論文誌 コンピューティングシステム
Vol.8 No.1 22–33(Mar.2015).
[8] 株式外車アフレル,教育版 EV3 C 言語 プログラミングガイド ver2.0 (2014).
– 26 –
付録 A
ライントレース制御のアルゴリズム
ライントレース制御プロセスで行われる処理のアルゴリズムをフローチャートで示す.
図 A.1
ライントレース制御処理
– 27 –
図 A.2 White エリア時処理
– 28 –
図 A.3 Black エリア時処理
– 29 –
図 A.4 Edge エリア時処理
– 30 –
Fly UP