Easysearch はスナップショットライフサイクル管理機能を提供し、定義されたポリシーに基づいてスナップショットの自動作成と削除を行います。これにより、日常的なバックアップ管理を効率化できます。
ライフサイクル管理ポリシーは、スナップショットの作成スケジュール、削除スケジュール、およびスナップショット設定で構成されます。
- 作成スケジュールと削除スケジュールは、タスクの実行頻度とタイミングを指定するcron式を含みます。
- 削除スケジュールでは保持ポリシーを設定でき、例えば過去30日間のスナップショットを保持する、または直近の指定した数のスナップショットのみを保持するといったことが可能です。
- スナップショット設定には、対象とするインデックス、リポジトリ名、その他APIによるスナップショット作成時に指定可能なパラメータを含めます。また、スナップショット名に使用する日付フォーマットとタイムゾーンの指定もサポートしています。
この機能によって作成されるスナップショットの名前は <policy_name>-<date>-<Random_number> の形式になります。
例として、インデックス .infini_metrics-00001 に対して2分ごとにスナップショットを作成し、直近の2つのスナップショットのみを保持するポリシーを設定します。
curl -XPOST -uadmin:admin -H 'Content-Type: application/json' 'https://localhost:9200/_slm/policies/daily-policy' -d '
{
"description": "テスト用スナップショットポリシー",
"creation": {
"schedule": {
"cron": {
"expression": "*/2 * * * *",
"timezone": "Asia/Tokyo"
}
},
"time_limit": "1h"
},
"deletion": {
"schedule": {
"cron": {
"expression": "*/1 * * * *",
"timezone": "Asia/Tokyo"
}
},
"condition": {
"max_count": 2
},
"time_limit": "1h"
},
"snapshot_config": {
"date_format": "yyyy-MM-dd-HH:mm",
"date_format_timezone": "Asia/Tokyo",
"indices": ".infini_metrics-00001",
"repository": "easysearch_s3_repo",
"ignore_unavailable": "true",
"include_global_state": "false"
}
}'
自動的に作成されたスナップショットの名称にはタイムスタンプが含まれます。作成タスクと削除タスクは独立して動作するため、一時的に保持数を超えるスナップショットが存在する場合がありますが、次の削除タスク実行時に条件に従って整理されます。
メンテナンスなどで自動バックアップを一時停止する必要がある場合、以下のAPIを使用してポリシーを停止または再開できます。
ポリシーを停止:
curl -XPOST -uadmin:admin 'https://localhost:9200/_slm/policies/daily-policy/_stop'
ポリシーを開始:
curl -XPOST -uadmin:admin 'https://localhost:9200/_slm/policies/daily-policy/_start'
ポリシーの一覧を取得:
curl -XGET -uadmin:admin 'https://localhost:9200/_slm/policies'
ポリシーを削除:
curl -XDELETE -uadmin:admin 'https://localhost:9200/_slm/policies/daily-policy?pretty'