付録A node_prep_inventory.yml ファイルについて

node_prep_inventory.yml ファイルは、Red Hat Hyperconverged Infrastructure for Virtualization クラスターの代替ホストを準備するために使用できる Ansible インベントリーファイルの例です。

このファイルは、いずれかのハイパーコンバージドホストの /etc/ansible/roles/gluster.ansible/playbooks/hc-ansible-deployment/node_prep_inventory.yml にあります。

A.1. 交換用ノードを準備するための設定パラメーター

A.1.1. 設定するホスト

hc_nodes

ホストのバックエンド FQDN を使用するハイパーコンバージドホストのリストおよびそのホストの設定詳細。ホスト固有の設定は、ホストのバックエンド FQDN の下に定義されます。すべてのホストに共通する設定は vars: セクションで定義されます。

hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      [configuration specific to this host]
  vars:
    [configuration common to all hosts]

A.1.2. マルチパスデバイス

blacklist_mpath_devices (オプション)

デフォルトでは、Red Hat Virtualization Host はマルチパス設定を有効にし、ディスクに基礎となるマルチパス設定がなくても、すべてのディスクに一意のマルチパス名とワールドワイド識別子を提供します。マルチパスデバイス名がリスト表示されるデバイスに使用されていないようにマルチパス設定がない場合は、このセクションを追加してください。ここに記載されていないディスクは、マルチパス設定が利用可能であると想定され、インベントリーファイルの後続のセクションで定義する際には、/dev/sdx の代わりにパスフォーマット /dev/mapper/<WWID> が必要となります。

4 つのデバイス (sdasdbsdc、および sdd) を持つサーバーでは、以下の設定は 2 つのデバイスをブラックリストに指定します。パスの形式 /dev/mapper/<WWID> は、このリストに記載されていないデバイスで想定されています。

hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      blacklist_mpath_devices:
        - sdb
        - sdc
重要

blacklist_mpath_devices に暗号化デバイス (luks_* デバイス) をリストしないでください。マルチパス設定が機能する必要があるためです。

A.1.3. 重複排除と圧縮

gluster_infra_vdo (optional)

このセクションでは、重複排除と圧縮を使用するデバイスのリストを定義します。これらのデバイスには、gluster_infra_volume_groups でボリュームグループとして定義する際に、/dev/mapper/<name> パス形式が必要です。リスト表示される各デバイスには以下の情報が必要です。

name
VDO デバイスの省略名 (vdo_sdc など)。
device
使用するデバイス (例: /dev/sdc)
logicalsize
VDO ボリュームの論理サイズ。物理ディスクサイズが 10 倍になるようにします。たとえば、500 GB のディスクがある場合は、logicalsize: '5000G' を設定します。
emulate512
ブロックサイズが 4 KB のデバイスを使用する場合には、これを on に設定します。
slabsize
ボリュームの論理サイズが 1000 GB 以上である場合は、これを 32 G に設定します。論理サイズが 1000 GB 未満の場合は、これを 2 G に設定します。
blockmapcachesize
これを 128 M に設定します。
writepolicy
これは auto に設定します。

以下に例を示します。

hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      gluster_infra_vdo:
      - { name: 'vdo_sdc', device: '/dev/sdc', logicalsize: '5000G',
        emulate512: 'off', slabsize: '32G', blockmapcachesize: '128M',
        writepolicy: 'auto' }
      - { name: 'vdo_sdd', device: '/dev/sdd', logicalsize: '500G',
        emulate512: 'off', slabsize: '2G', blockmapcachesize: '128M',
        writepolicy: 'auto' }

A.1.4. ストレージインフラストラクチャー

gluster_infra_volume_groups (required)

本セクションでは、論理ボリュームを含むボリュームグループを作成します。

hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      gluster_infra_volume_groups:
        - vgname: gluster_vg_sdb
          pvname: /dev/sdb
        - vgname: gluster_vg_sdc
          pvname: /dev/mapper/vdo_sdc
gluster_infra_mount_devices (required)

このセクションでは、Gluster ブリックを形成する論理ボリュームを作成します。

hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      gluster_infra_mount_devices:
        - path: /gluster_bricks/engine
          lvname: gluster_lv_engine
          vgname: gluster_vg_sdb
        - path: /gluster_bricks/data
          lvname: gluster_lv_data
          vgname: gluster_vg_sdc
        - path: /gluster_bricks/vmstore
          lvname: gluster_lv_vmstore
          vgname: gluster_vg_sdd
gluster_infra_thinpools (optional)

このセクションでは、シンプロビジョニングされたボリュームが使用する論理シンプールを定義します。シンプールは engine ボリュームには適していませんが、vmstore および data ブリックに使用できます。

vgname
このシンプールが含まれるボリュームグループの名前。
thinpoolname
gluster_thinpool_sdc などのシンプールの名前。
thinpoolsize
このボリュームグループに作成されるすべての論理ボリュームのサイズの合計。
poolmetadatasize
16 G に設定します。これは、サポートされるデプロイメント用に推奨されるサイズです。
hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      gluster_infra_thinpools:
        - {vgname: 'gluster_vg_sdc', thinpoolname: 'gluster_thinpool_sdc', thinpoolsize: '500G', poolmetadatasize: '16G'}
        - {vgname: 'gluster_vg_sdd', thinpoolname: 'gluster_thinpool_sdd', thinpoolsize: '500G', poolmetadatasize: '16G'}
gluster_infra_cache_vars (optional)

このセクションでは、低速なデバイスのパフォーマンスを改善するためにキャッシュ論理ボリュームを定義します。高速キャッシュデバイスはシンプールに割り当てられ、gluster_infra_thinpool を定義する必要があります。

vgname
高速な外部キャッシュを必要とするデバイスを持つボリュームグループの名前。
cachedisk
出力デバイスとファーストデバイスのパスをコンマで区切って指定します。例えば、出力デバイス sdb でキャッシュデバイス sde を使用する場合は、/dev/sdb/dev/sde と指定します。
cachelvname
このキャッシュ論理ボリュームの名前。
cachethinpoolname
高速キャッシュボリュームが割り当てられているシンプール。
cachelvsize
キャッシュ論理ボリュームのサイズ。このサイズの約 0.01% がキャッシュメタデータに使用されます。
cachemode
キャッシュモード。有効な値は writethrough および writeback です。
hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      gluster_infra_cache_vars:
        - vgname: gluster_vg_sdb
          cachedisk: /dev/sdb,/dev/sde
          cachelvname: cachelv_thinpool_sdb
          cachethinpoolname: gluster_thinpool_sdb
          cachelvsize: '250G'
          cachemode: writethrough
gluster_infra_thick_lvs (required)

ブリックの作成に使用するシックにプロビジョニングされた論理ボリューム。engine ボリュームのブリックはシックにプロビジョニングされている必要があります。

vgname
論理ボリュームを含むボリュームグループの名前。
lvname
論理ボリュームの名前。
サイズ
論理ボリュームのサイズ。engine の論理ボリュームには 100 G が必要です。
hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      gluster_infra_thick_lvs:
        - vgname: gluster_vg_sdb
          lvname: gluster_lv_engine
          size: 100G
gluster_infra_lv_logicalvols (required)

ブリックの作成に使用するシンプロビジョニングされた論理ボリューム。

vgname
論理ボリュームを含むボリュームグループの名前。
thinpool
このボリュームがシンプロビジョニングされている場合、論理ボリュームを含むシンプール。
lvname
論理ボリュームの名前。
サイズ
論理ボリュームのサイズ。engine の論理ボリュームには 100 G が必要です。
hc_nodes:
  hosts:
    new-host-backend-fqdn.example.com:
      gluster_infra_lv_logicalvols:
        - vgname: gluster_vg_sdc
          thinpool: gluster_thinpool_sdc
          lvname: gluster_lv_data
          lvsize: 200G
        - vgname: gluster_vg_sdd
          thinpool: gluster_thinpool_sdd
          lvname: gluster_lv_vmstore
          lvsize: 200G
gluster_infra_disktype (required)

ディスクの基礎となるハードウェア設定を指定します。お使いのハードウェアに合った値に設定してください。RAID6RAID5JBOD のいずれかです。

hc_nodes:
  vars:
    gluster_infra_disktype: RAID6
gluster_infra_diskcount (required)

RAID セット内のデータディスクの数を指定します。JBOD ディスクタイプの場合は、これを 1 に設定します。

hc_nodes:
  vars:
    gluster_infra_diskcount: 10
gluster_infra_stripe_unit_size (required)

RAID セットのストライプサイズ (メガバイト単位)

hc_nodes:
  vars:
    gluster_infra_stripe_unit_size: 256
gluster_features_force_varlogsizecheck (required)

デプロイメントプロセス中に /var/log パーティションに十分な空き領域があることを確認する場合は、true に設定します。ログに十分なスペースを確保することが重要になりますが、スペースの要件を慎重に監視する場合は、デプロイメント時に領域の要件を確認する必要はありません。

hc_nodes:
  vars:
    gluster_features_force_varlogsizecheck: false
gluster_set_selinux_labels (required)

SELinux が有効な場合にボリュームにアクセスできることを確認します。このホストで SELinux が有効になっている場合は、true に設定します。

hc_nodes:
  vars:
    gluster_set_selinux_labels: true

A.1.5. ファイアウォールおよびネットワークインフラストラクチャー

gluster_infra_fw_ports (required)

すべてのノード間で開くべきポートのリストで、<port>/<protocol> の形式で指定します。

hc_nodes:
  vars:
    gluster_infra_fw_ports:
       - 2049/tcp
       - 54321/tcp
       - 5900-6923/tcp
       - 16514/tcp
       - 5666/tcp
       - 16514/tcp
gluster_infra_fw_permanent (必須)

ノードの再起動後に、gluster_infra_fw_ports にリスト表示されるポートが開放されていることを確認します。実稼働環境のユースケースでは、これを true に設定します。

hc_nodes:
  vars:
  gluster_infra_fw_permanent: true
gluster_infra_fw_state (required)

ファイアウォールを有効にします。実稼働環境のユースケースで、この値を enabled に設定します。

hc_nodes:
  vars:
    gluster_infra_fw_state: enabled
gluster_infra_fw_zone (必須)

これらの gluster_infra_fw_\* パラメーターが適用されるファイアウォールゾーンを指定します。

hc_nodes:
  vars:
    gluster_infra_fw_zone: public
gluster_infra_fw_services (required)

ファイアウォールを介して許可するサービスのリストglusterfs がここで定義されていることを確認してください。

hc_nodes:
  vars:
  gluster_infra_fw_services:
     - glusterfs