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

分散ボリュームは、イレイジャーコーディングに基づいています。イレイジャーコーディング (EC) はデータ保護の手段で、データをフラグメントに分割し、冗長データで拡張およびエンコードして、複数の異なる場所に格納します。これにより、障害発生時に、1 つ以上のブリックに保存されているデータを復旧できます。データの損失なしに失敗する可能性のあるブリックの数は、冗長性数を設定することで設定されます。
分散ボリュームでは、複製ボリュームと比較してストレージ領域の使用量が少なくなります。これは、サイズが 2 の複製プールと同じですが、冗長性レベルが 2 に設定されている場合に 1 TB ではなく 1.5 TB が必要です。分散ボリュームでは、各ブリックはデータおよびパリティーまたは冗長性の一部を保存します。分散されるボリュームは、冗長性レベルに基づいてデータの損失を持続します。
重要
分散されるボリューム構成は、JBOD ストレージでのみサポートされます。詳細は、「JBOD」 を参照してください。

図5.4 障害の発生したボリューム図

障害の発生したボリューム図
イレイジャーコーディングにより提供されるデータ保護は、n = k + m の式で単純な形式で表すことができます。ここでは、n はブリックの合計数で、リカバリーには k ブリックから n ブリックが必要になります。つまり、障害を任意の m ブリックまで許容できます。今回のリリースで、以下の設定がサポートされるようになりました。
  • 冗長性レベル 2 (4 + 2) の 6 ブリック
  • 冗長性レベル 2 (8 + 2) の 10 ブリック
  • 冗長性レベル 3 (8 + 3) の 11 ブリック
  • 冗長性レベル 4 (8 + 4) の 12 ブリック
  • 冗長性レベル 4 (16 + 4) の 20 ブリック
フォールトトレランスを最適化するには、個別のサーバーに各ブリックを作成します。1 台のサーバーで複数のブリックを作成できますが、1 台のサーバーでのブリックの数が多いほど、1 台のサーバーが利用できなくなった場合に可用性と一貫性のリスクが高まります。
gluster volume create を使用して異なる種別のボリュームを作成し、gluster volume info を使用してボリュームが正常に作成されていることを確認します。
前提条件
重要
Red Hat では、Dispersed ボリュームを作成する前に、「分散ボリュームの作成」 で説明されている Dispersed Volume 設定の推奨事項を確認することを推奨します。
分散ボリュームの作成
  1. gluster volume create コマンドを実行して、分散ボリュームを作成します。
    構文は # gluster volume create NEW-VOLNAME [disperse-data COUNT] [redundancy COUNT] [transport tcp | rdma (Deprecated) | tcp,rdma] NEW-BRICK... です。
    ディスパースボリュームの作成に必要なブリック数は、disperse-data countredundancy count の合計です。
    disperse-data count オプションは、分散するブリック数を除く、分散ボリュームの一部であるブリック数を指定します。たとえば、ブリックの合計数が 6 で、redundancy-count が 2 の場合、分散データ数は 4(6 - 2 = 4) になります。 disperse-data count オプションが指定されず、redundancy count オプションのみを指定すると、指定したブリックの合計数を排除して、disperse-data count が自動的に計算されます。
    冗長性により、ボリュームの操作を中断することなく、失われたブリックの数を決定します。redundancy count が指定されていない場合は、設定をもとに自動的に最適な値に計算され、警告メッセージが表示されます。
    transport のデフォルト値は tcp です。auth.allowauth.reject などの他のオプションを渡すことができます。パラメーターの全一覧は、「暗号化したディスクについて」 を参照してください。

    例5.8 6 台のストレージサーバーを使用した分散ボリューム

    # gluster v create glustervol disperse-data 4 redundancy 2 transport tcp server1:/rhgs1/brick1 server2:/rhgs2/brick2 server3:/rhgs3/brick3 server4:/rhgs4/brick4 server5:/rhgs5/brick5 server6:/rhgs6/brick6
    volume create: glutervol: success: please start the volume to access data
  2. # gluster volume start VOLNAME を実行してボリュームを起動します。
    # gluster v start glustervol
    volume start: glustervol: success
    重要
    open-behind ボリュームオプションは、デフォルトで有効になっています。SMB プロトコルを使用して分散されたボリュームにアクセスする場合、大きなファイルワークロードでパフォーマンスのボトルネックを防ぐために、open-behind ボリュームオプションを無効にする必要があります。以下のコマンドを実行して、open-behind ボリュームオプションを無効にします。
    # gluster volume set VOLNAME open-behind off
    open-behind ボリュームオプションの詳細は、「ボリュームオプションの設定」 を参照してください。
  3. gluster volume info コマンドを実行して、必要に応じてボリューム情報を表示します。