web-dev-qa-db-ja.com

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

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

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

42
slm

nbdに代わる1つの方法(興味がある場合)は、iSCSIを使用することです。 tgtdは、特定のiSCSI IQNのバッキングストレージとして/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>
20
Bratchley

SANソリューションをお勧めします。すでに述べたiSCSIおよびNBDの他に、AoE(ATA over ethernet)アプローチもあります。

これは非常に簡単です。

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

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/sdcおよびe0.0.p1/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

とても簡単。

その他の注意事項

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

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

このセットアップでは、ブロックデバイスをホストするUNIX風のシステムと、システムがそれを表示するためのループバックブロックデバイスを備えたシステムが必要です。 Linuxはどちらでも動作します。

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

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

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

1
hildred