5.4. 分散ボリュームの作成

このタイプのボリュームは、ファイルをボリュームのブリック全体に分散します。

図5.1 分散ボリュームの図

2 台のサーバーで構成される分散ボリュームの図。server1 ブリックに 2 つのファイルが表示され、1 つのファイルが server2 ブリックに表示されます。分散ボリュームは、1 つのマウントポイントに設定されます。
警告
分散ボリュームは、ボリュームのブリック全体に無作為に分散されるため、ディスクまたはサーバーの障害時に大きなデータ損失が発生する可能性があります。そのため、実稼働環境で使用する前にアーキテクチャーレビューが必要になります。
アーキテクチャーレビューについては、配布されるボリュームのみを使用するように Red Hat アカウントチームまでお問い合わせください。
冗長性が重要ではない場合や、他のハードウェアやソフトウェア層から提供される分散ボリュームのみを使用します。その他の場合は、分散レプリケーションのボリュームなど、冗長性を提供するボリューム種別の 1 つを使用します。
分散ボリュームのみの制限には、以下が含まれます。
  1. インサービスのアップグレードなし: アップグレード時に分散されるボリュームのみオフラインでなければなりません。
  2. 時折発生するディレクトリーエントリーと inode の一時的な不整合。
  3. I/O 操作は、ノードが利用不可または結果として生じるノードの障害によりブロックまたは失敗します。
  4. データの永久損失。

分散ボリュームの作成

Gluster volume create コマンドを使用して、異なるタイプのボリュームを作成し、gluster volume info コマンドでボリュームの作成が正常に行われたことを確認します。

前提条件

  1. gluster volume create コマンドを実行して、分散ボリュームを作成します。
    構文は gluster volume create NEW-VOLNAME [transport tcp | rdma(Deprecated)| tcp,rdma] NEW-BRICK です。
    transport のデフォルト値は tcp です。auth. allow や auth. reject などの他のオプションを渡すことができます。パラメーターの全一覧は、「ボリュームオプションの設定」 を参照してください。
    このオプションによりパフォーマンスが低下する可能性があるため、Red Hat では、分散ボリュームで performance.client-io-threads オプションを無効にすることを推奨します。以下のコマンドを実行して performance.client-io-threads を無効にします。
    # gluster volume set VOLNAME performance.client-io-threads off

    例5.1 2 つのストレージサーバーを使用した分散ボリューム

    # gluster v create glustervol server1:/rhgs/brick1 server2:/rhgs/brick1
    volume create: glutervol: success: please start the volume to access data

    例5.2 4 サーバーを使用した InfiniBand への分散ボリューム

    # gluster v create glustervol transport rdma server1:/rhgs/brick1 server2:/rhgs/brick1 server3:/rhgs/brick1 server4:/rhgs/brick1
    volume create: glutervol: success: please start the volume to access data
  2. # gluster volume start VOLNAME を実行してボリュームを起動します。
    # gluster v start glustervol
    volume start: glustervol: success
  3. Gluster ボリューム情報 コマンドを実行して、必要に応じてボリューム情報を表示します。
    # gluster volume info
    Volume Name: test-volume
    Type: Distribute
    Status: Created
    Number of Bricks: 2
    Transport-type: tcp
    Bricks:
    Brick1: server1:/rhgs/brick
    Brick2: server2:/rhgs/brick