ここでいうスナップショットとは
インスタンスディスクの特定時点のコピーで、ストレージレイヤーで取得され、インスタンスが稼働しているストレージとは別のストレージに書き込まれます。スロットはパック単位で販売され、1スロットが1スナップショットを保持し、上書きすると再利用されます。取得してもインスタンスは一時停止せず、その後の数分間のコピーオンライトコストは小さいため、レイテンシグラフに表れることはほとんどありません。
これはバックアップではありません。スナップショットはインスタンスと同じサイトに存在するため、自分のrmからは保護されますが、サイトの障害からは保護されません。ノード外バックアップは別のアドオンで、お客様側で暗号化され、別の都市に書き込まれます。
取得方法
curl -s -X POST https://paragonvps.com/api/v1/instances/<instance-id>/snapshots -H "Authorization: Bearer $Paragon_TOKEN" -H "Content-Type: application/json" -d '{"label":"pre-upgrade"}'curl -s https://paragonvps.com/api/v1/instances/<instance-id>/snapshots -H "Authorization: Bearer $Paragon_TOKEN" | jq -r '.[] | .id + " " + .label + " " + .created'クラッシュ整合性と、それでは不十分な場合
実行中のインスタンスのスナップショットは、停電後のディスクの状態と正確に同じです。PostgreSQL、MariaDB、および当社のイメージ内のすべてのジャーナリングファイルシステムは、起動時にその状態から復旧します。なぜなら、それがそもそもの目的だからです。リスクは本当はデータベースではありません。リスクは、相互に整合性を保つ必要がある2つのファイルを書き込んでいる途中の、お客様自身のアプリケーションです。
クリーンな状態が必要な場合は、以下の手順でデータボリュームをフラッシュしてフリーズします(所要時間は約1秒)。
sync
fsfreeze -f /srv/data
# take the snapshot here
fsfreeze -u /srv/dataデータボリュームをフリーズします。/は絶対にフリーズしないでください。ルートファイルシステムをフリーズすると、フリーズを解除するためのプロセス自体が停止するため、復旧方法はハードリセットのみとなります。
データベースの場合は、スナップショットを取得してエンジンに復旧させ、その後で復旧を確認する方が簡潔です。
sudo -u postgres pg_isready
journalctl -u postgresql -n 50復元
復元すると、インスタンスが停止し、ディスクがスナップショットに交換され、再び起動します。数分ではなく数秒です。アドレスは変更されず、設定した逆DNSも維持され、スナップショット以降に書き込まれたものはすべて失われます。
これには、復元を決定した理由となったもの自体も含まれます。破損した状態のログを読みたい可能性が少しでもある場合は、まずその状態のスナップショットを作成してから、その上に復元してください。
curl -s -X POST https://paragonvps.com/api/v1/snapshots/<snapshot-id>/restore -H "Authorization: Bearer $Paragon_TOKEN"スケジューリング
インスタンスごとのスケジュールは、プラットフォームリビジョン5.4で追加されました。固定時間に毎日実行し、ローリングウィンドウで保持するのが一般的な選択です。スロットがいっぱいになると、最も古いものが削除されます。
curl -s -X PUT https://paragonvps.com/api/v1/instances/<instance-id>/snapshot-schedule -H "Authorization: Bearer $Paragon_TOKEN" -H "Content-Type: application/json" -d '{"cron":"20 3 * * *","keep":7}'当社の都合ではなく、お客様のワークロードにとって静かな時間を選んでください。スナップショットのストレージコストは、その後に変更された量に比例するため、夜間バッチ処理中に実行されるスケジュールは、1時間後に実行されるスケジュールよりもはるかに多くのデータを保持することになります。
インスタンスのキャンセルでスナップショットも削除されます
猶予期間なしで即座に削除されます。スナップショットはインスタンスに紐づいているためです。キャンセル後も保持したいものは、ノード外バックアップまたは当社以外の場所に置いてください。