DVDやCDROMなどのブロックデバイスをエクスポートして、ブロックデバイスとして別のコンピューターにマウントできるようにすることはできますか?
注: NFSやSambaを使用してこれを行うことには興味がありません。実際には、光学式ドライブをリモートコンピュータの光学式ドライブとして表示したいのですが。
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>
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-discover
&aoe-stat
は、FedoraとUbuntuでもaoetools
パッケージの一部です。fdisk
にブロックデバイスとして表示されます(例:/dev/etherd/e0.0
。vblade
のバージョンはかなり古く、バージョン14です。ATAoEプロジェクトページにはバージョン21があります。 ここにFedora 19 x86_64で利用可能な更新済みRPM があります。このソリューションは機能しますが、そのTMWTDIを示す方法としてのみ提示されています。
このセットアップでは、ブロックデバイスをホストするUNIX風のシステムと、システムがそれを表示するためのループバックブロックデバイスを備えたシステムが必要です。 Linuxはどちらでも動作します。
次に、sambaやwebdavなどのダムネットワークファイルシステムが必要です(データストレージを最適化してはなりません)。特にNFS、およびAFSは機能しません。
エクスポートされたフォルダーにブロックデバイスを配置します。 (man mknod
が役立ちます。)該当する場合、ブロックデバイスチェックを無効にします。エクスポートしたファイルシステムをクライアントコンピューターにマウントし、インポートしたファイルをバッキングストアとして使用してループデバイスを作成し、通常どおりにマウントします。 (losetup
またはmount -o loop
)
どのように、そしてそれが機能し、なぜパフォーマンスが悪いのか:unixの背後にある核となるアイデアの1つは、すべてがファイルであることです。 mknodが生成できる特殊ファイルにはいくつかのタイプがありますが、ここではブロックデバイスのみを取り上げます。ブロックデバイスは、他のファイルと同様に、所有者、権限、iノード、および名前を持つ他のファイルと同様に、ファイルシステムに存在します。ただし、2つの違いがあります。データをファイルシステムに保存しないことと、マウントできるように追加機能を備えていることです。ファイルサーバーがこれらの違いに注意を払わないほど馬鹿げている場合は、それらを無視して通常のファイルとしてエクスポートできます。次に、ループデバイスは通常のファイル(ローカルまたはリモート)を受け取り、特別なプロパティと機能を追加して、通常のファイルをブロックデバイスのようにマウントできるようにします。大きな欠点はパフォーマンスです。