1.2. Ansible を使用した VDO レイヤーでの新しいブリックの作成
多くのホストにブリックを一度に作成する場合は、ansible Playbook を作成してプロセスを自動化できます。
前提条件
物理マシンをインストールして、新しいブリックをホストします。
ハイパーコンバージドホストのインストール の手順に従います。
すべてのノードに、パスワードなしでキーベースの SSH 認証を設定します。
これは、Web コンソールを実行しているノードからすべての新規ノード、および最初の新規ノードから他のすべての新規ノードに設定します。
重要RHHI for Virtualization は、IP アドレスと FQDN の両方に対して、これらのノード間でパスワードのないキーベースの SSH 認証を想定します。これらのマシン間で、すべてのストレージおよび管理ネットワークインターフェースの IP アドレスと FQDN の間に、キーベースの SSH 認証を設定するようにしてください。
SSH 認証用のパスワードの代わりにキーペアを使用した方法 に従って、パスワードなしでキーベースの認証を設定します。
- ホストが Virtual Disk Optimization (VDO) レイヤーを使用していることを確認します。VDO レイヤーがない場合は、代わりに 「ansible を使用した新しいブリックの作成」 を使用します。
手順
inventory
ファイルの作成以下の例を使用して、
/etc/ansible/roles/gluster.infra/playbooks
ディレクトリーに新しいinventory
ファイルを作成します。このファイルは、新しいブリックを作成するホストを一覧表示します。
inventory
ファイルの例[hosts] server4.example.com server5.example.com server6.example.com
bricks.yml
変数ファイルを作成します。次の例を使用して、
/etc/ansible/roles/gluster.infra/playbooks
ディレクトリーに新しいbricks.yml
ファイルを作成します。このファイルは、各ホストで作成または使用される基礎となるストレージインフラストラクチャーおよび設定を定義します。
vdo_bricks.yml
変数ファイルの例# gluster_infra_disktype # Set a disk type. Options: JBOD, RAID6, RAID10 - Default: JBOD gluster_infra_disktype: RAID10 # gluster_infra_dalign # Dataalignment, for JBOD default is 256K if not provided. # For RAID{6,10} dataalignment is computed by multiplying # gluster_infra_diskcount and gluster_infra_stripe_unit_size. gluster_infra_dalign: 256K # gluster_infra_diskcount # Required only for RAID6 and RAID10. gluster_infra_diskcount: 10 # gluster_infra_stripe_unit_size # Required only in case of RAID6 and RAID10. Stripe unit size always in KiB, do # not provide the trailing `K' in the value. gluster_infra_stripe_unit_size: 128 # VDO creation gluster_infra_vdo: - { name: 'hc_vdo_1', device: '/dev/vdb' } - { name: 'hc_vdo_2', device: '/dev/vdc' } # gluster_infra_volume_groups # Variables for creating volume group gluster_infra_volume_groups: - { vgname: 'vg_vdb', pvname: '/dev/mapper/hc_vdo_1' } - { vgname: 'vg_vdc', pvname: '/dev/mapper/hc_vdo_2' } # gluster_infra_thick_lvs # Variable for thick lv creation gluster_infra_thick_lvs: - { vgname: 'vg_vdb', lvname: 'vg_vdb_thicklv1', size: '10G' } # gluster_infra_thinpools # thinpoolname is optional, if not provided `vgname' followed by _thinpool is # used for name. poolmetadatasize is optional, default 16G is used gluster_infra_thinpools: - {vgname: 'vg_vdb', thinpoolname: 'foo_thinpool', thinpoolsize: '10G', poolmetadatasize: '1G' } - {vgname: 'vg_vdc', thinpoolname: 'bar_thinpool', thinpoolsize: '20G', poolmetadatasize: '1G' } # gluster_infra_lv_logicalvols # Thinvolumes for the brick. `thinpoolname' is optional, if omitted `vgname' # followed by _thinpool is used gluster_infra_lv_logicalvols: - { vgname: 'vg_vdb', thinpool: 'foo_thinpool', lvname: 'vg_vdb_thinlv', lvsize: '500G' } - { vgname: 'vg_vdc', thinpool: 'bar_thinpool', lvname: 'vg_vdc_thinlv', lvsize: '500G' } # gluster_infra_mount_devices gluster_infra_mount_devices: - { path: '/rhgs/thicklv', vgname: 'vg_vdb', lvname: 'vg_vdb_thicklv1' } - { path: '/rhgs/thinlv1', vgname: 'vg_vdb', lvname: 'vg_vdb_thinlv' } - { path: '/rhgs/thinlv2', vgname: 'vg_vdc', lvname: 'vg_vdc_thinlv' }
重要path:
定義が/rhgs
で開始しない場合、ブリックは管理ポータルによって自動的に検出されません。create_brick.yml
Playbook を実行した後にホストストレージを同期し、新しいブリックを管理ポータルに追加します。create_brick.yml
Playbook ファイルを作成します。以下の例を使用して、
/etc/ansible/roles/gluster.infra/playbooks
ディレクトリーに新しいcreate_brick.yml
ファイルを作成します。このファイルは、
gluster.infra
ロールと、上記で作成した変数ファイルを使用してブリックを作成する作業を定義します。Playbook ファイル
create_brick.yml
の例--- - name: Create a GlusterFS brick on the servers remote_user: root hosts: all gather_facts: false vars_files: - vdo_bricks.yml roles: - gluster.infra
Playbook を実行します
/etc/ansible/roles/gluster.infra/playbooks
ディレクトリーから以下のコマンドを実行し、inventory と上で定義した変数ファイルを使用して作成した Playbook を実行します。# ansible-playbook -i inventory create_brick.yml
ブリックが使用可能であることを確認します。
- Compute → Hosts をクリックし、ホストを選択します。
Storage Devices をクリックし、新しいブリックのストレージデバイスの一覧を確認します。
新しいブリックが表示されない場合は、Sync をクリックし、ストレージデバイスの一覧に表示されるまで待機します。