8.2. ダウンしている OSD を検出するためのタイマー設定の低減
ダウンしている OSD を検出するためにタイマー設定の時間を減らす必要がある場合があります。たとえば、Red Hat Ceph Storage を iSCSI ゲートウェイとして使用する場合に、ダウンしている OSD を検出するためにタイマー設定の時間を減らすことで、イニシエーターがタイムアウトする可能性を軽減できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
手順
新しいタイマー設定を使用するように Ansible を設定します。
以下のような
group_vars/all.ymlファイルにceph_conf_overridesセクションを追加するか、既存のceph_conf_overridesセクションを編集して、osdで始まるすべての行を含めます。ceph_conf_overrides: osd: osd_client_watch_timeout: 15 osd_heartbeat_grace: 20 osd_heartbeat_interval: 5ceph_conf_overrides: osd: osd_client_watch_timeout: 15 osd_heartbeat_grace: 20 osd_heartbeat_interval: 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook の
site.ymlが OSD ノードに対して実行すると、上記の設定がceph.conf設定ファイルに追加されます。Ansible を使用して
ceph.confファイルを更新し、すべての OSD ノードで OSD デーモンを再起動します。Ansible 管理ノードで、以下のコマンドを実行します。ansible-playbook --limit osds site.yml
[user@admin ceph-ansible]$ ansible-playbook --limit osds site.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
タイマー設定が
ceph_conf_overridesで設定されている値と同じであることを確認します。1 つ以上の OSD では、
ceph daemonコマンドを使用して設定を表示します。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
# 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_intervalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: OSD デーモンをすぐに再起動できない場合は、Ceph Monitor ノードからオンライン更新を実行します。または、すべての OSD ノードで直接更新を実行します。OSD デーモンの再起動ができたら、上記のように Ansible を使用して新しいタイマー設定を
ceph.confに追加し、設定が再起動後も維持されるようにします。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'
# 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'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
ceph tell osd.0 injectargs '--osd_client_watch_timeout 15' ceph tell osd.0 injectargs '--osd_heartbeat_grace 20' ceph tell osd.0 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'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
ceph daemon osd.0 config set osd_client_watch_timeout 15 ceph daemon osd.0 config set osd_heartbeat_grace 20 ceph daemon osd.0 config set osd_heartbeat_interval 5
[root@osd1 ~]# ceph daemon osd.0 config set osd_client_watch_timeout 15 [root@osd1 ~]# ceph daemon osd.0 config set osd_heartbeat_grace 20 [root@osd1 ~]# ceph daemon osd.0 config set osd_heartbeat_interval 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- Red Hat Ceph Storage を iSCSI ゲートウェイとして使用 する方法は、『 ブロックデバイスガイド』 の「Ceph iSCSI ゲートウェイの概要 」を参照してください。