CloudStoreを使う・FUSEマウント編
CloudStore では FUSE を使ったマウントができる(http://kosmosfs.wiki.sourceforge.net/UsingWithFUSE)ので、その方法を確認しておく。
まずあらかじめ FUSE をインストールしておく必要があるので、以下のような感じで準備しておく。
$ tar xzf fuse-2.7.4.tar.gz $ cd fuse-2.7.4 $ ./configure --prefix=/usr $ make $ su # make install
FUSE のサポート自体は CloudStore の配布ソース内に既に含まれている。まず、kfs-0.3/CMakeLists.txt を開いて、FUSE のインストールにあわせて以下を修正する。
SET(Fuse_LIBRARY_DIR "/usr/lib") SET(Fuse_INCLUDE_DIR "/usr/include")
後は
$ cd kfs-0.3/build $ make install
で、kfs_fuse が最初に CloudStore をビルドしたときに指定した CMAKE_INSTALL_PREFIX の bin ディレクトリの下にできる。
実際にマウントするには、kfs_fuse と同じディレクトリ内に、kfs.prp を以下のように作成しておく。
metaServer.name = kfs0 metaServer.port = 20000
Wiki のページでは metaServer.host となっているけれど、間違いみたい。
その後、マウントポイントを作成し kfs_fuse を実行すればマウントできる。以下のような感じ。
$ mkdir /tmp/kfs-fuse $ ./kfs_fuse /tmp/kfs-fuse -f
- f をつけないと一見マウントできているように見えるが、
$ ls /tmp/kfs-fuse ls: /tmp/kfs-fuse: 通信端点が接続されていません
というエラーになる。とりあえず、この問題は保留。
で、CloudStore の HDFS に対する(個人的な)魅力は、ランダムアクセスができることなので、ランダムアクセスを使って読み書きする - サンプルコードによるPerl入門 を利用して確認してみた。
結果は、期待通り問題なくランダムアクセスができた。
CloudStore は結果使えるかも、という気になってきた。