仮想計算機を用いたサーバ統合に おける高速なソフトウェア若化手法 光来健一 千葉滋 東京工業大学 VMを用いたサーバ統合 サーバ統合が行われるようになっている 複数のサーバ計算機を1台の計算機に統合 仮想計算機(VM)が用いられるように VMは仮想計算機モニタ(VMM)上で動く システムリソースを管理 VM VM ... VMM ハードウェア VMMのソフトウェア・エージング VMMのソフトウェア・エージングが問題に ソフトウェア・エージングとは ソフトウェアの状態が時間とともに劣化する現象 例:システムリソースの不足 ソフトウェア・エージングは全てのVMに影響を及 ぼす 例:性能低下 VM VM ... VMM VMMのソフトウェア若化 予防保守 時々VMMを停止させ、内部状態を正常に戻して から再開する VMMのソフトウェア・エージングがVMに影響を 及ぼす前に実行される 典型的な例:VMMの再起動 内部状態を自動的に完全に元に戻せる 最も簡単な手法 問題(1/2):ダウンタイムの増大 VMMの再起動は以下を必要とする VM上で動いているすべてのOSの再起動 OS再起動にかかる時間は増大している 1台の計算機で動かせるVMの 数の増加 サービスの停止・開始にかかる 時間の増大 ハードウェアリセット BIOS の POST (power-on self test) に時間がかかる VM OS OS VMM ... 問題(2/2):性能低下 OS再起動でファイルキャッシュが失われる ファイルキャッシュが回復するまでOSは性能を回 復できない OSのファイルアクセス性能はファイルキャッシュに強 く依存 ファイルキャッシュの回復にかかる 時間が増加 プロセス ファイル キャッシュ ファイルキャッシュのサイズが増大 より多くのメモリがVMに割り当て可能に 空きメモリはファイルキャッシュになる OS ディスク Warm-VM Reboot 高速なソフトウェア若化手法 効率よくVMMだけを再起動 VMM再起動はOS再起動を必要としない 基本的なアイデア VMMの再起動前にすべてのVMをサスペンド 再起動後にVMをレジューム チャレンジ VMの巨大なメモリイメージをいかに効率よく扱うか? VMのオンメモリ・サスペンド VMのメモリイメージをメインメモリ上で凍結 メモリ領域を予約するだけ メモリサイズにほとんど依存しない メモリイメージを遅いディスクに保存するのは効率 が悪い VMのためのACPI S3状態 VM Suspend To RAM 従来のサスペンドは ACPI S4状態 ディスク 凍 結 メインメモリ VMのオンメモリ・レジューム メインメモリ上に保持されているメモリイメージ を解凍 VMのメモリとして直接再利用 遅いディスクから読み込む必要がない OSのファイルキャッシュも復元される 性能低下がない VM ディスク 解 凍 メインメモリ VMMのクイック・リロード 新しいVMMをハードウェアリセットせずに直 接起動 VMのメモリイメージはVMM再起動を通して保持 される ソフトウェア的にメモリイメージを保持し続けられる ハードウェアリセットはこれを保証しない VMMを高速に再起動できる メインメモリ ハードウェアリセットの オーバヘッドなし VM 新VMM preload 旧VMM 他の手法との比較 Cold-VM Reboot OS再起動を必要とする Saved-VM Reboot Warm-VM Rebootのナイーブな実装 メモリイメージをディスクに保存 再起動の手法 Cold-VM Saved-VM Warm-VM VM数に依存 Yes No No サービスに依存 Yes No No Yes No No No VMのメモリサイズに依存 No 性能低下 Yes 可用性のためのモデル VMMとOSの両方のソフトウェア若化を考え る必要がある Warm-VM Reboot OSのソフトウェア若化は 独立して行える Cold-VM Reboot OSのソフトウェア若化は VMMのそれに影響される OSのソフトウェア若化の 回数が増加する OSのソフトウェア若化 VMMのソフトウェア若化 OSのソフトウェア若化 VMMのソフトウェア若化 RootHammer Warm-VM Reboot を Xen 3.0.0 に実装 オンメモリ・サスペンド/レジューム Xen のサスペンド/レジュームがベース VMメモリから物理メモリへの VM メモリ マッピングを管理 クイック・リロード Linux の kexec 機構がベース 最近の Xen には同様の機構が含まれている そのままではメモリイメージの再利用はできない 物理 メモリ 実験 Warm-VM Reboot がダウンタイムと性能低 下を減少させられるかどうか調べた 比較 OS再起動を伴う Cold-VM Reboot サスペンド/レジュームを使った Saved-VM Reboot サーバ ... Linux Linux クライアント VMM 2 dual-core 12 GB 15,000 rpm gigabit Opteron SDRAM SCSI disk Ethernet Linux オンメモリ・サスペンド/レジュームの 性能 メモリ 11 GBのVMのサス ペンド/レジューム時間 オンメモリ: 1 秒 Xen: 280 秒 (4分40秒) メモリサイズに比例 11 VMのサスペンド/ レジューム時間 OS再起動: 58 秒 VM数に比例 クイック・リロードの効果 VMMのブート ハードウェアリセット VMMのシャットダウン VMなしでVMMのみの 再起動時間を測定 Warm-VM Reboot 70 60 11 秒 クイック・リロードの時間 はほぼ 0 50 40 Cold-VM Reboot 30 59 秒 ハードウェアリセットに起 因する時間は 48 秒 20 10 0 Warm-VM Cold-VM サービスのダウンタイム Warm-VM Reboot ほぼ一定 42 秒 Saved-VM Reboot VM数に比例 約 7 分 (11 VM) Cold-VM Reboot サービスの種類に依存 約 2.5 分 (sshd) 約 4 分 (JBoss) JBoss の稼働率 Warm-VM Reboot は4つの9を達成 仮定 OSのソフトウェア若化を毎週行う ダウンタイムは 34 秒 VMMのソフトウェア若化を4週ごとに行う 平均してOSのソフトウェア若化の 0.5 週後 1週 OSのソフトウェア若化 VMのソフトウェア若化 0.5 週 Warm-VM Cold-VM Saved-VM 99.993% 99.985% 99.977% 性能低下 Apache ウェブサーバの スループットを測定 VMM再起動の前後 Warm-VM Reboot 性能低下なし Cold-VM Reboot 69% の性能低下 VMMのソフトウェア・エージングは 実際に起こるか? Xen にはメモリリークのバグがあった VMの再起動時 エラー処理を行う際 Xen のヒープサイズはあまり大きくない デフォルトのヒープサイズは 16 MB x86_64 アーキテクチャではある程度増やせる i386 アーキテクチャでは変更できない メモリリークするとメモリ不足になりやすい VMMとみなすべき範囲は実は広い Xen のドメイン0はVMMとみなすべき 他のVMの I/O 処理を行う特権VM I/O 処理の遅れはVMの性能に影響 VMMに強く依存 ドメイン0の再起動はVMMの再起動を伴う 改造された Linux が動作 カーネルメモリやスワップ スペースが枯渇する可能性 ドメイン0 OS VM VM VMM 関連研究 Microreboot [Candea et al.'04] サブコンポーネントの一部だけを再起動 Warm-VM Reboot は親コンポーネント(VMに対す るVMM)だけを再起動 チェックポイント/リスタート [Randell '75] OSプロセスを保存・復元 VMのサスペンド/レジュームに似ている サスペンド/レジュームの最適化 メモリイメージの差分だけを保存 メモリイメージを圧縮して保存 まとめ Warm-VM Reboot を提案 オンメモリ・サスペンド/レジューム VMのメモリイメージを凍結・解凍 クイック・リロード VMMの再起動を通してVMのメモリイメージを保持 VMMの高速なソフトウェア若化を実現 ダウンタイムを最大 83% 削減 ソフトウェア若化後の性能低下なし
© Copyright 2024 ExpyDoc