ナレッジベース

ダウンタイムを最小限に抑えてプランをアップグレードする

コア、メモリ、ディスクはインスタンスの実行中に増やせますが、ファミリーの変更はできません。ゲストが新しいハードウェアに気付く前に行う必要があること。

ホットでできること

  • コア: ライブで追加可能。対象サイズが現在のホストに収まれば可能。通常は収まる。
  • メモリ: ライブで追加可能。条件は同じ。
  • 追加NVMe: ライブで追加可能。常に可能。
  • ルートディスク: ライブで拡張可能。ファイルシステムもその下で拡張される。

できないこと: 縮小、およびファミリー間の移行。RyzenからEPYCへの変更は別のマシンになるため、アップグレードではなく移行となる。手順はサイト変更と同じで、都市の変更がないだけ。

実行方法

curl -s -X POST https://paragonvps.com/api/v1/instances/<instance-id>/resize -H "Authorization: Bearer $Paragon_TOKEN" -H "Content-Type: application/json" -d '{"plan":"r-12","mode":"hot"}'

"mode":"hot"はライブでできない場合、再起動ではなく変更を拒否する。それを使うこと。許可するデフォルト設定は、金曜日の11時にインスタンスが再起動する原因となる。

ゲストに認識させる

一部のカーネルでは、新しいコアはオフラインで追加される:

lscpu | head
grep . /sys/devices/system/cpu/cpu*/online
echo 1 > /sys/devices/system/cpu/cpu8/online

次回のアップグレードで何も必要ないように、自動化する:

cat > /etc/udev/rules.d/80-cpu-hotplug.rules <<EOF
SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", ATTR{online}="1"
EOF
udevadm control --reload

メモリブロックも同様:

free -h
echo online > /sys/devices/system/memory/auto_online_blocks

その設定は再起動後も持続しない。memhp_default_state=onlineをカーネルのコマンドラインに追加して維持する。

ルートファイルシステムの拡張

ブロックデバイスは大きくなる。パーティションとファイルシステムは自動では追従しない:

lsblk
growpart /dev/vda 1
resize2fs /dev/vda1

XFSでは最終ステップはxfs_growfs /。両イメージにはすでにgrowpartが含まれている。パーティションの拡張とファイルシステムのリサイズの間のギャップは、停電が発生すると不便な1秒間である。

アプリケーションも気づかない

ほとんどのデーモンは起動時に一度だけCPU数を読み取る。4コアインスタンスで4ワーカーを選択したWebサーバーは、新しい12コアインスタンスでも4ワーカーで稼働し続ける。サービスを再起動するか、ワーカー数をautoのままにせず明示的に設定する:

nproc
systemctl restart nginx

メモリプールを保持するものは同じ注意が必要。RAMを2倍にしても、バッファに4ギガバイトを使うように指示されたデータベースには何の効果もない。

費用

秒単位で按分される。旧プランと新プランの差額は、サイクルの残り期間について、アカウント残高があればそこから引き落とされ、なければ請求される。ダウングレードはチェーンへの支払いではなく残高にクレジットされる。小額のコインを返却する方がネットワーク手数料がクレジットの価値より高いため。

更新日は変わらない。20日にアップグレードした場合、更新は以前と同じく20日。現在の料金は料金ページを参照。

失敗時

ホストが新しいサイズを受け入れられない場合、APIがその旨を返し、何も変更されない。そこから移行となる: 同じディスク、別のマシン、数分のダウンタイム、そして先方でプラン変更が適用される。その部分は当社が行う。メールで時間枠が届く。

準備はできている

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

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