31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 title: GearsOSの分散ファイルシステムの設計
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 author: Takahiro Ikki, Shinji Kono
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 profile: 琉球大学理工学研究科情報工学専攻
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 lang: Japanese
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 code-engine: coderay
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6
|
34
|
7
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8
|
35
|
9 ## 継続を導入したGearsOS
|
37
|
10 - 継続を導入した、信頼性の保証を目指したOS開発プロジェクトである
|
39
|
11 - 関数遷移を用いず、**CodeGear**と**DataGear**と言う単位で記述を行う
|
37
|
12 - 複数のCodeGearをgoto(jump命令)で遷移することで処理が実行される
|
|
13 - OS自体の検証はプログラムが膨大な量となるため、テストコードを用いるのは難しい
|
|
14 - GearsOSではメタレベルの処理からユーザープログラムの検証をする構成となる
|
|
15 - GearsOSはノーマルレベルとメタレベルを分けて記述できる
|
|
16 - メタレベルな処理を検証用のものに切り替えることで検証を行う
|
|
17 - 信頼性の検証には定理支援証明系やモデル検査を用いる
|
35
|
18
|
|
19 ## GearsOSのファイルシステム開発
|
39
|
20 - GearsOSファイルシステムの開発にあたり要件定義を行った
|
|
21 - ファイルシステムも同様にGear単位で操作を行う
|
|
22 - 従来ではアプリケーションが持つ機能の一部を取り入れたい
|
|
23 - Transaction
|
|
24 - データ操作の整合性保護が施された処理
|
|
25 - バックアップ
|
|
26 - 分散フレームワークChristieの仕組みを用いたい
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27
|
35
|
28 ## 分散フレームワークChristie
|
37
|
29 - 当研究室が開発する、Javaで書かれた分散フレームワークである
|
39
|
30 - GearsOSと似たGearと言うプログラミング概念を持つ
|
|
31 - ノード間の通信はDataGearの送り合いで構成される
|
|
32 - Threadは任意のDataGearが揃ったら実行される
|
|
33 - 通信されるデータを意識しながら分散処理の記述が行える
|
|
34 - これらの構成は自律分散を目指した設計となっている
|
35
|
35
|
36
|
36 ## Christie likeな通信の分散ファイルシステムの提案
|
39
|
37 - Christieの仕組みを用いた分散ファイルシステムを設計/検証したい
|
|
38 - ファイルデータとなるDataGearを追いながらプロセスが記述できる
|
|
39 - データのみの送受信による通信でネットワークの見通しを確保する
|
|
40 - 自律分散なファイルシステムを目指す
|
36
|
41 - APIやプロセスの正当性は将来的に定理支援証明系agdaで検証される
|
35
|
42
|
39
|
43
|
37
|
44 ## GearsOSが持つOSレベルなTransactionの実装検証
|
36
|
45 - GearsOSはAPIレベルでTransactionな記述が行える
|
|
46 - 従来のアプリケーションでは、ユーザーレベルで実装される
|
39
|
47 - API自体のTransactionが保証されていれば、アプリケーションの信頼性保証が容易になる
|
|
48 - GearsOSのAPIレベルで実装されるTransactionの実装と検証を行う
|
35
|
49
|
|
50 ## ポスター発表
|
36
|
51 - GearsOSのChristie likeなファイルシステムの設計と実装
|
35
|
52 - ファイル構造
|
|
53 - QueueとTreeを用いる
|
|
54 - ファイルAPI
|
|
55 - Put/Take/Peek
|
|
56 - 複数streamを用いたファイル通信
|
|
57 - WordCount例題
|
|
58 - まとめと課題
|
|
59
|
|
60 ## この先保留
|
33
|
61
|
|
62 ## CodeGearとDataGear
|
|
63 - CodeGear
|
|
64 - 実行Codeの単位
|
35
|
65 - 入力/出力のDataGearを持つ
|
|
66 - goto文(jump命令)で遷移する
|
|
67 - 割り込みが行われない(atomicity)
|
33
|
68 - DataGear
|
|
69 - 変数にあたり、構造体の型を持つ
|
35
|
70
|
|
71 ## CodeGearとDataGearの関係
|
|
72 - InputDataGearを受け取って、CodeGearが処理し、OutputDataGearを出力する
|
|
73 - OutputDataGearは次のCodeGearのInputDataGearとなる
|
|
74 - CodeGear/DataGearはContextというオブジェクトで管理される
|
|
75 <div style="text-align: center;">
|
|
76 <img src="images/cg-dg.pdf" alt=cgdgの関係図 width="600">
|
|
77 </div>
|
|
78
|
|
79 ## 研究概要
|
|
80 - GearsOSの分散ファイルシステムの設計・実装を行った
|
|
81 - ファイル構造の設計
|
|
82 - ファイルAPIの設計
|
|
83 - 複数streamを用いたファイル通信とデバイス保存
|
|
84 - 最低限のデータを送信することにより通信が行える
|
|
85 - 分散フレームワークChristieの仕組みを利用している
|
|
86
|
|
87
|
|
88
|
|
89 ## 本研究の目的
|
|
90 - 分散フレームワークChristieのファイルシステムへの応用
|
|
91 - プロトコルを用いず、最低限のデータの送受信で通信を構成する
|
|
92 - 複雑な分散通信の見通しの改善
|
|
93 - 自律分散通信を目指した設計
|
|
94 - OSレベルなTransactionによるファイル通信記述の検証
|
|
95 - GearsOSではAPIをTransactionとして構成できる
|
|
96 - 従来のファイルシステムはアプリケーションレベルで実装される
|
|
97
|
|
98 ## GearsOS
|
|
99 - OSの信頼性の向上と拡張性を目指している
|
|
100 - CodeGear/DataGearという単位で記述される
|
|
101 - ノーマルレベルとメタレベルを分離して記述できる
|
|
102 - メタレベル処理を切り替えることで、信頼性検証やデバッグを行う
|
|
103 - 将来的に本研究の成果物も信頼性の検証を行う
|
33
|
104
|
|
105 ## CodeGearとDataGear
|
35
|
106 - CodeGear
|
|
107 - 実行Codeの単位
|
|
108 - 入力/出力のDataGearを持つ
|
|
109 - goto文(jump命令)で遷移する
|
|
110 - DataGear
|
|
111 - 変数にあたり、構造体の型を持つ
|
|
112
|
|
113 ## CodeGearとDataGearの関係
|
33
|
114 - InputDataGearを受け取って、CodeGearが処理し、OutputDataGearを出力する
|
|
115 - OutputDataGearは次のCodeGearのInputDataGearとなる
|
35
|
116 - CodeGear/DataGearはContextというオブジェクトで管理される
|
33
|
117 <div style="text-align: center;">
|
|
118 <img src="images/cg-dg.pdf" alt=cgdgの関係図 width="600">
|
|
119 </div>
|
|
120
|
|
121
|
35
|
122 ## 分散フレームワークChristie
|
|
123 - Javaで記述された分散フレームワーク
|
|
124 - GearsOSと似たGearという概念を持つ
|
|
125 - CodeGearManagerと言うノードがCodeGear/DataGearを管理する
|
|
126 - DataGearはDataGearManagerと言うデータプールに記録される
|
|
127 - DataGearをノード間で送り合うことで通信を行う
|
|
128
|
|
129 ## Christieの通信
|
|
130 - LocalDGM
|
|
131 - そのノードに対応するデータプール
|
|
132 - CodeGearはLocalDGMからDataGearを参照する
|
|
133 - RemoteDGM
|
|
134 - 他のノードのLocalDGMに対応するproxy
|
|
135 - RemoteDGMに書き込むと対応したLocalDGMに送信される
|
|
136 - DataGearManagerの仕組みをGearsOSのファイルに利用する
|
|
137
|
|
138 ## RemoteDGMによる通信
|
|
139 - 任意の相手のRemoteDGMを作成することで接続が形成される
|
|
140 - RemoteDGMに書き込むと相手のLocalDGMに書き込みが行われる
|
|
141 <div style="text-align: center;">
|
|
142 <img src="images/Remote_DataGearManager.pdf" alt="RemoteDGMの関係図" width="550">
|
|
143 </div>
|
|
144
|
|
145
|
|
146 ## ポスター発表概要
|
|
147 - Christieの仕組みを用いたファイルシステム設計/実装の解説
|
|
148 - QueueとTreeを用いたファイル構造
|
|
149 - ファイルAPI
|
|
150 - Put/Take/Peek
|
|
151 - 複数socketを用いたファイル通信の構成
|
|
152 - WordCount例題
|
|
153 - まとめと課題
|
|
154
|
|
155
|
|
156
|
|
157
|
|
158 ## まとめ
|
|
159 - GearsOSの通信を含めたファイルシステムの設計・開発を行った
|
|
160 - DataGear単位によるファイル操作
|
|
161 - 複数のstreamを用いた通信の設計
|
|
162 - 現時点では単一streamによる通信のみ開発済み
|
|
163 - 課題
|
|
164 - WordCount例題の再現
|
|
165 - API/プロセスの信頼性や性能の調査
|
|
166
|
|
167 ## GearsOSのファイルシステム
|
33
|
168 - ファイルデータの最小単位はDataGearとなる
|
|
169 - ファイルデータとなるDataGearはQueueに格納される
|
35
|
170 - APIはPut/Take/Peekの三つで操作する
|
33
|
171 <div style="text-align: center;">
|
|
172 <img src="images/QueueElement.pdf" alt=Queue width="800">
|
|
173 </div>
|
|
174
|
|
175 ## GearsOSにおけるファイル
|
|
176 - ファイルは複数のQueueを持つ赤黒木である
|
35
|
177 - Queueはkeyでアクセスされる
|
|
178 - Queueはstreamの役割を持つ
|
33
|
179
|
|
180 <div style="text-align: center;">
|
|
181 <img src="images/newGearsFile.pdf" alt=Queue width="400">
|
|
182 </div>
|
|
183
|
35
|
184 ## ファイルによる通信の構成
|
|
185 - GearsOSのファイルは通信も担当する
|
|
186 - 通信先のファイルのproxyを生成し通信する
|
|
187 - proxyに対してデータを書き込むことで通信が行われる
|
|
188 - WordCount例題を通して設計を行った
|
|
189 <div style="text-align: center;">
|
|
190 <img src="images/slideGearsWC.pdf" alt=Queue width="500">
|
|
191 </div>
|
34
|
192
|
33
|
193 ## GearsOSの分散ファイルシステム
|
|
194 - GearsOSのファイルは通信の役割も持つ
|
34
|
195 - 遠隔上のファイルに対応するproxyを作成して通信を行う
|
|
196 - 対象ファイルとproxyはsocketで接続される
|
|
197 - proxyの操作はLocalなファイルと相違なく行える
|
|
198 - 記録デバイスへの保存も同様な仕組みで行う
|
33
|
199
|
34
|
200 ## GearsFSの展望
|
|
201 - ノードの配線を担当するTopologyManagerの実装
|
|
202 - 参加表明したノードを任意の形のTopologyへ配線する
|
35
|
203 - 将来的にAPIと通信プロセスは定理支援証明系Agdaで検証を行う
|
|
204 - 複数streamにより制御を行う分散ファイル通信の検証
|
|
205 - GearsOSによるOSレベルTransactionの信頼性/実用性調査
|
34
|
206 - 従来ではアプリケーションレベルにより実装される
|