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

Linux NBD チュートリアル:ネットワーク ブロック デバイス ジャンプスタート ガイド

これは Dhineshkumar Manikannan によって書かれたゲスト投稿です。

ネットワーク ブロック デバイスは、ローカル マシンに物理的に存在しないリモート ストレージ デバイスにアクセスするために使用されます。ネットワーク ブロック デバイスを使用すると、ローカル マシンで次の 3 つの方法でリモート ストレージ デバイスにアクセスして使用できます。

<オール>
  • スワップ
  • ファイル システム
  • 未加工


  • NBD は、リモート リソースをローカル リソースとしてクライアントに提示します。また、NBD ドライバは、リモート リソースを Linux のローカル デバイスのように見せ、安価で安全なリアルタイム ミラーを構築できるようにします。
    NBD を使用して、リモート マシンのストレージ領域をローカル マシンのスワップ領域として使用することもできます。 br />
    NBD ベースのファイル システムをセットアップするには、nbd-server (コンテンツにアクセス/作成するリモート マシン上) と nbd-client (リモート ストレージにアクセスするローカル マシン上) が必要です。デバイスをローカルに)

    I. NBD サーバー側の設定手順

    1. nbd-server をインストール

    Debian フレーバーで作業している場合は、apt-get で nbd-server を取得してください。

    # apt-get install nbd-server

    2.ファイル コンテンツを作成する

    以下に示すように、dd を使用してファイルを作成します。

    # dd if=/dev/zero of=/mnt/dhini bs=1024 count=36000


    mke2fs を使用して、/mnt/dhini をファイルシステムとして作成します。

    # mke2fs /mnt/dhini


    /mnt/dhini を ext2 ファイル システムにしようとすると、以下のような警告メッセージが表示される場合があります。続行するには y を押してください。

    /mnt/dhini is not a block special device.
    Proceed anyway? (y,n) y

    3. NBD サーバー デーモンを起動

    Syntax: nbd-server  port-number   filename/filesystem
    
    # nbd-server 1043 /mnt/dhini


    以下に示すように、複数のポートで nbd-server を実行することもできます。

    # nbd-server 1043 1077 1076 /mnt/dhini

    タイムアウトを指定して、サーバーが N アイドル秒実行するようにすることもできます

    II. NBD クライアント側の設定手順

    リモート ストレージ デバイスにアクセスするクライアント マシンで次の手順を実行します。

    1. nbd-client をインストール

    Debian フレーバーに取り組んでいる場合は、apt-get を通じて nbd-client を入手してください。

    # apt-get install nbd-client

    2. nbd-client を使用して、クライアント マシンにファイル システムを作成します

    Syntax: nbd-client  server-ip  server-port#  filename/filesystem
    
    # nbd-client 192.168.1.11 1043 /mnt/dhini
    
    Starting NBD client process: Connecting...Negotiation: ..size = 36000KB
    bs=1024, sz=36000
    connected /mnt/dhini
    Activating...
    fsck 1.39-WIP (31-Dec-2005)
    /mnt/dhini: Superblock last write time is in the future.  FIXED.
    /mnt/dhini has gone 49710 days without being checked, check forced.
    /mnt/dhini: |===============================| 56.0%
    /mnt/dhini: |===============================| 100.0%


    100% になると、同じパス上のローカル マシンにブロック デバイスが取得されます。

    $ls -lh /mnt/dhini
    brw-r--r-- 1 root root 43, 0 2009-02-05 17:31 /mnt/dhini


    NBD 構成プロセス中に問題が発生した場合は、dpkg-reconfigure を使用して nbd-server と nbd-client を構成することもできます。

    III.クライアント側でファイル システムをマウントする

    # mkdir /rem_space
    # mount /mnt/dhini /rem_space
    

    マウントすると、「lost+found」でディレクトリを取得できます。この時点から、ファイルとディレクトリへの適切なアクセスを開始できます。

    IV.サーバー側でクライアントの変更を取得

    nbd ファイルシステムをローカルにマウントします

    # mount  -o loop /mnt/dhini /client_changes


    「-o loop」オプションを使用していない場合、次のエラーが発生する可能性があります:

    mount: /mnt/dhini is not a block device (maybe try `-o loop'?)
    


    /client_changes を一覧表示すると、クライアントが作成したすべてのファイルとディレクトリが適切に取得されます。

    V.ローカル スワップ メモリ領域としてリモート ストレージにアクセス

    サーバー側の構成:

    1.ファイルを作成

    # dd if=/dev/zero of=/mnt/dhini bs=1024 count=16000

    2. ext2 ファイルシステムにファイルを作成する代わりに、mkswap を使用してスワップ ファイルとして作成します

    # mkswap /mnt/dhini

    3.サーバー デーモンを実行する

    # nbd-server 1043 /mnt/dhini

    クライアント側の構成:

    1.ファイルシステムをスワップ領域として取得

    # nbd-client 192.168.1.11 1043 -swap  /mnt/dhini

    2. 「cat /proc/swaps」でクロスチェック。これにより、スワップ領域が一覧表示されます

    $ cat /proc/swaps
    Filename    Type       Size      Used    Priority
    /dev/hda4   partition  650624     57732  -1
    /mnt/dhini  partition  15992    0        -4


    この記事は Dhineshkumar Manikannan によって書かれました。 彼は bk Systems (p) Ltd で働いており、オープン ソースへの貢献に関心があります。 The Geek Stuff はあなたのヒントやゲスト記事を歓迎します


    Linux
    1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

    2. Linux – / dev / xvde1?

    3. Linux – / sys / block / sda1/statと/sys/ block / xvda1 / statの違いは?

    1. Linux – / usr/binと/usr/sbinを/bin(gnu / linux)にマージしますか?

    2. Linux で仮想ブロック デバイス (ループ デバイス/ファイルシステム) を作成する方法

    3. ユーザー空間のLinuxブロックデバイスドライバーを作成するには?

    1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

    2. /dev/null に書き込む仮想ブロック デバイスを作成します。

    3. 推奨される使用方法に従って、Web サイトは /var/ または /usr/ に配置する必要がありますか?