ライブマイグレーション (vMotion) は,仮想マシンを停止せずに異なるESXiホスト間で移動する技術です.負荷分散やメンテナンスのために使われます.
本記事では仮想マシンを他のホストに無停止で移動する vMotion や,仮想マシンのデータを無停止で他のストレージに移動する Storage vMotion について動作および操作方法を解説します.
- VMware vSphere に関するお話
- VMware vSphere – ESXi インストール
- VMware vSphere – 仮想スイッチ/ポートグループの設定
- VMware vSphere – NFSデータストアの追加
- VMware vSphere – vCenter Server のインストール
- VMware vSphere – vCenter Server の初期設定
- VMware vSphere – ローカルデータストアの追加
- VMware vSphere – EVC (Enhanced vMotion Compatibility)
- VMware vSphere – 分散仮想スイッチ (分散仮想スイッチの説明,作成)
- VMware vSphere – 分散仮想スイッチ (アップリンクの付け替え,VMkernel インターフェイスの移行)
- VMware vSphere – 分散仮想スイッチ (仮想マシンポートグループの移行,アップリンクの完全付け替え)
- VMware vSphere – iSCSI ストレージのマウント (マウントに向けた準備)
- VMware vSphere – iSCSI ストレージのマウント
- VMware vSphere – ライブマイグレーション (vMotion と Storage vMotion)
- VMware vSphere – ライブマイグレーション(vMotion) のトラブルシュート
- VMware vSphere – vSphere DRS (Distributed Resource Scheduler) 概要
- VMware vSphere – vSphere DRS 設定 (DRS 手動)
- VMware vSphere – vSphere DRS 設定 (DRS 一部自動化)
- VMware vSphere – vSphere DRS 設定 (DRS 完全自動化)
- VMware vSphere – vSphere DRS 設定 (アフィニティとアンチアフィニティ)
- VMware vSphere – vSphere DRS 設定 (ホストアフィニティ)
- VMware vSphere – vSphere HA の説明
- VMware vSphere – vSphere HA の設定
- VMware vSphere – vSphere HA の障害時動作の確認
- VMware vSphere – vCenter Server Appliance のアップデート・アップグレード
- VMware vSphere – ESXi のアップデート・アップグレード – Life Cycle Manager 経由
- VMware vSphere – ESXi のアップデート・アップグレード – CD-ROM 経由
vMotion (ライブマイグレーションとは)
VMware vSphere vMotion (以降 vMotion) は,ESXi ホスト間やデータストア間など,異なる物理ハードウェア間で仮想マシン,仮想ディスクを「オンライン」で移行させる技術です.
一般的には「ライブマイグレーション」と呼ばれており,VMware vSphere 以外の仮想化製品では「ライブマイグレーション」の呼び名が利用されています.
主な用途としては,負荷やリソース使用量 (CPU やメモリ,ディスク) の偏りを抑えるためにマイグレーションを行ったり,ESXi ホストのメンテナンスを行うためにメンテナンス対象のホスト上の仮想マシンを他に移動させてカラにして,仮想マシンを提供するというサービスに影響を与えない状態でメンテナンスを実施するために用いられます.
vSphere 6.0 以降,vCenter Server 間の vMotion などでのネットワーク要件が緩和され,遅延時間が 150ms まで許容される「Long Distance vMotion」が利用できるようになっています.
そのため,物理的なデータセンターをまたいだ vMotion を行うことが容易になりました.
vMotion は,先に述べたとおりあるホスト上で動作している仮想マシンを停止させることなく別のホストに移行する機能です.
この機能を用いることで,仮想マシンを移行する際に,仮想マシンの電源状態・OSの状態および提供しているアプリケーションやサービスを停止させることが無く移動でき,サービスは継続し続けます.
vMotion を実行すると,仮想マシンの設定情報などすべての情報が移行先のホストに転送されます.仮想マシン設定情報とは,NIC やディスクの情報などを含めたハードウェア情報です.
メモリーの内容は OS やアプリケーションが使用している情報も含まれます.
すべての情報が移動されるため,仮想マシンで提供しているサービスを停止・中断させることなく移動することが実現できます.
厳密にはホストの移行の最終段階の切り替わりのタイミングで Ping が 1,2 発程度通らない位の中断がありますが,通常 TCP は再送を行いますし,クライアント側がリトライを行うと思われますのでほぼ影響はないと言って差し支えありません.
vMotion のしくみ
vMotion の処理について,移行元・移行先の ESXi ホストの間でどのようなやり取りが行われて移行されるのかを解説します.
- 移行元および移行先の ESXi ホストの間で vMotion が可能か vCenter Server が互換性をチェックします
- 移行先の ESXi ホストで仮想マシンを生成してパワーオンします
- 移行元と移行先の ESXi ホストの間で vMotion トラフィックの接続が開始されます
- 移行元の ESXi ホストで動作している仮想マシンのメモリー情報を移行先の ESXi ホストにコピーを行います
仮想マシンを動作させたままメモリー情報のコピーを行うため,移行元の仮想マシンではコピー中でもメモリーの変更が入る場合があります.コピーの間に変更された差分は最初のコピーが完了した後に差分のコピーが行われます.差分のサイズがしきい値より小さくなるまで何度かメモリー情報のコピーが行われます - 移行元 ESXi ホスト上で仮想マシンのチェックポイントが作成されます.チェックポイントとは,仮想マシンのすべての状態を保持したスナップショットのことです.このチェックポイントを移行先 ESXi ホストに転送します
- 移行先 ESXi ホストでチェックポイントをリストアし,移行先の ESXi ホストから移行元 ESXi ホストに「リストア完了」の通知を送信します
- 移行元 ESXi ホストで仮想マシンをパワーオフして移行が完了します
vMotion によるホストの切替の際,仮想マシンは一瞬停止します.停止する長さは最終のメモリー差分コピーにかかる時間です.この停止時間を短くする技術として「Slow Down during Page Send (SDPS)」という技術を用いて停止時間を 0.5秒以内に短縮しています.
SPDS は「転送するメモリーサイズ < 変更されるメモリーサイズ」の場合,メモリー変更量を少なくするため CPU クロックを意図的に下げて処理量を減らす技術です.ですので,大量の処理を行っている仮想マシンは一時的にパフォーマンスが悪化する可能性がある事に注意してください.
そのような仮想マシンは利用者の少ない時間帯を選んで vMotion を行うなどが必要になるかもしれません.
vMotion のメリット
仮想マシンを停止することなくホストを移動できるライブマイグレーション技術は上でも簡単に述べていますが様々なメリットが存在します.
計画停止の削減
ESXi ホストはハードウェアおよびソフトウェア(ESXi およびドライバー) で動作しています.ハードウェアの故障や不良もしくはリソース不足によるスケールアップなどのメンテナンス作業を行うことがあります.このような場合,仮想基盤ではない場合はサービスを停止してメンテナンス時間を確保する必要があります.
vMotion がある事で,仮想マシンを他の ESXi ホストに移動してサービスを継続したまま,ESXi ホストのメンテナンスを行うことが可能になります.
ホスト間の負荷の平準化
多く の 場合、 ESXi ホスト 上 で 動作 する 各 仮想 マシン の 負荷 には ばらつき が あり ます。 ある ESXi ホスト では 仮想 マシン 同士 が ホスト の リソース を 奪い合い、 結果 として 十分 な リソース が 得 られ ない 状態 で ある の に対し、 別 の ESXi ホスト では リソース が 使わ れ ない まま 空い て い て、 無駄 が 生じ て いる という 状態 が 起こり え ます(
ESXi ホスト上で多数の仮想マシンが動作している場合,仮想マシンが提供しているサービスの利用状況やリソースの使用状況でどうしても負荷が偏ってしまう場合があります.そうなるとそのホスト内でリソースの奪い合いが発生し,結果仮想マシンで提供しているサービスの遅延が発生するなど,利用者に影響を及ぼす可能性があります.
このような場合も vMotion で仮想マシンを移動することで一つの ESXi ホスト上で高負荷になっている状況を改善してサービスの提供を安定化させることができます.
vMotion の要件
vMotion を利用するには,ホストが正しく構成されている必要があります.
・vMotion を行う ESXi ホスト両方に正しいライセンスが適用されていること (無料版ではできません)
・vMotion を行う ESXi ホスト両方が vMotion ネットワークを正しく構成していること
vMotion ネットワーク
vMotion で仮想マシンを移行する場合,ESXi ホスト両方で vMotion 用 VMKernel アダプターが必要です.このブログを順に見て進めていった場合は vMotion 用の構成は設定済みです.
vMotion トラフィックを流す設定が行われていないと vMotion はできません.
vMotion / Storage vMotion の実施
ここからは vMotion および Storage vMotion にそれぞれのパターンで解説します.
通常の vMotion (ホスト間の仮想マシンの移動)
ここでは共有ストレージに作成してある仮想マシンを ESXi #1 から ESXi #2 へ vMotion を行う場合の手順を解説します.
「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.
仮想マシンのみ移行しますので「コンピューティングリソースのみ変更します」を選択して「NEXT」をクリックします.
移行先のホストを選択して「NEXT」をクリックします.
vMotion の場合,接続するポートグループを合わせて変更することができます.
この項目の主な用途はクラスター毎にポートグループを分けている場合や,データセンター間の vMotion を行う際にポートグループを変えている場合などです.
変更したい場合は変更のうえ「NEXT」をクリックします.
vMotion の優先順位を選択します.通常は「vMotion を高優先度でスケジューリング」を選択して「NEXT」をクリックします.
違いは次のとおりです.
- vMotion を高優先度でスケジューリング
移行元,移行先の両方の ESXi で vMotion の際に必要とされるリソースを予約を試みます.「通常の vMotion スケジューリング設定」に比べて vCenter Server はホストに多くの CPU リソースを割り当てます.リソースの予約にあたり CPU リソースが確保できない場合はすぐに vMotion が開始されることはありません. - 通常の vMotion スケジュール設定
移行元,移行先両方の ESXi ですべての vMotion による同時移行で共有されるリソースを予約します.vCenter Server はホストに少ない CPU リソースを割り当てます.CPU リソースが不足している場合,vMotion の開始が延長されます.
設定内容を確認して「FINISH」をクリックします.
「最近のタスク」に「仮想マシンの再配置」が表示され vMotion が行われます.完了後仮想マシンインベントリーの「ホスト」が移行先に変わっていることなどを確認しましょう.
Storage vMotion (ホスト内でのデータストアの移行)
ここでは同一 ESXi 内でのデータストアの移行である Storage vMotion を行う場合の手順を解説します.
「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,Storage vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.
データストア (ストレージ) のみ移行しますので「ストレージのみ変更します」を選択して「NEXT」をクリックします.
移行先のデータストア (ストレージ) を選択して「NEXT」をクリックします.
画面上部に「仮想ディスクフォーマットの選択」が表示されます.規定は現在のフォーマットが選択されますが「シックプロビジョニング」の仮想マシンを「シンプロビジョニング」に変えたい場合などはここで変更先のフォーマットを選択してください.
設定内容を確認して「FINISH」をクリックします.
ホストとストレージの移行
ここでは vMotion と Storage vMotion を組み合わせて,仮想マシンを違うホスト,違うデータストアに一気に移動する場合の手順を解説します.
「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.
仮想マシンとデータストア (ストレージ) の両方を移行しますので「コンピューティングリソースとストレージの両方を変更します」を選択して「NEXT」をクリックします.
移行先のホストを選択して「NEXT」をクリックします.
移行先のデータストア (ストレージ) を選択して「NEXT」をクリックします.
vMotion も行いますので,ポートグループの変更画面が表示されますので「NEXT」をクリックします.
ポートグループを修正する場合はターゲットネットワークでポートグループを指定して「NEXT」をクリックします.
vMotion の優先順位を選択します.通常は「vMotion を高優先度でスケジューリング」を選択して「NEXT」をクリックします.
設定内容を確認して「FINISH」をクリックします.
以上,vMotion の解説および vMotion と Storage vMotion 操作の説明を終わります.
次回は vMotion に関するトラブル,トラブルシュートについて解説を行います.
コメント