7.4.4. ダウンした OSD を検出するタイマー設定を減らします。

OSD を検出するためのタイマー設定を減らしなければならない場合があります。たとえば、Red Hat Ceph Storage を iSCSI ゲートウェイとして使用する場合は、OSD を検出するためのタイマー設定を減らしてイニシエーターのタイムアウトの可能性を軽減することができます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ansible 管理ノードへのアクセス

Procedure

  1. 新しいタイマー設定を使用するように Ansible を設定します。

    1. Ansible 管理ノードで、以下のような group_vars/all.yml ファイルに ceph_conf_overrides セクションを追加するか、以下のように既存の ceph_conf_overrides セクションを編集します。

      ceph_conf_overrides:
           osd:
             osd_client_watch_timeout: 15
             osd_heartbeat_grace: 20
             osd_heartbeat_interval: 5

      上記の設定は、Ansible Playbook の実行時に OSD ノードの ceph.conf 設定ファイルに追加されます。

    2. ceph-ansible ディレクトリーに移動します。

      [admin@ansible ~]$ cd /usr/share/ceph-ansible
    3. Ansible を使用して ceph.conf ファイルを更新し、すべての OSD ノードで OSD デーモンを再起動します。Ansible 管理ノードで、以下のコマンドを実行します。

      ベアメタルデプロイメント

      [admin@ansible ceph-ansible]$ ansible-playbook site.yml --limit osds

      コンテナーデプロイメント

      [admin@ansible ceph-ansible]$ ansible-playbook site-container.yml --limit osds -i hosts

  2. タイマー設定が ceph_conf_overrides で設定されていることを確認します。

    構文

    ceph daemon osd.OSD_ID config get osd_client_watch_timeout
    ceph daemon osd.OSD_ID config get osd_heartbeat_grace
    ceph daemon osd.OSD_ID config get osd_heartbeat_interval

    [root@osd ~]# ceph daemon osd.0 config get osd_client_watch_timeout
    {
        "osd_client_watch_timeout": "15"
    }
    
    [root@osd ~]#  ceph daemon osd.0 config get osd_heartbeat_grace
    {
        "osd_heartbeat_grace": "20"
    }
    
    [root@osd ~]# ceph daemon osd.0 config get osd_heartbeat_interval
    {
        "osd_heartbeat_interval": "5"
    }

  3. オプション: OSD デーモンをすぐに再起動できない場合は、Ceph Monitor ノードからオンラインの更新を実行したり、すべての Ceph OSD ノードを直接更新できます。OSD デーモンを再起動したら、上記のように Ansible を使用して、新しいタイマー設定を ceph.conf に追加し、再起動後も設定が維持されるようにします。

    1. Ceph Monitor ノードから OSD タイマー設定のオンライン更新を実行するには、以下を実行します。

      構文

      ceph tell osd.OSD_ID injectargs '--osd_client_watch_timeout 15'
      ceph tell osd.OSD_ID injectargs '--osd_heartbeat_grace 20'
      ceph tell osd.OSD_ID injectargs '--osd_heartbeat_interval 5'

      [root@mon ~]# ceph tell osd.0 injectargs '--osd_client_watch_timeout 15'
      [root@mon ~]# ceph tell osd.0 injectargs '--osd_heartbeat_grace 20'
      [root@mon ~]# ceph tell osd.0 injectargs '--osd_heartbeat_interval 5'

    2. Ceph OSD ノードから OSD タイマー設定のオンライン更新を実行するには、以下を実行します。

      構文

      ceph daemon osd.OSD_ID config set osd_client_watch_timeout 15
      ceph daemon osd.OSD_ID config set osd_heartbeat_grace 20
      ceph daemon osd.OSD_ID config set osd_heartbeat_interval 5

      [root@osd ~]# ceph daemon osd.0 config set osd_client_watch_timeout 15
      [root@osd ~]# ceph daemon osd.0 config set osd_heartbeat_grace 20
      [root@osd ~]# ceph daemon osd.0 config set osd_heartbeat_interval 5

関連情報