21.2.4. 分散ボリュームのセルフ修復の制御

分散ボリュームの場合、複数のブリックを持つノードがオフラインになり、オンラインに戻ると、self-heal デーモンがブリックを修復します。この自己修復により、大量のデータが発生した場合に CPU の使用率が高くなり、継続中の I/O 操作に影響を与える可能性があるため、ストレージ効率が低下します。
Self-heal デーモンの CPU およびメモリーの使用状況を制御するには、以下の手順に従います。
  1. 以下のコマンドを使用して scripts ディレクトリーに移動します。
    # cd /usr/share/glusterfs/scripts
  2. 以下のコマンドを使用して、self-heal デーモンの PID を確認します。
    # ps -aef | grep glustershd
    出力は以下の形式になります。
    root      1565     1  0 Feb05 ?        00:09:17 /usr/sbin/glusterfs -s localhost --volfile-id gluster/glustershd -p /var/run/gluster/glustershd/glustershd.pid -l /var/log/glusterfs/glustershd.log -S /var/run/gluster/ed49b959a0dc9b2185913084e3b2b339.socket --xlator-option *replicate*.node-uuid=13dbfa1e-ebbf-4cee-a1ac-ca6763903c55
    root     16766 14420  0 19:00 pts/0    00:00:00 grep --color=auto glustershd
    この出力では、1565 は selfheald サービスの PID を表します。
  3. 以下のコマンドを使用して control-cpu-load スクリプトを実行します。
    # sh control-cpu-load.sh
  4. システムが以下の入力を要求したら、前の手順で取得したセル修復デーモンの PID を入力して Enter キーを押します。
    [root@XX-XX scripts]# sh control-cpu-load.sh
    Enter gluster daemon pid for which you want to control CPU.
    1565
  5. システムが以下の入力を要求したら、y と入力して Enter キーを押します。
    If you want to continue the script to attach 1565 with new cgroup_gluster_1565 cgroup Press (y/n)?
    この例では、1565selfheald サービスの PID を表します。selfheald サービスの PID は、システムによって異なる場合があります。
  6. システムが以下の入力を要求したら、セルフ修復デーモンに割り当てるのに必要なクォータ値を入力して Enter キーを押します。
    Creating child cgroup directory 'cgroup_gluster_1565 cgroup' for glustershd.service.
    Enter quota value in range [10,100]:
    25
    
    この例では、self-heal デーモンのクォータ値は 25 に設定されます。
    注記
    Self-heal デーモンの推奨されるクォータの値は 25 です。ただし、クォータの値は実行時にユーザーが設定できます。
    クォータ値が正常に設定されている場合、システムは以下の通知を要求します。
    Entered quota value is 25
    Setting 25000 to cpu.cfs_quota_us for gluster_cgroup.
    Tasks are attached successfully specific to 1565 to cgroup_gluster_1565.
自己修復デーモンの CPU 使用率を確認するには、top コマンドを実行します。
重要
デーモンが新しいデーモン PID で再起動されるたびに、この手順を実施します。