指示による削除の設定
デフォルトの構成ファイルは、新しいレジャーバージョンが利用可能になるとrippled
が古いXRP Ledgerの履歴を自動的に削除するように設定されています。サーバーがピーク時にハードウェアリソースの大部分を使用する場合は、オフピーク時に実行するようスケジュールされたコマンドからの指示があった場合にのみ、レジャーを削除するようにサーバーを設定できます。これにより、オンライン削除がサーバーのパフォーマンスに及ぼす影響はほとんどなくなります。
前提条件
このチュートリアルでは、ご使用のサーバーが以下の条件を満たしていることを前提としています。
-
サポートされているオペレーティングシステムを使用している。Ubuntu Linux、Red Hat Enterprise Linux(RHEL)、CentOS
-
rippled
サーバーがすでにインストールされており、オンライン削除が有効になっている。デフォルトの構成ファイルは、レジャーバージョンが2000個を超えるとオンライン削除を実行するよう設定されています。
-
cron
デーモンがインストールされており、実行されている。Ubuntu Linuxではデフォルトで
cron
デーモンが実行されます。RHELまたはCentOSでは、以下の
cronie
パッケージをインストールできます。$ sudo yum install cronie
-
選択した量の履歴をレジャーストアーに保管するのに十分なディスク容量がサーバーにある。
各種設定で必要なストレージの容量についての詳細は、容量計画を参照してください。指示による削除が有効な場合、削除が実行されるまでにサーバーに蓄積可能な履歴の最大数は、
online_delete
設定で設定したレジャーバージョン数と、オンライン削除の指示の間隔を加算したものに相当します。 -
サーバーの使用率が最も低い時間帯を把握している。
設定手順
日次スケジュールで指示による削除は以下の手順で設定します。
-
rippled
の構成ファイルの[node_db]
スタンザでadvisory_delete
を有効にします。[node_db] # Other settings unchanged ... online_delete=2000 advisory_delete=1
- 指示された場合にのみオンライン削除を実行するには、
advisory_delete
を1
に設定します。(0
に設定すると、新しいレジャーバージョンが使用可能になると自動的にオンライン削除が実行されます。) online_delete
を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。オンライン削除が実行されるまでに蓄積される履歴は、この値よりも多くなります。
The recommended installation uses the config file
/etc/opt/ripple/rippled.cfg
by default. Other places you can put a config file include$HOME/.config/ripple/rippled.cfg
(where$HOME
is the home directory of the user runningrippled
),$HOME/.local/ripple/rippled.cfg
, or the current working directory from where you startrippled
. - 指示された場合にのみオンライン削除を実行するには、
-
サーバーに対してオンライン削除を指示するcan_deleteメソッドの実行をテストします。
このコマンドの実行には
rippled
コマンドラインインターフェイスを使用できます。例:$ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now
応答は、サーバーがそのレジャーストアーから削除するレジャーインデックスの最大値を示します。たとえば、以下のメッセージはレジャーインデックス43633667以下のレジャーバージョンを削除できることを示します。
{ "result": { "can_delete": 43633667, "status": "success" } }
サーバー内の 新しい 検証済みレジャーバージョンの数が、
online_delete
の設定以上となった場合にのみ、レジャーバージョンが削除されます。 -
前のステップでテストした
can_delete
メソッドを、予定した時刻に実行するようにcron
デーモンを設定します。cron
設定を編集します。$ crontab -e
以下の例では、サーバー時刻で毎日1:05 AMにサーバーが削除を実行するように設定されています。
5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now
サーバーで設定されているタイムゾーンに基づいてコマンドが実行されるようにスケジュールしてください。
ヒント:
advisory_delete
を無効にしている場合は、cron
ジョブをオンラインで実行するようにスケジュールする必要はありません。この場合、サーバーの最も古いレジャーバージョンと現行の検証済みレジャーバージョンの差がonline_delete
の値以上である場合に、rippled
によりオンライン削除が実行されます。 -
rippled
サービスを起動(または再起動)します。$ sudo systemctl restart rippled
-
server_infoメソッドを使用してサーバーの
complete_ledgers
範囲を定期的に調べ、レジャーがスケジュール通りに削除されていることを確認します。オンライン削除の実行後には
complete_ledgers
の最小レジャーインデックスが増加します。サーバーの使用率の状況と、一度に削除する履歴の量によっては、削除が完了するまでに数分間かかることがあります。
トラブルシューティング
オンライン削除の設定後にオンライン削除が実行されていないようである場合は、以下を試してください。
cron
ジョブを設定したユーザーに、コマンドラインクライアントとしてrippled
サーバーを実行できる権限があることを確認します。- cronジョブの構文とこのジョブの実行予定時刻を確認します。
rippled
実行可能ファイルがcron
設定で指定したパスで使用可能であることを確認します。必要に応じて実行可能ファイルの絶対パス(/opt/ripple/bin/rippled
など)を指定します。rippled
ログで、SHAMapStore::WRN
で始まるメッセージを調べます。このメッセージが出力されている場合、サーバーがネットワークと同期していない状態になったためにオンライン削除が中断されている可能性があります。