More Related Content Similar to P2Pネットワークを利用した分散ファイルシステムの開発 Similar to P2Pネットワークを利用した分散ファイルシステムの開発 (20) P2Pネットワークを利用した分散ファイルシステムの開発5. DHT - Distributed Hash Table
複数マシンで構成される巨大なハッシュテーブル
マシン間は P2P ネットワークで接続
ネットワークに対してKey と Value のペアを
保存したり取得したりできる
保存
データ
���Key: ”Tsukuba”
Value:�12345678
DHT
取得
6. DHT の実装�- Chord アルゴリズム
データ保存担当ノードの決定と探索の仕組み
リング状のネットワーク - 閉じた数直線
1
4
14
キーのハッシュ値を求める
4bit ID空間
12
Hash(“Tsukuba”) =�9
(最大2^4=16ノード)
8
データ
例:�次のKey&Value を保存する
Key: Tsukuba Value: 1234
ハッシュ値”9” に時計回りに
一番近いノードが担当となる
8. 開発したプログラム
DRChord - Chord アルゴリズムを用いた DHT
Ruby 2.0.0 + dRuby(分散オブジェクト環境)
TestFS - FUSEを用いたファイルシステム
データの保存に DHT を利用
Ruby 2.0.0 + rbfuse(FUSE library)
Node01
ファイルシステム
レイヤ
DRChord
Node03
DRChord
DRChord
TestFS
P2Pネットワーク
レイヤ
Node02
10. 例: /情特.pdf を開く場合
root ディレクトリから順に ID をたどり
ファイルの実体へたどり着く
root dir
inode
2
type
dir
dir entry 33942
inode
94782
dirAAA 19234
ITF.mp3 42133
情特.pdf 94782
type
file
ID : 121299
ID : 33942
Chord ring
121299
user data
情特.pdf の実体
12. 結果
Ruby + dRuby を利用した DHT が実装できた
ファイルシステムから DHT を操作しファイルを
分散保存できた
FUSE を用いてマウントすることで基本的な
ファイル操作コマンドが実行できた
13. 結果
書き込み速度が遅い
% dd if=/dev/zero of=./test count=1000 bs=1024
��Read: 403.14 MB/s
���Write:
4.28 MB/s����������������(100回の平均)
参考�(通常のディスクアクセスの結果)
3C113教室 coins 環境 (iMac NFS)
�R: 134.14 MB/s W: 34.40 MB/s
MacBookPro Retina (Mid 2012 SSD)
��R: 431.68 MB/s W: 316.08 MB/s