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