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上のゲストでやってるのでアテになりません…(´・ω・`)