1.2. Ansible を使用した VDO レイヤーでの新しいブリックの作成

多くのホストにブリックを一度に作成する場合は、ansible Playbook を作成してプロセスを自動化できます。

前提条件

  • 物理マシンをインストールして、新しいブリックをホストします。

    ハイパーコンバージドホストのインストール の手順に従います。

  • すべてのノードに、パスワードなしでキーベースの SSH 認証を設定します。

    これは、Web コンソールを実行しているノードからすべての新規ノード、および最初の新規ノードから他のすべての新規ノードに設定します。

    重要

    RHHI for Virtualization は、IP アドレスと FQDN の両方に対して、これらのノード間でパスワードのないキーベースの SSH 認証を想定します。これらのマシン間で、すべてのストレージおよび管理ネットワークインターフェースの IP アドレスと FQDN の間に、キーベースの SSH 認証を設定するようにしてください。

    SSH 認証用のパスワードの代わりにキーペアを使用した方法 に従って、パスワードなしでキーベースの認証を設定します。

  • ホストが Virtual Disk Optimization (VDO) レイヤーを使用していることを確認します。VDO レイヤーがない場合は、代わりに 「ansible を使用した新しいブリックの作成」 を使用します。

手順

  1. inventory ファイルの作成

    以下の例を使用して、/etc/ansible/roles/gluster.infra/playbooks ディレクトリーに新しい inventory ファイルを作成します。

    このファイルは、新しいブリックを作成するホストを一覧表示します。

    inventory ファイルの例

    [hosts]
    server4.example.com
    server5.example.com
    server6.example.com

  2. 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 を実行した後にホストストレージを同期し、新しいブリックを管理ポータルに追加します。

  3. 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

  4. Playbook を実行します

    /etc/ansible/roles/gluster.infra/playbooks ディレクトリーから以下のコマンドを実行し、inventory と上で定義した変数ファイルを使用して作成した Playbook を実行します。

    # ansible-playbook -i inventory create_brick.yml
  5. ブリックが使用可能であることを確認します。

    1. ComputeHosts をクリックし、ホストを選択します。
    2. Storage Devices をクリックし、新しいブリックのストレージデバイスの一覧を確認します。

      新しいブリックが表示されない場合は、Sync をクリックし、ストレージデバイスの一覧に表示されるまで待機します。