付録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*]
セクションでは、engine、data、vmstore の 3 つの Arbitrated Replicated の Red Hat Gluster Storage ボリュームを設定します。3 番目のホスト上の各ボリュームに Arbiter ブリックが 1 つずつ含まれます。
key
と value
のパラメーターは、以下のオプションの設定に使用されます。
-
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