XtreemFSをFreeBSDで動かす(4)

やっとxtfsutilを直した。最新はea0bf85

次はレプリケーションのテストか耐障害性のテストをしたい。
けどそろそろMacBookにVM 3台乗せてテストするのは辛くなってきたな……。

# xtfsutil test
Path (on volume)     /test
XtreemFS file Id     ab63c953-80a7-42fb-86b1-c97afbcbbbbb:2
XtreemFS URL         pbrpc://xtfs1:32638/test/test
Owner                root
Group                wheel
Type                 file
Replication policy   none (not replicated)
XLoc version         0
Replicas:
  Replica 1
     Striping policy     STRIPING_POLICY_RAID0 / 1 / 128kB
     OSD 1               b2b67461-1ce7-11e6-b639-000c2974491c (10.0.0.1:32640)

ここから先は直したものメモ。

No matching mounted XtreemFS volume found

# xtfsutil test
xtfsutil failed: No matching mounted XtreemFS volume found in 'mount' output for path: /mnt/xtfstest

mountの結果から/dev/fuse[0-9]の正規表現に一致するようなデバイスを探しているけど、FreeBSD 10.1では/dev/fuseであって数字が付かない。昔は付いてたのかな。
正規表現をいじって対応。かんたん。

This is a known issue of FUSE for FreeBSD 0.4.4

# xtfsutil test
xtfsutil read back the same text which was written into the pseudo control file: {"operation":"getattr","path":"/test"}

This means a file content cache prevents xtfsutil from working correctly.
This is a known issue of FUSE for FreeBSD 0.4.4.
1 of 1 operation(s) failed.

xctlという制御用ファイルにJSONを書いてcloseして、すぐにまたJSONを読む処理で失敗しているらしい。
fuse daemonが返すはずの結果ではなくて、直前に自分が書いたものが読めるらしく、怒る。

cacheされて困るならO_DIRECTでも付ければいいのに、と思って付けたら直った。