ブロックデバイスとしてネットワークを介して、あるコンピューターから別のコンピューターにブロックデバイスをマウントするにはどうすればよいですか?


40

DVDやCDROMなどのブロックデバイスをエクスポートして、ブロックデバイスとして別のコンピューターにマウントできるようにすることは可能ですか?

注: NFSやSambaを使用してこれを行うことに興味はありません。実際には、光学式ドライブをリモートコンピューターの光学式ドライブとして表示する必要があります。

回答:


33

ネットワークブロックデバイス(NBD)を使用して、目的を達成できる可能性があると思います。主題に関するウィキペディアのページを見ると、と呼ばれるツールの言及がありますnbd。クライアントとサーバーのコンポーネントで構成されています。

このシナリオでは、Fedora 19ラップトップ(サーバー)でCDROMをセットアップし、Ubuntu 12.10システム(クライアント)と共有しています。

取り付け
$ apt-cache search ^nbd-
nbd-client - Network Block Device protocol - client
nbd-server - Network Block Device protocol - server

$ sudo apt-get install nbd-server nbd-client
CDを共有する

サーバー(Fedodra 19)に戻り、パッケージマネージャーYUMを使用して同様の操作を行います。完了したら、CDを挿入し、次のコマンドを実行してブロックデバイスとして共有します。

$ sudo nbd-server 2000 /dev/sr0

** (process:29516): WARNING **: Specifying an export on the command line is deprecated.

** (process:29516): WARNING **: Please use a configuration file instead.
$

実行中かどうかの簡単なチェック:

$ ps -eaf | grep nbd
root     29517     1  0 12:02 ?        00:00:00 nbd-server 2000 /dev/sr0
root     29519 29071  0 12:02 pts/6    00:00:00 grep --color=auto nbd
CDのマウント

今すぐバックUbuntuのクライアント上で、私たちはに接続する必要がnbd-server使用しnbd-clientそうのように。 注:この例では、nbd-serverの名前はgreeneggsです。

$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes

(Fedoraなどの一部のシステムでは、modprobe nbd最初に行う必要があります。)

次を使用して、Ubuntuシステムにブロックデバイスがあることを確認できますlsblk

$ sudo lsblk -l
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                    8:0    0 465.8G  0 disk 
sda1                   8:1    0   243M  0 part /boot
sda2                   8:2    0     1K  0 part 
sda5                   8:5    0 465.5G  0 part 
ubuntu-root (dm-0)   252:0    0 461.7G  0 lvm  /
ubuntu-swap_1 (dm-1) 252:1    0   3.8G  0 lvm  [SWAP]
sr0                   11:0    1 654.8M  0 rom  
nbd0                  43:0    0   643M  1 disk 
nbd0p1                43:1    0   643M  1 part 

そして今、それをマウントします:

$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
うまくいきましたか?

サスペンスは私を殺している、と私たちはリフトオフがあります:

$ sudo ls /mnt/
EFI  GPL  isolinux  LiveOS

Fedora 19ラップトップにマウントしたCentOSのLiveCDのコンテンツがあり、Ubuntuのネットワークのブロックデバイスとしてマウントできました。


「警告」コマンドラインでのエクスポートの指定は廃止されました。代わりに構成ファイルを使用してください。バージョン:3.3
guettli 14

@guettli-フィードバックをありがとう。これはどのディストリビューションにありましたか?
slm

@sim openSUSE 13.1
ゲットリ

注:greeneggsは、サーバーのホスト名です。
デビウス14年

1
古いスタイルのプロトコル(つまり、各デバイスに1つのポートを使用)がいくつかのバージョンで非推奨としてマークされ、nbd 3.10で削除されたことに注意してください 。
maxschlepzig

20

nbd(興味がある場合)の1つの代替方法は、iSCSIの使用です。特定のiSCSI IQNのバッキングストレージとしてデバイスtgtdを持つように構成できます/dev

RHELシステムを使用している場合は、ソースシステムにインストールscsi-target-utilsして構成/起動するだけですtgtd。の設定がtgtd関与する可能性がありますが、Red Hatはさまざまなシナリオのさまざまな例を提供します。

例えば:

<target iqn.2008-09.com.example:server.target4>
    direct-store /dev/sdb      # Becomes LUN 1
    direct-store /dev/sdc      # Becomes LUN 2
    direct-store /dev/sdd      # Becomes LUN 3
    write-cache off
    vendor_id MyCompany Inc.
</target>

Fedora / RHELで起動するには:

# systemctl start tgtd.service
# firewall-cmd --add-service iscsi-target

iscsi-initiator-utilsクライアントシステムにインストールし、iscsiadmターゲットの送信に使用して、列挙されたターゲットに「ログイン」します。例えば:

# iscsiadm -m discovery -t sendtargets -p <remoteHost>
# iscsiadm -m node -T <Complete Target IQN> -l -p <remoteHost>

iSCSI LUNは通常のブロックデバイスとしてシステムに提示されます。RHELでは、特定のデバイスがやってくるトランスポートをチェックできls -l /dev/disk/by-path | grep iscsi、iSCSIを介してどのストレージがやってくるかを見ることができます。パスには、上記でログインしたターゲットのIQNもリストされます。

iscsiデバイスが不要になったら、次の方法で削除できます。

# iscsiadm -m node -T <Complete Target IQN> -u -p <remoteHost>

2
必要に応じて、このAU QにもAを追加できるので、これを作成するよう促されました。askubuntu.com
slm

私はそうしますが、パッケージ名が同じであることを確認したり、参照した構成例がアップストリームであるか、Red Hatが何かをしている場合、Ubuntuシステムは実際には便利ではありません。ただし、構成自体は同じである必要があります。
Bratchley

1
ジョエル、最高だ... Ubuntuシステムなし8
slm

1
実際には、NBDよりもセットアップが簡単でした。現在のNBDの問題は、Googleで見つけるサンプル/ドキュメントのほとんどが古いスタイルの構成を使用しており、現在のバージョンではそのサポートが削除されていることです。また、バージョン<3.10には読み取り専用のバグがある可能性があります
maxschlepzig

9

あなたは明らかにSANソリューションを好みます。既に述べたiSCSIおよびNBDのほかに、AoE(イーサネット経由のATA)アプローチもあります。

これは非常に簡単です。

サービング側であなたがする必要があります

modprobe aoe
vbladed 0 0 eth0 /dev/sdc

クライアント側で

modprobe aoe
aoe-discover
aoe-stat
e0.0      1000.204GB       eth0 1024  up

お使いのデバイスは

ls -l /dev/etherd/
c-w--w----  1 root disk 152, 3 Mar 12 22:47 discover
brw-rw----  1 root disk 152, 0 Mar 12 22:47 e0.0
brw-rw----  1 root disk 152, 1 Mar 12 22:47 e0.0p1
cr--r-----  1 root disk 152, 2 Mar 12 22:47 err
c-w--w----  1 root disk 152, 6 Mar 12 22:47 flush
c-w--w----  1 root disk 152, 4 Mar 12 22:47 interfaces
c-w--w----  1 root disk 152, 5 Mar 12 22:47 revalidate

どこにe0.0され、あなた/dev/sdce0.0.p1IS/dev/sdc1

dmesg サーバー上:

[221384.454447] aoe: AoE v85 initialised.

dmesg クライアントでの出力:

[ 1923.225832] aoe: AoE v85 initialised.
[ 1923.226379] aoe: e0.0: setting 1024 byte data frames
[ 1923.226910] aoe: 38607725d8b1 e0.0 v4014 has 1953525168 sectors
[ 1923.653820]  etherd/e0.0: p1

とても簡単。

その他の注意事項

  • vbladedvbladeFedoraおよびUbuntuのパッケージの一部であり、他のディストリビューションでも同様です。
  • aoe-discoveraoe-stataoetools、FedoraおよびUbuntuのパッケージの一部でもあります。
  • デバイスはfdisk、ブロックデバイスとして表示されます(例:)/dev/etherd/e0.0
  • vbladeF19およびF20リポジトリで利用可能なバージョンはかなり古く、バージョン14です。ATAoEプロジェクトページにはバージョン21があります。あります、ここではFedora 19 x86_64のために利用可能な更新RPMが

このb / w FedoraとUbuntuを試してみましたが、機能していません。
slm

私は通常、投稿する前にすべてをチェックします。Q:aoeはロードされますか?適切な議論をしましたか?受信機で:青江は相手を見つけましたか?何て言うのdmesg

私はあなたが知っている、私はそれがいくつかの追加のステップがあるかもしれないことだけが間違っていたことを暗示していませんでした8
slm

余分な手順はありません。これは本当に簡単な作業です。

1
ROTFL、そしてあなたもスマートフォンを数えましたか?

1

このソリューションは機能しますが、TMWTDIを示す方法としてのみ提示されます。

このセットアップには、ブロックデバイスをホストするためのUNIXに触発されたシステムと、システムがそれを表示するためのループバックブロックデバイスを持つシステムが必要です。Linuxは両方で機能します。

次に、sambaやwebdavなどのダムネットワークファイルシステムが必要です(データストレージの最適化を行ってはなりません)。特にNFS、およびAFSは機能しません。

エクスポートされたフォルダーにブロックデバイスを配置します。(man mknod役立つでしょう。)該当する場合、ブロックデバイスチェックを無効にします。エクスポートされたファイルシステムをクライアントコンピューターにマウントし、インポートされたファイルをバッキングストアとして使用してループデバイスを作成し、通常どおりにマウントします。(losetupまたはmount -o loop

それがどのように、そしてなぜ機能し、なぜパフォーマンスが悪いのか:UNIXの背後にある核となるアイデアの1つは、すべてがファイルであるため、デバイスはファイルが少し特別なだけであるということです(そのため、特殊ファイルと呼ばれます)。mknodが生成できる特殊ファイルにはいくつかの種類がありますが、ここではブロックデバイスのみを取り上げます。ブロックデバイスは、他のファイルと同じようにファイルシステムに存在し、所有者、許可、inode、および名前を持つ他のファイルと同じです。ただし、2つの違いがあります。データをファイルシステムに保存しないことと、マウントできるように追加の機能があることです。ファイルサーバーがこれらの違いに注意を払わないほど物足りない場合は、それらを無視して通常のファイルとしてエクスポートできます。次に、ループデバイスは通常のファイル(ローカルまたはリモート)を受け取り、特別なプロパティと機能を追加して、ブロックデバイスであるかのように通常のファイルをマウントできるようにします。大きな欠点はパフォーマンスです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.