こんにちは~nanchiuです。なんなん
私は前職(某SIベンダー)で新卒配属されてから1年半ほどVMware vSphereのテクニカルサポートをしていました。
その時の経験を活かして初心者でもわかるようにVMware vSphereの主な機能や少しだけ仕組みに突っ込んだ話をしたいと思います。
この記事の対象者
目次
はじめに
VMwareとは?
読み方は ヴイエムウェア です。
VMwareは仮想化を実現するための製品、もしくはその開発元である企業名を指します。
VMwareの製品は様々なものがありますが、ここではVMwareの主要製品であるVMware vSphereの機能や仕組みについてご紹介します。
仮想化とは?
機能紹介の前に、そもそも仮想化とはソフトウェアを利用してサーバなどのハードウェアリソース(CPU、メモリ、HDD)を、
論理的に統合や分割することができる技術のことです。
例えば1台のハードウェア(PCやサーバー)で複数のOSを動作させたりできます。
ソフトウェアによる仮想化は以下の種類があります。
用語について
ホスト型:
WindowsやMacなどのOSに専用のソフトウェア(VMware Workstation Player、VirtualBoxなど)を入れ、その上でゲストとなるOSを動作させることができます。
ハイパーバイザー型:
ハードウェア上にハイパーバイザーと呼ばれるソフトウェアを導入し、その上でOSを動作させることができます。
ホスト型との違いはホストとなるOSがないことです。
これによりホスト型と比べてホストOS分のオーバーヘッドがなくなります。
要するにその分処理が速いということになります。
コンテナ型:
近年よく聞きますよね。上記二つは仮想化ソフトウェアの上でゲストOSを動作させていますが、
コンテナはアプリとそのアプリが必要なミドルウェア、ライブラリ等がセットになったもの(コンテナ)を動作させています。
OSを動作させるにはハードウェアリソースを多く消費しますが、コンテナはアプリに必要なリソースしか消費しません。
ここだけ読むとコンテナを使えばええやん?と思うかもしれませんが、それぞれメリデメがありますし、用途によって選択肢が変わってきます。
実はVMware vSphereでコンテナを動かすこともできるのですが、この辺のネタだけでブログが書けそうなので今回はあまり触れないことにします。
VMware vSphereのメリット
VMwareの主要製品であるVMware vSphereは上述したようにハイパーバイザー型の仮想化製品です。
一般的にはサーバーの仮想化として利用します。
サーバーの仮想化では以下のメリットがあります。
1台の物理サーバー上に複数の仮想マシンを稼働させることができるため物理サーバーの台数が減ります。
このため、物理サーバーの管理コストやラック費用などの設備費用を低減させることができます。ビジネスの変化に迅速に対応できるようになります。仮想マシンに対して柔軟にリソースを追加できますし、
ハードウェアの調達を待つことなく新しく仮想マシンを作ることができます。レガシーなシステムを延命することができます。古いOSが最新のハードウェアで対応していない場合も
仮想化することで利用できるケースがあります。
さらに、VMware vSphereが提供する機能で様々な業務の効率化、可用性の向上、コスト削減が見込めます。
利用できる機能については後述したいと思います。
VMware vSphereの主なコンポーネント
機能を紹介する前に前提知識として主なコンポーネントを紹介します。
vCenter Server :
管理コンポーネント。後述するHAやvMotionを実現するために必要です。
通常、ユーザはブラウザからvCenter Serverに接続してオペレーションを行います。
vCenter ServerはESXi上の仮想マシンとして作成することも可能です。
ESXi :
VMware vSphereにおけるハイパーバイザです。主に仮想マシンへの動的なリソース割り当てを制御しています。
※ストレージはローカルディスクを利用する、共有ストレージ装置を利用する、VMware vSphereの機能であるvSANを利用する方法があります。
後述しますが、それぞれ利用できる機能が異なります。
VMware vSphereの機能
ESXiの主な機能
vSphereの主要な機能はvCenter Serverを導入することで利用できますが、なしでも使える便利機能を紹介します。
スナップショット
スナップショット取得時の仮想マシンの状態を保存することができます。
ゲストOS内で設定を変えた場合など、以前の状態に戻したい時に便利です。
thinディスク
仮想マシンのディスクをthinで作成しておくと、利用した分だけの容量が消費されます。
例えば、仮想ディスクを100GBで作成しておいても実際に利用している領域が20GBであればその分しか消費されません。
オーバーコミット
CPUやメモリを物理サーバーのリソースのキャパシティを超えて仮想マシンに割り当てることができます。
ただし、状況によっては仮想マシンの性能が著しく劣化するため設計・運用には注意が必要です。
CPUのオーバーコミット
物理CPU 1コアを1仮想CPUとしてマッピング (ハイパースレッディング有効時は論理スレッド) 。
仮想CPUの合計がESXiホストの搭載CPUを超える場合、非常に短い時間単位で交代しながら割り当てられます。
この時、よりCPU負荷の高い仮想マシンが優先されますが制限や予約、優先度を仮想マシン単位でチューニング可能です。
メモリのオーバーコミット
メモリもオーバーコミットが可能です。 以下の仕組みでメモリをやりくりしています。
透過的ページ共有(TPS)
仮想マシン間の同一内容のメモリページを共有します。
ただし、セキュリティ的な懸念からデフォルト無効になっています。バルーニング
ゲストOSのインアクティブなメモリを強制スワップアウトさせます。
そうして空いたメモリ領域を別のVMで利用します。メモリ圧縮
メモリを圧縮します。ディスクにスワップするよりは1,000倍高速らしいです。
また、メモリも制限や予約、優先度を仮想マシン単位で設定できます。
vCenter Serverを利用した主な機能
vCenter Serverを導入することで利用できるvSphereの目玉機能を紹介します。
※ライセンスによって利用できる機能は変わってくるためその辺は公式サイトなどを参照してください。
vMotion
仮想マシンを起動したままダウンタイムなしで別のESXiホストに移動できる機能です。
いわゆるライブマイグレーションのことです。
メモリの情報をコピーするのでOS上の処理もそのままの状態で移動できます。
物理的に違うホストに移動するのになぜダウンタイムなしで移動できるの!?と思ったかもしれませんが大まかな仕組みは以下です。
前提として、仮想ディスクは各ESXiホストからアクセス可能なストレージ(共有ストレージやvSAN)に格納されている場合の動作になります。
①メモリをNW経由でコピー
移行元が稼働した状態ですので、都度メモリの更新が入りますが移行元と移行先で差分がなくなるまで転送します。
当然、ネットワークが遅かったり、移行元のメモリが頻繁に更新される場合はvMoitonの時間が長くなったり最悪失敗したりします。
②移行先ESXiで対象仮想マシンのファイルをロック
仮想マシンはカプセル化(ファイル化)されています。
複数のESXiで更新しないよう単一のESXiで仮想マシンのファイルはロックされており、ここでそれが移動先のESXiに切り替わります。
③RARPをL2スイッチに送信し、MACアドレステーブルを更新
NW経路の変更はTCPセッションより下の階層で処理されるため切断されません。
Storage vMotion
仮想マシンを停止することなく、ストレージデータ(仮想ディスク)を移動することが可能です。
ストレージのタイプに依存しないためローカルディスク、ストレージ装置間の移行もできます。
例えばストレージ装置のメンテナンス時や移行に利用できます。
vMotionおよびStorage vMotionの同時実行
共有ストレージ不要で別のESXiホストへオンラインのまま仮想マシンとそのデータを移動できます。
仮想マシンテンプレート、クローン
テンプレート:
仮想マシンからテンプレートイメージを作成し、複数の仮想マシンに展開できます。
クローン:
仮想マシンをクローン(複製)できます。起動状態でも可能です。
同等の構成のサーバを複数作成したい場合はこれらの機能が役立つかと思います。
High Availability(HA)
物理サーバの障害で仮想マシンが停止しても、リソースの空いているサーバで自動的に仮想マシンを再起動(無停止ではない)します。 ダウンタイムを最小にすることが目的の機能です。
HAの設定にはvCenter Serverが必要ですが、ESXi間でハートビートにより死活監視をしているためvCenter Server障害時でも
HAの機能は発動します。
vSphere Fault Tolerance(FT)
本番環境として稼働している仮想マシンと同じ環境を、別のESXi上に復旧用の仮想マシンとしてコピーしています。
メモリの情報もフルsyncしているのでハードウェア障害時にも一切のダウンタイムなく、
仮想マシンをフェールオーバーする事が可能です。
Hotadd
仮想マシンを停止せずにデバイスを追加認識させる機能です。
起動状態のままCPUなど追加できますが、ゲストOSが機能に対応している必要があります。
DRS
特定のESXiに負荷が集中した際、自動的に仮想マシンを別のリソースの空いているESXiにvMotionで移動させ、
全体のロードバランスを行います。
移動対象はポリシーで設定できるため、例えばこの仮想マシンとこの仮想マシンは同一ESXiで稼働させない
といった制御も可能です。
storage DRS
I/O負荷に応じて最適なストレージへ仮想マシンの元データを移動し、負荷を分散します。
vSAN
図は論理的なイメージです。
ローカルストレージを仮想化し複数の筐体で単一(共有)のデータストアを作成できます。
なお、vSAN自体はESXiに機能が含まれていますが、利用するにはvSAN用のライセンスが別途必要です。
- 柔軟に拡張でき、共有ストレージ装置を構築する必要がない。(vSANのみで共有ストレージ必須のHAなどの機能が利用可能)
- 必要なデータを他のESXサーバへ多重コピーするのでRAIDは不要。
vSANを利用すると仮想マシンはESX1で動作しているが、仮想マシンのデータはESXi2とESXi3に保存されているといった
構成も普通です。
データが自身のホストのローカルディスクにない場合、IOが遅くならないか?という懸念がでるかと思いますが
主に以下の構成により高速なIOを実現しています。
ディスクがキャッシュディスクとキャパシティディスクに分かれています。データの書き込みは高速なキャッシュディスクに。
後から容量の大きなキャパシティディスクに書き込まれます。10Gbps以上のネットワーク。物理筐体を跨いで書き込み先のESXiのローカルディスクに書き込みを行うためネットワーク帯域は 10Gbps以上である必要があります。
以上で主要機能の説明は終わりです。
どんな機能があるか、どういった仕組みで実現されているのかなんとなくイメージがつきましたでしょうか。
参考になれば幸いです。なんなん
エンジニア中途採用サイト
ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
ご興味ありましたら是非ご確認をお願いします。
https://career-recruit.rakus.co.jp/career_engineer/
カジュアル面談お申込みフォーム
どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
以下フォームよりお申込みください。
https://rakus.hubspotpagebuilder.com/visit_engineer/rakus.hubspotpagebuilder.com
ラクスDevelopers登録フォーム
https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/
イベント情報
会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください!
◆TECH PLAY
techplay.jp
◆connpass
rakus.connpass.com