4.5. モニターストアの圧縮

モニターストアのサイズが大きくなってきたら、圧縮することができます。

  • ceph tell コマンドを使用して、動的にこれを使用します。
  • ceph-mon デーモンの起動時
  • ceph-mon デーモンが稼働していない場合に ceph-monstore-tool を使用前述の方法が Monitor ストアを圧縮できない場合、または Monitor がクォーラムを超えていない状態で、そのログに Caught signal (Bus error) エラーメッセージが含まれる場合は、この方法を使用してください。
重要

クラスターが active+clean 状態ではない場合やリバランスプロセスでストアサイズの変更を監視します。このため、リバランスの完了時に Monitor ストアを圧縮します。また、配置グループが active+clean の状態であることを確認します。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • Ceph Monitor ノードへの root レベルのアクセス。

手順

  1. ceph-mon デーモンの実行中に Monitor ストアを圧縮するには、以下を実行します。

    ceph tell mon.HOST_NAME compact
  2. HOST_NAME を、ceph-mon を実行しているホストの短いホスト名に置き換えます。不明な場合は hostname -s コマンドを使用します。

    # ceph tell mon.host1 compact
  3. [mon] セクションの Ceph 設定に以下のパラメーターを追加します。

    [mon]
    mon_compact_on_start = true
  4. ceph-mon デーモンを再起動します。

    [root@mon ~]# systemctl restart ceph-mon@_HOST_NAME_

    HOST_NAME を、デーモンが実行されているホストの短縮名に置き換えます。不明な場合は hostname -s コマンドを使用します。

    [root@mon ~]# systemctl restart ceph-mon@host1
  5. Monitor がクォーラムを形成することを確認します。

    [root@mon ~]# ceph mon stat
  6. 必要に応じて、他の Monitor でこの手順を繰り返します。

    注記

    開始する前に、ceph-test パッケージがインストールされていることを確認します。

  7. 大型ストアを使用する ceph-mon デーモンが実行していないことを確認します。必要に応じてデーモンを停止します。

    [root@mon ~]# systemctl status ceph-mon@HOST_NAME
    [root@mon ~]# systemctl stop ceph-mon@HOST_NAME

    HOST_NAME を、デーモンが実行されているホストの短縮名に置き換えます。不明な場合は hostname -s コマンドを使用します。

    [root@mon ~]# systemctl status ceph-mon@host1
    [root@mon ~]# systemctl stop ceph-mon@host1
  8. 2 つの異なる方法で ceph ユーザーとしてモニターストアを圧縮します。

    • ceph ユーザーとしてコマンドを実行します。

      Syntax

      su - ceph -c 'ceph-monstore-tool /var/lib/ceph/mon/mon.HOST_NAME compact'

      [root@mon ~]# su - ceph -c 'ceph-monstore-tool /var/lib/ceph/mon/mon.node1 compact'

    • root ユーザーとしてコマンドを実行してから、chown を実行して権限を変更します。

      1. root ユーザーとしてコマンドを実行します。

        Syntax

        ceph-monstore-tool /var/lib/ceph/mon/mon.HOST_NAME compact

        [root@mon ~]# ceph-monstore-tool /var/lib/ceph/mon/mon.node1 compact

      2. ファイルのアクセス権限を変更します。

        [root@mon ~]# chown -R ceph:ceph /var/lib/ceph/mon/mon.node1

  9. ceph-mon を再度起動します。

    [root@mon ~]# systemctl start ceph-mon@HOST_NAME

    [root@mon ~]# systemctl start ceph-mon@host1