DSE Tiered Storage(DSE階層化ストレージ)の構成

ストレージ・メディア間でのスマートなデータ移動を自動化するためのDSE Tiered Storage(DSE階層化ストレージ)の構成に関するドキュメント。

ストレージ・メディア間のデータ移動の構成は、ノード・レベルとスキーマ・レベルで行われます。
  • ストレージの場所とストレージの場所を定義する階層を定義するためのストレージ・ストラテジを、dse.yamlファイルのノード・レベルで構成します。

    OpsCenterのLifecycle Managerを使用して構成ジョブを実行し、適用可能なノードに構成をプッシュします。

    さまざまなユース・ケースに対して、複数の構成を定義できます。複数の異機種ディスク構成がサポートされています。

    DataStaxは、クラスター全体にデプロイする前に、ローカル構成をテストすることを推奨します。

  • スキーマ・レベルで経過時間ポリシーを構成します。

    唯一サポートされているデータ使用量ポリシーはパーティションの経過時間です。階層の経過時間のしきい値は、テーブルがコンパクション・ストラテジTieredCompactionStrategyで作成されるときに設定されます。

DSE Tiered Storage(DSE階層化ストレージ)で使用されるデータ・セットは非常に大きくなる可能性があります。検索制限事項と既知のApache Solrの問題が適用されます。

dse.yaml

dse.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/dse.yaml
tarボール・インストール installation_location/resources/dse/conf/dse.yaml

手順

  1. 各ノードの dse.yaml ファイルでtiered_storage_optionsセクションのコメントを解除します。
  2. 階層化ストレージ・ストラテジごとに、各階層の構成名、ストレージ階層、およびデータ・ディレクトリーの場所を定義します。
    1. ストレージ階層を優先順位で定義します。その階層の中で最速のストレージ・メディアが、リストの最初にきます。
    2. 階層ごとに、データ・ディレクトリーの場所を定義します。
    この形式を使用します。ここで、config_nameは、CREATE TABLEまたはALTER TABLE文で参照する階層化ストレージ・ストラテジです。config_nameは、すべてのノードで同じでなければなりません。
    tiered_storage_options:
      config_name:
        tiers:
          - paths:
              - path_to_directory1
          - paths:
              - path_to_directory2
    ここで、
    • config_name階層化ストレージ構成ストラテジの構成可能な名前です。たとえば、strategy1のようになります。
    • 階層は優先順位を定義するパスとファイル・パスによりストレージ階層を定義するこのセクションです。
    • パスはディスク構成のこの階層のデータ・ディレクトリーを定義するファイル・パスのセクション。通常、最も高速なストレージ・メディアを最初にリストします。これらのパスは、階層化ストレージを使用するように構成されたデータを格納するためにのみ使用されます。これらのパスは、cassandra.yamlファイルの設定とは関係ありません。 です。
    たとえば、strategy1という名前の階層化ストレージ構成には、3つの異なるストレージ階層が優先順位順に並べられています(リストの最初の階層が最も優先順位が高い)。
    tiered_storage_options:
        strategy1:
          tiers: 
            - paths:
              - /mnt1
              - /mnt2
            - paths:
              - /mnt3
              - /mnt4
            - paths:
              - /mnt5
              - /mnt6
  3. 選択したテーブルに階層化ストレージ・ストラテジを適用するには、CREATEまたはALTERテーブル文を使用します。
    たとえば、階層化ストレージをテーブルks.tblに適用するには、以下のようにします。
    CREATE TABLE ks.tbl (k INT, c INT, v INT, PRIMARY KEY (k, c)) 
    WITH COMPACTION={'class':'org.apache.cassandra.db.compaction.TieredCompactionStrategy',  
        'tiering_strategy': 'TimeWindowStorageStrategy', 
        'config': 'strategy1',  
        'max_tier_ages': '3600,7200'};
    コンパクション・オプションを使用して、タイミング・メトリクスを設定します。
    • class

      'class':'org.apache.cassandra.db.compaction.TieredCompactionStrategy'は、階層化ストレージを使用するためのテーブルを構成します。

    • tiering_strategy

      'tiering_strategy': 'TimeWindowStorageStrategy'は、TimeWindowStorageStrategy(TWSS)を使用して、データをどの階層に移動するかを決定します。TWSSは、TimeWindowCompactionStrategy(TWCS)を使用するDSE Tiered Storage(DSE階層化ストレージ)のストラテジです。

    • config

      'config': 'strategy1'は、dse.yamlファイルで構成されているストラテジ(この場合はstrategy1)を使用するように指定します。

    • max_tier_ages
      'max_tier_ages': '3600,7200'はコンマ区切りリストの値を使用して、階層あたりの最大経過時間を秒単位で定義します。ここで、
      • 3600は、第1階層を経過時間が1時間(3600秒)以下のデータに制限します。
      • 7200は、第2階層を経過時間が2時間(7200秒)以下のデータに制限します。
      • 他のすべてのデータは、第3階層に定義されているデータ方向の場所にルーティングされます。
      注: TimeWindowStorageStrategy(TWSS)の場合、DataStaxは、max_tier_agesに指定された各経過時間ごとに1つの階層を定義し、古いデータに対して別の階層を定義することを推奨します。ただし、DataStax Enterpriseは、テーブル・スキーマとdse.yamlファイルで構成されている階層のみを使用します。
      最も古いデータを表す暗黙的階層が存在します。たとえば、dse.yaml内で2つの階層を持つストラテジの場合は、以下のようになります。
      • 'max_tier_ages': '3600,7200'は、3つの階層を使用します。階層0は3600秒より新しいデータ、階層1は3600~7200秒のデータ、階層2は7200秒より古いデータになります。
      • 'max_tier_ages': '3600'は、最初の2つの階層のみを使用します。
      • 'max_tier_ages': '3600,7200,10800’は、3つの階層すべてを使用しますが、最後の値を無視します。最初の2つの階層に属していないデータは、データが10800秒より古いかどうかにかかわらず、第3階層に移動します。
    TWCS用CQLコンパクション・サブプロパティもサポートされています。