付録C 生成された gdeploy 設定ファイルについての理解

gdeploy は、設定ファイルに基づいて Red Hat Gluster Storage で 1 台または複数のマシンを自動でプロビジョニングします。

Cockpit UI は、Red Hat Hyperconverged Infrastructure のベースレベルデプロイメントを実行するのに適した gdeploy 設定ファイルをユーザーが生成することのできるウィザードを提供します。

本項では、Cockpit UI で以下の設定情報が指定されている場合に生成される gdeploy の設定ファイルについて説明します。

  • IP アドレスが 192.168.0.101、192.168.0.102、192.168.0.103 のホスト 3 台
  • 追加のパッケージやリポジトリーはなし
  • 全ボリュームに Arbiter 設定
  • ストライプサイズが 256 KB の RAID 6 で設定されている 12 のブリック

これにより、以下のセクションが含まれた gdeploy の設定ファイルが生成されます。

本項で定義しているセクションについての情報は、Red Hat Gluster Storage『Administration Guide』を参照してください: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.2/html/administration_guide/chap-red_hat_storage_volumes#chap-Red_Hat_Storage_Volumes-gdeploy_configfile

[hosts] section

[hosts]
192.168.0.101
192.168.0.102
192.168.0.103

[hosts] セクションでは、この設定ファイルに従って設定される3 台の物理マシンの IP アドレスを定義します。

[script1] section

[script1]
action=execute
ignore_script_errors=no
file=/usr/share/ansible/gdeploy/scripts/grafton-sanity-check.sh -d sdb -h 192.168.0.101,192.168.0.102,192.168.0.103

[script1] セクションでは、gdeploy がエラーなしで実行できるように、全ホストが正しく設定されていることを確認するために実行するスクリプトを指定します。

下層のストレージ設定

[disktype]
raid6

[diskcount]
12

[stripesize]
256

[disktype] セクションでは、全ホストの下層のストレージのハードウェア設定を指定します。

[diskcount] セクションでは、RAID ストレージ内のディスク数を指定します。JBOD 構成の場合には、この設定は省略することができます。

[stripesize] セクションでは、RAID ストレージのストライプサイズをキロバイト単位で指定します。JBOD 構成の場合には、この設定は省略することができます。

NTPD の有効化と再起動

[service1]
action=enable
service=ntpd

[service2]
action=restart
service=ntpd

これらのサービスのセクションでは、全ホストで Network Time Protocol デーモン (NTPD) を有効化し、再起動します。

全ホスト上での物理ボリューム作成

[pv1]
action=create
devices=sdb
ignore_pv_errors=no

[pv1] セクションでは、全ホストの sdb デバイスに物理ボリュームを作成しますす。

全ホスト上でのボリュームグループ作成

[vg1]
action=create
vgname=gluster_vg_sdb
pvname=sdb
ignore_vg_errors=no

[vg1] セクションでは、前のステップで全ホスト上に作成した物理ボリュームにボリュームグループを作成します。

論理ボリュームのシンプールの作成

[lv1:{192.168.0.101,192.168.0.102}]
action=create
poolname=gluster_thinpool_sdb
ignore_lv_errors=no
vgname=gluster_vg_sdb
lvtype=thinpool
poolmetadatasize=16GB
size=1000GB

[lv2:192.168.0.103]
action=create
poolname=gluster_thinpool_sdb
ignore_lv_errors=no
vgname=gluster_vg_sdb
lvtype=thinpool
poolmetadatasize=16GB
size=20GB

[lv1:*] セクションでは、最初の 2 つのホストに、メタデータプールサイズを 16 GB に指定して、1000 GB のシンプールを作成します。

[lv2:*] セクションでは、3 番目のホストに メタデータプールサイズを 16 GB に指定して、20 GB のシンプールを作成します。これは、Arbiter ブリックに使用する論理ボリュームです。

chunksize の変数も利用可能ですが、使用する場合には注意が必要です。 chunksize はスナップショット、キャッシュプール、シンプールに使用されるチャンクサイズを定義します。この値はデフォルトではキロバイト単位で指定されます。RAID 5 および 6 ボリュームの場合には、gdeploy がストライプサイズとディスク数を乗算してデフォルトのチャンクサイズを計算します。RAID 10 の場合には、デフォルトのチャンクサイズは 256 KB です。

警告

Red Hat では、少なくともデフォルトのチャンクサイズを使用することを推奨します。チャンクサイズが小さすぎてメタデータ用のボリューム容量が足りなくなった場合には、そのボリュームはデータを作成できなくなります。Red Hat は、メタデータボリュームが完全に満杯になる前に論理ボリュームを拡張するかストレージを追加できるように論理ボリュームを監視することをお勧めします。

下層の engine ストレージの作成

[lv3:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_engine
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/engine
size=100GB
lvtype=thick

[lv4:192.168.0.103]
action=create
lvname=gluster_lv_engine
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/engine
size=10GB
lvtype=thick

[lv3:*] セクションでは、最初の 2 つのホスト上に gluster_lv_engine という名前の 100 GB のシックプロビジョニング論理ボリュームを作成します。このボリュームは、/gluster_bricks/engine にマウントするように設定されます。

[lv4:*] セクションでは、3 番目のホストに engine 用の 10 GB のシックプロビジョニング論理ボリュームを作成します。このボリュームは /gluster_bricks/engine にマウントするように設定されています。

下層のデータおよび仮想マシンのブートディスク用ストレージ

[lv5:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_data
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/data
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=500GB

[lv6:192.168.0.103]
action=create
lvname=gluster_lv_data
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/data
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=10GB

[lv7:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_vmstore
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/vmstore
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=500GB

[lv8:192.168.0.103]
action=create
lvname=gluster_lv_vmstore
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/vmstore
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=10GB

[lv5:*] および [lv7:*] のセクションでは、最初の 2 つのホストのデータおよび vmstore ボリューム用に 500 GB の論理ボリュームをブリックとして作成します。

[lv6:*] および [lv8:*] のセクションでは、3 番目のホストのデータおよび vmstore ボリューム用に 10 GB の論理ボリュームを Arbiter ブリックとして作成します。

データブリックは /gluster_bricks/data に、vmstore ブリックは /gluster_bricks/vmstore にマウントされるように設定されます。

SELinux ファイルシステムラベルの設定

[selinux]
yes

[selinux] のセクションでは、作成されるストレージが Gluster Storage 用に適切な SELinux ファイルシステムラベルで設定される必要があることを指定しています。

glusterd の起動

[service3]
action=start
service=glusterd
slice_setup=yes

[service3] のセクションでは、glusterd サービスが起動して、コントロールグループを設定し、glusterd が全システムリソースを使い切ることができないようにします。詳しくは、Red Hat Enterprise Linux『リソース管理ガイド』を参照してください: https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/Resource_Management_Guide/index.html

ファイアウォールの設定

[firewalld]
action=add
ports=111/tcp,2049/tcp,54321/tcp,5900/tcp,5900-6923/tcp,5666/tcp,16514/tcp
services=glusterfs

[firewalld] のセクションでは、Gluster のトラフィックを許可するのに必要なポートを開放します。

Gluster フックの無効化

[script2]
action=execute
file=/usr/share/ansible/gdeploy/scripts/disable-gluster-hooks.sh

[script2] セクションでは、ハイパーコンバージドインフラストラクチャーに干渉する可能性のある Gluster フックを無効化します。

Gluster ボリュームの作成

[volume1]
action=create
volname=engine
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/engine/engine,192.168.0.102:/gluster_bricks/engine/engine,192.168.0.103:/gluster_bricks/engine/engine
ignore_volume_errors=no
arbiter_count=1

[volume2]
action=create
volname=data
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/data/data,192.168.0.102:/gluster_bricks/data/data,192.168.0.103:/gluster_bricks/data/data
ignore_volume_errors=no
arbiter_count=1

[volume3]
action=create
volname=vmstore
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/vmstore/vmstore,192.168.0.102:/gluster_bricks/vmstore/vmstore,192.168.0.103:/gluster_bricks/vmstore/vmstore
ignore_volume_errors=no
arbiter_count=1

[volume*] セクションでは、enginedatavmstore の 3 つの Arbitrated Replicated の Red Hat Gluster Storage ボリュームを設定します。3 番目のホスト上の各ボリュームに Arbiter ブリックが 1 つずつ含まれます。

keyvalue のパラメーターは、以下のオプションの設定に使用されます。

  • group=virt
  • storage.owner-uid=36
  • storage.owner-gid=36
  • network.ping-timeout=30
  • performance.strict-o-direct=on
  • network.remote-dio=off
  • cluster.granular-entry-heal=enable