hack のためのネタ帳, etc,,,

nbd - Network Block Device
ネットワーク越しにブロックデバイスを利用する仕組み

Tips

以下の構成にて
  • server: Debian GNU/Linux 8.5 (jessie)
  • client: Ubuntu 14.04.5 LTS

server 側の /etc/nbd-server/config を以下のように設定してみた
[generic]
        user = nbd
        group = nbd
        includedir = /etc/nbd-server/conf.d

[foo]
        exportname = /dev/sdb
これに接続しようとしたところ、以下のようにエラーが出た。
$ sudo nbd-client myserver /dev/nbd0 -N foo
Negotiation: ..Error: Server closed connection
Exiting.
これ、どうも、/dev/sdb のパーミッションが以下のようになっているのが原因らしい。
$ ls -l /dev/sdb
brw-rw---- 1 root disk 8, 16  8月 25 22:12 /dev/sdb
chmod o+rw するか、chown :nbd するときちんと接続されたのでまず間違いない。

そこで、以下のようにユーザー nbd をグループ disk に追加してみた。
$ grep nbd /etc/group
disk:x:6:nbd
nbd:x:128:
ところが、なぜかこの設定では、前述のエラーで接続が上手く出来ない。念のためリブートもして試してみたが駄目だった。
# su nbd
$ xxd /dev/sdb
等とすると、きちんと表示できるので、ユーザー nbd がグループ disk 扱いされているのは間違いないのだが、なんでだ!?

で、結論として、/etc/nbd-server/config における group の設定を disk にすると解決は出来たのだが、なんか気持ち悪い。
設定としては以下の様な感じ。
[generic]
        user = nbd
#        group = nbd # This can not export /dev/sdb
        group = disk
        includedir = /etc/nbd-server/conf.d

[foo]
        exportname = /dev/sdb

関連

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます