ネットワークスペシャリスト - SE娘の剣 -

左門至峰によるネットワークスペシャリストの試験対策サイトです。勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの紹介します。

仮想化技術

1.仮想化とは

仮想化は幅広く、VLANも仮想化技術であるし、もちろんSDNも仮想化技術である。ここでは、ややサーバでの仮想化について解説する。

ef6167f8.jpg 

仮想化と言えば、Vmwareですね!
たしかにそう。
サーバ仮想化とは,物理的なサーバ上に論理的なサーバを動作させる仕組みである。1台のサーバ上に,あたかも多数のサーバが稼働しているように扱える。ネットワークスペシャリスト試験では,仮想化のためのシステムを,仮想化機構と呼ぶことが多いようである。
 
仮想化の問題は,H20年,H22年などで出題されており,今後も出題される可能性が高い。仮想化を実現する製品としては,VMware,Xen,マイクロソフト社のHyper-Vなどがあります。製品ごとに違いはあっても,基本的な機能は同じです。

ただ、仮想化とは、「サーバの仮想化」だけではない。ネットワークの仮想化もある。ネットワークの仮想化に関しては、VLANがその一つである。VPNもVirtual(仮想)という名の通り、仮想のプライベートネットワークである。
また、Firewallなどの製品においても、ひとつの筐体で複数の仮想FWを構築できる機能もある。

■参考:VMwareの場合
 VMwareの場合の言葉などを整理する。試験には個別製品の名称はでないが、VMwareを使っている人は、イメージを膨らませてもらうために、ご参考まで。

・vCenter(昔はVirtual Center)は複数のESXを一元管理をするソフト
・VMwareESXおよびESXiはハイパーバイザ(ソフト)のこと。ESXの意味が知りたいのでVMに聞いてみようか
・VMwareServerはWindows2008ServerやLinuxなどのホストOS上で動くホストOS型のソフト
・ESXiはESXの無償版であるが、機能が削減されたというより、大幅に軽くなったという感じ
・VMware vSphereはESXとvCenter、vSphere Clientなどをまとめた製品群のこと。スイートというらしい。
・VMware vSphere Clientは、ESXやvCenterを運用管理するソフトで、Windows7などのクライアントPCにインストールする。

2.仮想化の目的

仮想化の目的は主に次です。

❶(資源の有効活用による)コスト削減
サーバを収束することにより,サーバ台数を削減します。その結果得られることは,初期コストの削減だけでなく,設置スペースの削減,電気代や空調代などの運用コストの削減です。

❷運用性の向上
管理機能が充実しており,仮想サーバのメモリ割り当て変更や仮想NICの追加変更などが柔軟に行えます。また,障害時の復旧などが行いやすくなります。OSの基本的なひな形をイメージとして作成しておけば,コピーすることで簡単に仮想サーバを増やせるメリットもあります。
過去問では,仮想化の目的に関して次のように述べられています。

・サーバの仮想化を行って,複数企業でサーバを共有すれば,投資の削減,サービスの立ち上げの迅速化,運用効率の向上等が可能になる(H22午後II問2)
・環境の変化に柔軟に対応できるようにすることと,運用負荷を抑えるために,新業務システムを稼動させるシステム基盤に,サーバ仮想化技術を活用する(H22午後II問1)


❸その他のメリット
付属的なメリットにはなりますが,物理サーバを購入することなくテスト環境を構築することができます。
Windows NTなどの古いOSに導入された古いシステムがあるとします。新しいハードに入れ直すことは困難であるし,新規開発予算がないことから,このシステムを利用したい。でもハードが故障しそうである。こんな時は仮想化してイメージしてしまえば,新しいハードに入れることができます。

一方、デメリットとして、技術的に複雑であり、仮想化に対応できる技術者の育成が課題と言えるでしょう。また、技術的に複雑であることは、障害時の切り分けなどが難しくなる場合もあります。たとえば、FWなどのネットワーク機器であれば、仮想化せずに物理筐体の方が、管理がしやすいとも言えます。ソフトウェアのUpdateなどもあまり気にする必要もありません。

3.仮想化の構成

ネットワークスペシャリスト試験の過去問(H20NW午後2問1)に仮想化の出題がある。読むだけでも参考になると思う。

ネットワークスペシャリスト試験対策画像-仮想化の構成
図3 仮想化方式の説明図

 図3の方式は,ハイパーバイザ型と呼ばれる方式で,仮想化機構がその上で動作する仮想PCに対してハードウェアリソースの割当て,タスクスケジューリング及び仮想化されたシステム全体の管理を行う。生成された仮想PC上のプログラムは,サーバの構成や同じサーバ上にあるほかの仮想PCを意識せずに動作することができる。
図3中の仮想NICは,仮想PC上のOSにとって,物理NICと同じように扱えるソフトウェアで実現されたNICである。図3中の仮想L2SWは,仮想PCが外部との通信を行う仕組みとして用意されたもので,ソフトウェアで実現した擬似的なレイヤ2スイッチである。仮想NICと仮想L2SWの接続は,仮想化機構のコンソールで設定され,この接続によって仮想PCはほかの仮想PCや外部との通信が可能になる。仮想L2SWの外部接続用ポートとして,物理NICが使われる。仮想L2SWの物理NICを外部のスイッチに接続することで,外部のネットワークとの通信も可能になる。
 仮想PCは,基本的に仮想PCに割り当てるリソースの構成情報を基に生成できる。したがって,動作している仮想PCは,メモリ内容と構成情報のファイルとして,移動や複製が可能であり,サーバの増設,負荷バランス,障害時の切替えなどの構成変更が容易になる。

4.仮想化の方式

仮想化の方式は,ハイパーバイザ型とホストOS型があります。(その他にもいくつかありますが,ネットワークスペシャリスト試験で問われることは少ないので割愛します。)

❶ハイパーバイザ型
物理サーバ上で,ハイパーバイザを動作させる方式です。ハイパーバイザとは,その上で動作する仮想PCに対してハードウェアリソースの割当て,タスクスケジューリング及び仮想化されたシステム全体の管理を行います。

【参考】ハイパーバイザ(Hyper-visor)Supervisorは監督者という意味で,スーパーバイザエンジンやスーパーバイザモードなどのように,管理機能として利用される用語です。Hyper-visorは,Superの上位を意味するHyperという言葉を使い,通常管理機能であるOSを管理するという意味で名付けられたと思われます。
ハイパーバイザは通常のOSと比べて非常に小さなソフトウェアです。そのため,仮想化のオーバーヘッドが少ないというメリットがあります。

❷ホストOS型
物理サーバ上で通常のOSを動作させ,OS上で動作する仮想化ソフトウェアをインストールして利用する方式です。
ホストOS型は,ホストOSのオーバーヘッドが大きいというデメリットがあります。しかし,通常のOSのアプリケーションとして導入できるため,気軽に試しやすいというメリットがあります。
 
ハイパーバイザ型,ホストOS型のいずれも,生成された仮想PC上のプログラムは,サーバの構成や同じサーバ上にあるほかの仮想PCを意識せずに動作することができます。

1

違いがよくわからない…
VMwareの場合,VMware ESXをOSとするのがハイパーバイザで,Window Server 2008などの通常のOSとするのがホストOS型になります。

▼過去問(H22午後Ⅱ問2)を見てみよう

物理サーバ上に,仮想化機構を動作させるためのOSを必要としない,[ ア ]方式と呼ばれる方式は,仮想サーバの動作の安定性,仮想化を支援するハードウェアによる性能向上などを背景に普及しつつある。仮想化機構は,仮想サーバの実行制御,及び仮想サーバと外部のネットワークやストレージデバイスとの接続制御を行う。
 仮想サーバを使用したシステムでは,1台の物理サーバ内で,多数の仮想サーバを動作させることができる。N君によると,“仮想化を行った場合は,仮想化を行わずに物理的に独立したサーバだけでシステムを構成する場合と比較すると, NICなどの外部接続用ハードウェアを複数の仮想サーバで共有するので,[ イ ]と[ ウ ]の面でより注意が必要である”ということであった。
 仮想サーバと,ほかの仮想サーバや外部のスイッチとの接続は,ソフトウェアで実現する仮想的なスイッチ(以下,仮想SWという)が行う。今回採用予定の仮想SWはレイヤ2スイッチであり,その使用構成を,図2に示す。






[ ア ]
 仮想化機構の方式として,ホストOSの上で仮想サーバを動作させるホストOS方式と,ホストOSを必要としないハイパーバイザ方式の二つがあります。
 具体的な製品名ではVMware ServerやVirtual Server(マイクロソフト)・VirtualBox(オラクル)はホストOS方式,VMware ESXやHyper-V(マイクロソフト)・XenServer(シトリックス)はハイパーバイザ方式です。
 ハイパーバイザとは,仮想サーバを動作させるための最低限の機能を持ったソフトウェアです。そのため,サイズが小さく,オーバーヘッドが少ないというメリットがあります。

解答例:ハイパーバイザ

[ イ ]・[ ウ ]
 物理NICが故障した場合,仮想化を行っていない場合の影響範囲は一台のサーバだけですが,仮想化の場合は全仮想サーバが影響を受けてしまいます。したがって,冗長化など,信頼性向上の仕組みが欠かせません。
また,外部接続はボトルネックになりやすくなります。複数の仮想サーバが一つの外部接続を共有して使うからです。したがって,物理NICについて十分な通信帯域の確保が重要です。

解答例
イ:信頼性
ウ:通信帯域の確保 (順不同)

5.NFV

NFV(Network Functions Virtualization)は、まさに仮想化技術である。仮想アプライアンス(バーチャルアプライアンス)という言葉がなじみ深いかもしれない。インテルのチップが搭載されているような普通のサーバに、従来は物理的なネットワーク機器であったルータやFWなどを仮想化して搭載する。
過去問(R3SC春午前2問18)では「ETSI(欧州電気通イ言標準化機構)が提唱するNFV(Network Functions Virtualization)」に関して「ルータ,ファイアウォールなどのネットワーク機能を,汎用サーバを使った仮想マシン上のソフトウェアで実現する。」とある。
SDNとの比較であるが、SDNとは仮想化という観点では通じているが、SDNはコントローラで制御したりするものであり、別物。

6.コンテナ技術

こちらは、ネットワークスペシャリスト試験ではなく、情報処理安全確保支援士の試験で登場した。
コンテナ技術としてはdockerがあるが、深いところまでは問われない。実際に構築してみたい人は以下も参照ください。

python3.hatenadiary.com

情報処理安全確保支援士の過去問(R1秋SC午後2問1)をみてみよう。 

Pさん:まず,コンテナ技術の活用について解説してもらえますか。
B氏 :サーバで【 c:コンテナエンジン 】を一つ稼働させておけば,【 c:コンテナエンジン 】の上で,【 d:アプリ 】ごとに別の【 e:コンテナ 】を稼働させることが可能です。ほかの【 e:コンテナ 】への影響なく,【 e:コンテナ 】ごとにサービスの提供や停止ができます。さらに,【 c:コンテナエンジン 】の上で稼働する【 e:コンテナ 】は複製が容易なので,同じ開発環境をいくつも用意して【 d:アプリ 】を開発することが可能となります。
Pさん:なるほど。S社でも以前から,遠隔監視するツールのためにサーバA上で【 c:コンテナエンジン 】を稼働させているのですが,そのようにも活用できるのですね。構成管理・変更管理への活用についても解説してもらえますか。
B氏 :実行環境の構成情報を,【 d:アプリ 】のソースコードと同じようにサービスHでバージョン管理できます。構成情報については,【 f:変更の履歴 】を確認することができ,図5で提案した運用プロセスでのシステム変更の管理につながります。
Pさん:なるほど。リリース前の確認への活用について解説してもらえますか。
B氏 :リリースする際の確認のため,【 g:本番 】環境と同じ実行環境を用意して,【 d:アプリ 】が動作するかを確認することが可能となります。図5で提案した【 h:検証 】環境も用意できます。
Pさん :実行環境の更新への活用について解説してもらえますか。
B氏:【 e:コンテナ 】内のライブラリ及びミドルウェアは,【 c:コンテナエンジン 】が稼働するOS側のそれらとは別のファイルです。複製した【 e:コンテナ 】内で,ライブラリ及びミドルウェアにパッチを適用したときに,現在の【 d:アプリ 】が正常に稼働するかを【 く:回帰テスト 】を行って確認できます。

ちなみに、回帰テスト(リグレッションテスト)に関して過去問(H26秋FE午前問49)では、「ソフトウェアのテストの種類のうち,ソフトウェア保守のために行った変更によって,影響を受けないはずの箇所に影響を及ぼしていないかどうかを確認する目的で行うもの」と述べられています。