ネットワーク ブロック デバイス (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 サーバーの名前は greeneggs です。
$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes
(一部のシステムでは - Fedora など - modprobe nbd
にする必要があります 最初に。)
lsblk
を使用して、Ubuntu システムにブロック デバイスがあることを確認できます。 :
$ 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 のネットワークのブロック デバイスとしてマウントできました。
nbd
の代替案の 1 つ (興味がある場合)iSCSIを使用しています。 tgtd
/dev
を持つように構成できます 特定の iSCSI IQN のバッキング ストレージとしてのデバイス。
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
パッケージ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 はこちらにあります。