2007年05月16日
演習3一期終了
各研究室を巡回する演習3ですが、今日一期目の石川研が終了しました。
お題としては、分散ファイルシステムに関する調査・及び試験的実装(ユーザー空間+FUSE)を行いました。
PVFS, Google File System, Ceph, Lustreの論文を読みつつ、ユーザー空間プログラムとして自前の分散ファイルシステムを実装しました。結果としてはGFSっぽいものが出来ました。もっと大規模なデータをぶち込んだりして遊びたいですね。
学術的にはStorage Systems Research Center@UCSCの開発している「Ceph」が中々面白かったです(Publications)。下の三点が既存の分散ファイルシステムと一線を画している所でしょうか。
- Metadata ServerでDirectory TreeをDynamicにPartitionしてLoad Balancing。既存のものはMetadata Serverが1台の物が多くそこがボトルネックになってしまう。
- クラスタの配置を前もって与え、安全なレプリケーション位置をgenerateするHashを作る。これによりクライアントはファイルの名前 or IDから直接データのあるサーバーの位置を決めることが出来るのでマスターの負荷がさがる。
- Object Storage Device。今はOSがやっているディスクのブロック管理をハードでやる。
ソースが配布されていますが、安定して動くのかどうかは知りません。
あと、GoogleFileSystemのEvaluationが雑すぎます。こんなのでいいのか・・・と言ってみたら、やっぱり思ってる人は思ってるみたいなので安心しました。
しかし実際に大規模なデータを扱っているサイト、例えばFlickrとかYoutube(国内で言うとフォト蔵とかニコニコ動画?)なんかはどうやってファイル管理をしてるのですかね。その辺のニーズが一回聞いてみたいですね。予想できるところだと、md5の結果でハッシュ作ってサーバー決めうち、dbにblobで入れてdb自体を分散化とか?
話は変わるのですが、分散システムを書いてるとPuttyを8個ぐらい立ち上げて、それぞれでサーバーを立ち上げてデバッグという事をやるのですが、PCを立ち上げるたびにPuttyを並べるのが面倒臭い。つまり開発開始コストが高い。エディタを1個立ち上げるだけでもだるいのに!
と文句を言っていたら、MagnetWindowというソフトを教えて貰いました。これは窓を並べる時に、ウィンドウがぴたっとくっつくように支援してくれるソフトです。でも、自動立ち上げまではしてくれない。
と文句を言っていたら、nuさんが演習3で取り組んでいる素分並列化からの現実逃避に「nusc」という、ジオメトリを指定して指定のプログラムを立ち上げるようなものを書いてくれました。

以下のようなファイルを用意するだけです。
52 0 480 360 1 "C:\Program Files\PuTTY\putty.exe" -load "core2" 52 379 480 361 1 "C:\Program Files\PuTTY\putty.exe" -load "core2" 552 0 460 165 1 "C:\Program Files\PuTTY\putty.exe" -load "core2" 552 185 460 170 1 "C:\Program Files\PuTTY\putty.exe" -load "core2" 552 380 460 170 1 "C:\Program Files\PuTTY\putty.exe" -load "core2" 552 575 460 170 1 "C:\Program Files\PuTTY\putty.exe" -load "core2"
これは便利すぎます。身近に文句を言っていれば作ってくれる環境と言うのは素晴らしい。本当は自分で作れたら良いのですが、#include <windows.h>ってナニソレ。not found
- by
- at 02:23

comments