ナレッジベース

スナップショットを取得し、戻す

スナップショットの取得方法、クラッシュ一貫性が通常十分である理由、十分でない場合の静止方法、実行中のインスタンスへのリストアが何を行うか。

ここでいうスナップショットとは

インスタンスディスクの特定時点のコピーで、ストレージレイヤーで取得され、インスタンスが稼働しているストレージとは別のストレージに書き込まれます。スロットはパック単位で販売され、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時間後に実行されるスケジュールよりもはるかに多くのデータを保持することになります。

インスタンスのキャンセルでスナップショットも削除されます

猶予期間なしで即座に削除されます。スナップショットはインスタンスに紐づいているためです。キャンセル後も保持したいものは、ノード外バックアップまたは当社以外の場所に置いてください。

準備はできている

都市を選べ。サイズを選べ。コインで支払え。

あなたが誰かに関するフォームも、承認する人間を待つ必要も、確認のための電話もありません。請求が完了すれば、認証情報があなたの受信トレイに届きます。