GNU/Linux >> Linux の 問題 >  >> Linux

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

ネットワーク ブロック デバイス (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 はこちらにあります。

Linux
  1. あるフォルダのすべてのコンテンツを別のフォルダに置き換える方法

  2. ネットワーク インターフェイスの順序を制御するにはどうすればよいですか?

  3. Linux カーネルからメモリのブロックを予約するにはどうすればよいですか?

  1. ある端末の標準を別の端末にミラーリングするにはどうすればよいですか?

  2. あるマシンから別のマシンにポートを転送する方法は?

  3. Linux コンピューターから Active Directory ユーザー属性を一覧表示するにはどうすればよいですか?

  1. ある mysql データベースから別の mysql データベースにテーブルをコピーする方法

  2. コマンドラインから PHP コードを実行するにはどうすればよいですか?

  3. あるディレクトリから別のディレクトリに最新の上位 10 個のファイルをコピーする方法は?