しょんぼり技術メモ

まいにちがしょんぼり

V-Fieldを使ってみた

りべんじ。

前回のエントリについて

前回(d:id:syonbori_tech:20100530)はコンパイルに成功したところまで。そこでいくつか修正を行ったが、それがあってるかどうか不安だったので、[twitter:@frsyuki]に聞いてみた。
どうやら、"-static"はgccへの指定で、スタティックリンクライブラリを指定する物らしい。"-static -lboost_thread-mt" とした場合、libboost_thread-mt.aがリンクされるらしい。Fedora12でyumを使ってboostをインストールする場合、.soしかインストールされないため、エラーとなっていたようだ。

とりあえず、"-Bstatic"でも動いているが、念のため補足。

足りないパッケージをインストール

nbdが必要だった。さくっとインストーる。

# yum install nbd

V-FIELDを使ってみる

PC1とPC2の環境を用意して、PC1上にファイルを用意して、PC2から参照してみる。

PC1(最初に提供する側)

動作確認のため非デーモンモードで動作させる。

$ ./vfield -file /tmp/random_10MB -if eth0 -nodaemon
RootStorage is initialized with /tmp/random_10MB (10485760 bytes)
Stream is listened on aaa.bbb.ccc.ddd:19660
RPC is listened on any:19660
NBD is listened on 127.0.0.1:8990

どうやらRPCに19660/TCPを使うようだ。

PC2(見に行く側)

こちらも非デーモンモードで動作させる。vfieldを実行するターミナルと、nbd-clientでマウント?を行うターミナルの二つが必要。

$ ./vfield -bs aaa.bbb.ccc.ddd -store 1 -nodaemon
Storage layer is initialized with 1048576 bytes limit
Stream is listened on aaa.bbb.ccc.ddd:19660
RPC is listened on any:19660
NBD is listened on 127.0.0.1:8990
Stream Join succeeded, image size is 10485760 bytes
Storing data range is 7340032 - 8388607

"-store"で指定するのは、自分が保持する容量らしい。

そして、もう一枚のターミナルでnbd-clientを実行する。こちらにはroot権限が必要なようだ。

# nbd-client localhost 8990 /dev/nbd0
Negotiation: ..size = 10240KB
bs=1024, sz=10240

これで、/dev/nbd0 にPC1のファイルがマウントされる。
vfield側には次のような表示がされていた。

Storing data is successfully downloaded
NBD negotiation successed


ためしにのぞいてみる。

# hexdump -C /dev/nbd0 | head -n 10
00000000  50 e4 50 d0 99 8f e3 35  1b 42 b8 e1 93 f8 5f 41  |P.P....5.B...._A|
00000010  83 0b 78 6d e0 de 61 39  71 3d 05 5e 04 32 d7 d2  |..xm..a9q=.^.2..|
00000020  38 af a4 04 0e 51 62 d5  7f 64 db b8 67 02 d6 11  |8....Qb..d..g...|
00000030  87 40 69 ef ac 81 ac 56  82 58 12 6f 3d 5c 71 a6  |.@i....V.X.o=\q.|
00000040  02 e7 4b d2 9d 76 f4 a2  f6 20 4c 76 22 c1 c2 43  |..K..v... Lv"..C|
00000050  e7 24 d2 2f 98 19 32 22  6f 59 ea a5 47 54 f6 4e  |.$./..2"oY..GT.N|
00000060  03 f5 60 20 a5 a7 a8 0d  96 fe 20 2a df 2b 91 25  |..` ...... *.+.%|
00000070  64 a2 6e 60 a9 88 ec 5f  30 2b af 88 03 84 37 d4  |d.n`..._0+....7.|
00000080  53 c6 0b 95 0e b8 b6 ab  9b 4b 91 a6 49 76 ab ab  |S........K..Iv..|
00000090  5f e8 56 6e 12 39 66 56  6c 56 98 2e cd 5b 26 60  |_.Vn.9fVlV...[&`|

PC1側のものと一致したことを確認。

性能

VirtualBox上のゲストでやってるのでアテになりません…(´・ω・`)