• 検索結果がありません。

ソフトウェア構成

ドキュメント内 JAIST Repository (ページ 34-39)

T805 root

4.2 ソフトウェア構成

実験システムでは、ファイルをパケット単位に分割して各ノードへ配送するようにし た。この章では、パケットの構成法、各ノード上で働くアレイ制御プロセス、中継プロセ ス、キャッシュ制御プロセスなどについて述べる。なお、すべてのプログラムはoccamで 記述した。

4.2.1

パケットプロトコル

すべてのノードはネットワーク内の位置に応じた自身のアドレスを持っている。パケッ トはそのアドレスを元に、発信ノードから目的ノードへと配送される。ノード間を配送さ れるパケットは

目的地アドレス オペレーション ディスクページ データ

のようなフォーマットを持ち、目的地アドレスの情報を元に中継-ノードで分岐しながら、

発信地に届いて、オペレーションに従って処理がなされた後、読み書きのデータとディ スクアクセスの結果などが、ホスト-ノードに返送される。この際に使用される返送パケッ トは、以下のようなフォーマットを持ち、中継-ノードを辿りながらホスト-ノードへと返 送されてゆく。

発信地アドレス アクセスデータ アクセス結果 計測時間

中継プロセスは、これらのパケットをホスト側から目的地側へ、あるいは目的地側から ホスト側へ受渡しを行なうだけで、内容の変更は特に行なわない。

4.2.2

ホスト ノード のプロセスとチャネル

ホスト-ノードには、ホストプロセスとアレイ制御プロセスとが設置されている。ホス トプロセスは、画面表示や実験用の各種乱数データの作成、キャッシュノードから返って きた計測データのを集計などを行なう。アレイ制御プロセスは、ホストから呼び出される プロセスで、ホストから与えられたデータの入出力命令を元に、実際のRAID操作を行 なう。

4.4にホストノードの構成を示す。

Host  PROC

Host Node

・データディスク、パリティディスクの決定

・データキャッシュへのパケット送信、受信

・パリティキャッシュへのパケット送信、受信

・入力画面の表示

・乱数の作成

・配送パケットの作成

・返送結果のまとめ

・結果の表示

Array Controll  PROC

・operation packet

・result pacet

to cache node to cache node

4.4: ホストノードの構成

アレイ制御装置は、ホストが指定してきた論理ディスク番号とアドレス番号から、実際

る。RAIDレベル5型での物理データディスクと物理パリティディスクの位置は、以下の 式で導出される。使用するディスクドライブの台数をNとすると、

パリティディスク位置 = アドレス % N

データディスク位置 = (パリティディスク位置 + 論理ディスク番号 + 1) % N ここで指定可能な論理ディスクは0番からN-2番までで、物理ディスクドライブは0番 からN-1番まで割り振られる。RAIDレベル4型では、パリティディスクは常に決まって おり、N-1番ディスクをパリティディスクに固定すると、0番からN-2番までの論理番号 の指定がそのまま物理ディスクのドライブ番号になる。

4.2.3

パスノード のプロセス

装置構成上、1台のホストノードと6台のキャッシュノードを直接に結線する事は出来な いので、パケットの仲介用ノードとしてパスノードを設定した。パスノード自体は、デー タの加工は特に行なわない。パスノードは2種存在し、1つはホスト側とキャッシュ側の 入出力信号線が11対応しているもので、もう1つはホスト側1に対し、キャッシュ側

3方向のものである。後者は、配信パケットの目的地アドレスを参照して、3つの方向の どれかにパケットを発送する。キャッシュ側から返送パケットを受信した時は、単にホス ト側信号線にパケットを送る。

4.5にパスノードの構成を示す。

Path Node

Path  PROC

・パケットの受信

・配送ノードの決定

・パケットの発信

・operation packet

・result pacet to host node

・operation packet

・result pacet

to cache node to cache node

to cache node

4.5: パスノードの構成

4.2.4

キャッシュノード のプロセス

キャッシュノードは、基本的なディスクアクセスを行なうディスクプロセスと、ディス クキャッシュ処理を行なうキャッシュ制御プロセスからなる。キャッシュノードは、キャ シュ内のデータ探索の他、ホストが排他的演算を行なっている間にデステージデータの ディスクへの書き込み命令をディスクプロセスに出す事が出来る。また、実験開始の際 は、ディスクから適当なデータを読み込んできて、キャッシュに格納する。そして実験終 了の際には、キャッシュデータのディスクへの書き込みを行なう。

キャッシュ方式はとしては、リンクリストによるフルアソシアティブ方式でLRU置換 を行なう方法と、入力ブロック数を元にしたハッシュ関数によるキャッシュ番地上へのダ イレクトマッピング方式のどちらかを任意に使用できるようにしている。本研究で用いた キャッシュは、occamで記述したソフトウェアによるキャッシュである。そのため、フル アソシアティブ方式は速度が遅く、キャッシュ容量を増やすと、キャッシュ探索時間がか かるようになる。ヒット率の測定用には問題はない。ダイレクトマップ方式では、ヒット 率は低いが、キャッシュ探索の速度は速く、容量を変えても掛かる時間は少ない。[7][8]

4.6にキャッシュノードの構成を示す。

cache memory

Cache Controll  PROC

Disk Control PROC

CacheNode

・ ディスク読み込み操作

・ ディスク書き込み操作

・キャッシュアクセス

・ディスク読み込み操作

・データ書き込み操作

・パリティ書き込み操作

・全データデステージ 操作 

to disk

・operation packet

・result pacet

・ operation packet

・ result pacet to path node

4.6: キャッシュノードの構成

4.2.5

ノード の動作とパケットの受渡し

ホストからの命令が、データの読み込みだった場合。まず、アレイ制御装置は入力され た論理ディスク番号から、物理ディスク番号を決定し、そのノードにオペレーションとし

data-readを指定した配送パケットを発信する。そして物理データディスクからのデー

タの入った返信パケットが送られてくるのを待つ。

ホストからの命令が書き込みだった場合。アレイ制御装置は、物理ディスクとパリティ ディスクを決めた後、データ側ノードに対してdata-writeのオペレーションを、パリティ 側ノードにはparity-writeのオペレーションを指定した配送パケットを送る。

両データを送った後、アレイ制御装置はどちらかのノードからの旧情報を含む返信パ ケットが届くのを待つ。旧情報が送られてきたら、パリティ、データどちらに関わらずホ ストから入力された新データとの排他的論理和演算を行なう。そしてもう片方のデータが 送られてきたら、その演算結果との間の排他的論理和を行なう。そしてその演算結果をパ リティ側のノードに対して再び発信する。

パリティノードは旧パリティ情報をホストノードに返信した後は、アレイ制御装置か らの新パリティ情報の受信待ちつつ、キャッシュのLRUデータのディスクへの書き込み を行なう。そしてアレイ制御装置から新パリティ情報が届いたら、それをキャッシュに書 き込む。そしてディスクへの書き込みが成功したならば、アクセス結果にキャッシュでの

ヒットの有無を記載して、ホストに2度目の返信パケットを送る。もし、ディスクへの書 き込みでエラーが生じた場合は代わりにアクセス結果に発生したエラー番号を記載して ホストに返信する。

ディスクノードの場合は、パリティノードと異なり新パリティを待つ必要がないので、

旧データを返信後、そのまま最初にホストから送られてきたデータのキャッシュへの書き 込みと、LRUデータのディスクへの書き込みを実行する。そしてパリティ側と同様に、

ディスクアクセスの結果にヒットの有無かディスクでのエラー番号を記載して返送パケッ トをホストに送る。

ホストは、パリティ側からとデータ側からの返送パケットを受信し、そのアクセス結果 がエラーでなければ、ホストプロセスに書き込み完了と伝える。

そして最後に、ホストから実験終了の命令が届いたら、アレイ制御装置は各ディスク ノードにendのオペレーションの配送パケットを送る。ディスクノードは、キャッシュの データを全てディスクに書き込んだ後、アクセス結果に完了のマークを付けて、アレイ制 御装置に返す。書き込みに失敗した場合は、エラーマークを付けて返す。アレイ制御装置 は、全てのディスクノードから完了したとのパケットを受け取った後、ホストプロセスに 全完了を伝える。

ドキュメント内 JAIST Repository (ページ 34-39)

関連したドキュメント