~によるとこのブログ投稿、これは容易です:
# nbd-server MyFile.dat
# nbd-client localhost /dev/nbd0
問題は…実際にはそうではないということです働く。
まず、nbd-server
ファイルのポート番号と絶対パスを明示的に指定しないと、「エクスポートされた構成がありません」というメッセージが表示されます。しかし、まあ、とにかく。 (それまだこれが何らかの形で「廃止されている」という設定ファイルを実際に編集する必要があると文句を言います。私は次のようになります。本当にこれはしたくない! )現在ブロックデバイスを提供しているようです。 (少なくともnbd-server
TCP / 10809を開いてリッスンするプロセスが実行されています。)
nbd-client
しかし、接続を試みることは不可能でした。私がどんな主張をしても、その子供はうめき声、不平、拒否する。する何も!続けて言う
ERROR: not enough information specified
以下は使用法の要約です。しかし実際にはそうではありません教えてください何が問題なの?ポート番号を指定するかどうかにかかわらず、同じエラーメッセージが表示されます。私は何をすべきですか?実際の接続?
(明らかに同じコンピュータに接続しています。結局、ネットワーク上のコンピュータ間でこれをやりたいのですが、ローカルで動作させることはできません!)
PS。いくつかの例が議論されていmodprobe nbd-client
ますmodprobe nbd-server
。私のOpenSUSEコンピュータにはnbd.ko
.soだけがあるようで接続しました。それ以前は/dev/nbd0
存在すらしませんでした。その後はまともに存在しました。
ベストアンサー1
調べるには少し時間がかかります。
NBDサーバーとポート番号に加えて、「エクスポート名」も指定する必要があるようです。このマニュアルではこれについて十分に説明していません。
私も[本当に避けたい]構成ファイルを使用する必要がありました。幸いなことに、実際に特別な場所や他の場所に配置する必要はありません。
実際、次のことができました。
空のディスクイメージを作成します。
次のファイルを作成します。
[generic] # Must always exist. [Mu] exportname=/path/to/image/file
NBDサーバーを起動します。
nbd-server -C /path/to/config/file
/var/run/nbd-server.pid
これは、NBDサーバープロセスのPIDを保存する(つまり、終了できるように)構築するようです。他の停止コマンドはないようです。NBDクライアントを起動します。
nbd-client localhost -N Mu /dev/nbd0
この
Mu
セクションは、構成ファイルで選択された任意の名前と一致する必要があります。 1つのサーバーでサービスできます。多くの種類ファイルは一度だけ保存されるため、必要なファイルを指定する必要があります。 (おそらく以前にお客様が不満を吐露していた「情報不足」ではないかと思います。)
この時点では、/dev/nbd0
通常のブロックデバイスのように動作する必要があります。
pkill nbd
これまで、クライアント/サーバープロセスを終了する以外に接続を切断する方法が見つかりませんでした(例:)。
私もこれをテストしました。localhost
適切なホスト名に変更すると、リモートで動作します。