はじめに
IT業界に携わっていない人は、”仮想化”と言われる技術がどのように使われているか知る機会もなく、知らず知らずのうちに利用していることが多いと思います。知っていなければ利用できないという技術ではないため、ユーザーが知らなくてもなんの支障もありません。
”仮想化”技術はより高度で複雑になっており、簡単に理解できる話ではありません。
そこでこの記事では、シンプルに要点をまとめた内容で”仮想化”技術について述べたいと思います。
よく見るWebサイトは見慣れない単語が多く、その単語を理解するだけで一苦労だと思います。
ですが、この記事ではIT業界に入って1年も経っていない初心者が、”仮想化”技術について読みやすい表現で説明させていただきます。
みなさんが”仮想化”技術について少しでも興味も持っていただけたら幸いです。
目次
1 仮想化とは?
1-1 仮想化できる資源とは
1-2 仮想化の導入によって叶えられること
1-3 仮想化のメリット、留意点
2 サーバ、デスクトップ、ストレージの仮想化
2-1 サーバの仮想化
2-2 デスクトップの仮想化
2-3 ストレージの仮想化
3 ネットワークの仮想化
3-1 ネットワーク機器の仮想化
3-2 ネットワーク接続の仮想化
3-3 通信回線の仮想化
3-4 OpenFlowを使った仮想ネットワーク
1 仮想化とは?
仮想化とは、実在するIT資源を論理的に異なる資源であるかのように認識させる技術です。
論理的に、と言われると理解しにくいかも知れませんが、「見せかける」ということです。簡単な例で言うと、実際には1つしかないものを2つに見せかけたり、2つのものを1つに見せかけたりする技術です。
「見せかける」だけですので、外から見た見た目は変化がありません。
中の情報を分割したり、統合したりすることを意味します。仮想化技術がなければ、ハード(実際の機械)はどんどん増えていき、膨大な運用コスト(電気代や機械のメンテナンスなど)がかかり、広大なスペースが必要になってしまうため、仮想化技術によって様々な問題が解決されていくことが期待されます。
1-1 仮想化できる資源とは
・サーバー
1台のサーバーを仮想化技術によって分割し、複数の論理的なサーバー環境を作ることができます。逆に、複数のサーバーを論理的に統合して、高い処理能力をもつサーバーとして機能させることも可能となります。
※サーバー・・・サービスを提供するコンピュータ。
・デスクトップ
1台のサーバーの中に、個々のユーザーが使うPC環境を作ることができます。
シンクライアント環境とも言います。
シンクライアント・・・デスクトップとPCの役割を切り離して運用しているというシステム環境のことを指します。
通常はクライアント(ユーザー)側の端末に入っているOSやアプリケーションなどを、すべてサーバー側で管理し、サーバー側で処理させた結果が、クライアント端末に表示されます。
ユーザーはあたかも自分の端末で色々な処理をしているように利用できますが、実際処理を行っているのはサーバーということになります。
・ストレージ(記憶媒体)
サーバーと同様に、1台のハードディスクを論理的に分割して複数のハードディスクに見せかける。または、複数のハードディスクを1台のハードディスクに見せかけることができます。
・ネットワーク
ネットワークの仮想化は大きく4つに別れます。
- 物理的なLANの接続構成とは異なる論理的なLAN構成を作ることが可能です。
- インターネットなど他のユーザーと共有するネットワーク上に、仮想的に専用線を作ることができます。
- 複数のネットワーク機器(スイッチ、ルーターなど)を1台に見せかけ、運用管理を容易にすることができます。
- 1台のネットワーク機器を、複数の機器であるかのように見せかけて、ユーザーやサーバーごとに機能や設定を変更することができます。
それぞれの詳細な仮想化技術については、2,3でご紹介します。
1-2 仮想化の導入によって叶えられること
先ほど、仮想化技術によって様々な問題が解決されると述べましたが、具体的にはどのような問題が解決されていくのでしょうか。
仮想化を導入をすることで得られるメリット
・資源を柔軟に利用することができる
拡張性が高いとも言いますが、装置やソフトウェア、システムなどの使用を開始した後に、 CPUやメモリなどの資源を追加・削除することができます。
USBで例えてみると、それぞれ8GBのUSBが5つあり、別々にデータを入れて保管していたものを、一つの40GBのUSBとして管理、利用することができると言うことです。さらに容量を増やすことも可能になります。
・資源の有効利用
CPUやメモリを効率よく利用することができるようになります。例えば、2つの機械で別々の処理を行なっており、片方の機械ではCPUの利用率が90%で処理能力が限界に近づいているとします。
もう一つの機械では20%で余力があるとします。これらを統合して一つのCPUとして利用することで、CPUの処理能力を有効的に利用することが可能になります。
・コストの削減
前述した資源の有効利用等により、サーバーの物理的な台数を減らすことができます。同時に、ハードウェアに対する投資と設置スペース、消費電力も削減することができます。
・障害が発生してもサービスを維持できる
複数の拠点にサーバーを配置し、仮想化によって冗長化※を図ることで障害発生時に残りの資源でサービスを維持することが可能になります。
※冗長化・・・万が一に備え、代替用の設備を用意しておき、故障や障害が発生した場合でもサービスを継続的に提供できるようにすること。
・運用や管理がしやすくなる
仮想化によって複数の資源を統合して管理を行うことになるため、運用管理を行うインターフェース※を使い、管理する物理的なサーバー台数を削減することにつながります。
※インターフェース・・・ここでの意味は、コンピュータで、異なる機器・装置の間を接続して、交信や制御を可能にする装置やソフトウェアを意味します。
・古いシステムを継続利用できる
古いOS(オペレーティングシステム)で利用しているシステムによっては、新しいOS上では稼働させられない場合があります。その場合、仮想化されたサーバー上で仮想OSを使い、利用を継続することができます。
1-3 仮想化のデメリット、留意点
仮想化のメリットは上記にあげた通りですが、デメリットや留意点もあるので、注意しつつ導入を検討する必要があります。
利用者が仮想化について理解し、導入する必要があります。保守を行うには専門知識が必要になるので、専門の技術者が必要になる場合があります。
仮想化システムに必要なソフトウェアを導入する必要がありますので、どのくらいの費用、ランニングコストがかかるか試算する必要があります。特に小規模のシステム構成においては、処理能力と投資コストのバランスを検討しなければなりません。
一つのサーバー上で複数のシステムを稼働させている場合、そのサーバーで障害が発生すると全システムに影響が及ぶことになるため、冗長化を図り障害対策をとる必要があります。
2 サーバ、デスクトップ、ストレージの仮想化
サーバー、デスクトップ、ストレージのそれぞれの仮想化技術について解説していきます。
2-1サーバの仮想化
サーバーに対して利用される仮想化技術は大きく二つに分かれます。「分割技術」と「統合技術」です。
・サーバー分割技術
1台のサーバを分割して複数の論理的なサーバー環境を作り、複数のシステムを稼働させることをサーバー分割技術と呼びます。「サーバー仮想化」という場合、一般的には「サーバー分割」の意味で使われます。
分割技術には「パーティショニング方式」と「仮想マシン方式」があります。パーティショニング方式は下記の2つのタイプに分けられます。
方式 | タイプ | 説明 |
---|---|---|
パーティショニング方式 | 物理パーティショニング型 |
サーバー内の物理的な構成単位をパーティションという単位で分割します。簡単にいうと、使用する機械そのものをサーバー内で別々に構成するということです。 |
パーティショニング方式 | 論理パーティショニング型 |
サーバー内のハードウェア資源をファームウェア*により論理的に分割します。
この方式では、CPUやメモリなどの資源を論理的に細かく分割して、自由に複数のパーティションに割り当てることが可能です。 * ファームウェア・・・ハードウェアを直接制御するためのソフトウェアです。ROMに内蔵されたBIOSやCPUのマイクロプログラムがこれにあたります。 |
仮想マシン方式は、サーバー仮想化ソフトウェアを使い、物理サーバーに搭載されているハードウェア資源を各仮想マシンに配分して、仮想マシン環境を構築する技術です。パーティショニング方式を比べて、サーバー仮想化ソフトウェアによるオーバーヘッド※が大きいという点はありますが、柔軟性に優れるため、現在のサーバー分割技術の主流となっています。仮想マシン方式には、ホストOSと仮想化ソフトウェアを組み合わせた「ホストOS型」とホストOSを使用しない「ハイパーバイザー型」があります。
※オーバーヘッド・・・コンピュータなどで何らかの処理をする際に、本来の処理を行うための間接的な処理のことを指します。送りたいデータや信号そのものとは別に付加的に必要となる制御用のデータ、処理にかかる余計な負荷や時間のことも指します。
方式 | タイプ | 説明 |
---|---|---|
仮想マシン方式 | ホストOS型 |
もともと物理的なサーバーで稼働しているOS(ホストOS)上で、仮想マシン内のOS(ゲストOS)を動作させる方式です。
ホストOS型の仮想マシンは比較的簡単に導入できますが、それぞれの仮想マシンがホストOSを経由して稼働するため、オーバーヘッドが大きくなります。 ホストOS型は実際の運用環境としてではなく、開発テストなどの検証環境として用いられています。 |
仮想マシン方式 | ハイパーバイザ型 |
ハイパーバイザー型は、ハードウェア上にホストOSではなくサーバー仮想化ソフトウェアを配置します。
ハイパーバイザとは、ハードウェアと仮想マシン環境との間に配置されるものであり、仮想化されたサーバー上のゲストOSに対して資源を配分する機能だけを持った専用のカーネル※です。 この方式は、ホストOSを経由せずに仮想マシンを動作させることができるため、ホストOS型仮想マシン方式より処理性能が高いです。 また、ホストOSを使わないため、ホストOSの障害がゲストOSに影響を与えることがなく、実際の運用においてはホストOS型よりハイパーバイザ型の方が多く使われています。 ※カーネル・・・簡単にいうと、ハードウェアとソフトウェアの仲立ちのような役割を持ったソフトウェア。OSの中核を構成するソフトウェアであり、動作中のプログラムの実行状態を管理したりします。 |
・サーバー統合技術
複数のサーバーを連携させて統合し、あたかも1台のサーバーであるかのように稼働させる技術です。
サーバー統合技術は利用目的から2つに分けられます。
それは「HAクラスタリング* 構成」と「負荷分散クラスタリング構成」です。
*クラスタリング・・・複数のコンピュータを連結し、全体で1台のコンピュータであるかのように振る舞わせる技術。
構成 | 説明 |
---|---|
HA(High Avalability)クラスタリング構成 |
複数のサーバーを統合して1台のサーバーでは得られない高い可用性* を得ることを目的とした技術です。1つのサーバーが障害や保守により停止した場合でも、残りのサーバーのうち1台でも稼働していればシステム全体としてサービスを継続することができます。 可用性・・・英語でAvalability。継続稼働ができることを指し、壊れにくいという意味。 |
負荷分散クラスタリング構成 |
複数のサーバーを統合して同時に稼働させ、並列で処理を行うことにより、1台のサーバーでは得られない高い処理性能を得るための技術です。
複数のサーバーを統合して1台のサーバーとして仮想化する機能ですが、通常では負荷分散装置(ロードバランサ)が必要となります。 つまり、複数のサーバーと負荷分散装置の両方を準備することで、この構成を実現することができるようになります。クライアントからの膨大なリクエストを複数のサーバーに振り分けることで、処理能力を落とさず稼働させることができます。 |
2-2 デスクトップの仮想化
デスクトップの仮想化とは、データセンター内のサーバーでクライアントのデスクトップ環境を構築することを言います。多く人は自分のPCを使うとき、PC本体内の記憶媒体でデータを保管し、アプリケーションをインストールし、セキュリティなど様々な設定を行っていると思います。
デスクトップの仮想化では、手元の端末で操作を行うものの、データ・アプリケーションの管理、セキュリティの設定などの役割をサーバーが担います。そうすることで、ソフトウェアのインストールやアップグレード、セキュリティ対策をサーバー側で一括して行えるので、それらの運用管理負担(TCO*)を大幅に軽減することができます。
*TCO・・・Total Cost of Ownershipの略。コンピュータシステムを導入、利用、保守、運用するに当たって必要となる全てのコスト意味する。
デスクトップ仮想化の実装方式についてですが、デスクトップ仮想化はほとんどがWindows環境で利用されています。それには3つの実装方式があげられます。
方式 | 説明 |
---|---|
ターミナルサーバー方式 | Windows Serverのターミナルサービスによるものです。 1台のサーバー上でサーバー用のOSであるWindows Serverを稼働させて、その上で複数のクライアント向けのアプリケーションを実行します。サーバー側での集中管理が可能であり、この方式が最も普及しています。 |
ブレードPC方式 | ブレードPCと呼ばれる独立したクライアントPCとして動作するコンピュータハードウェアを利用して、画面転送方式により仮想デスクトップを実現するものです。
個々の仮想デスクトップはPCのハードウェアとして分離しているため、クライアントの自由度が高くなり、1台のブレードPCで障害が起きたとしても他のブレードPCに影響がありません。 その一方で、個々のブレードPC間でハードウェア資源のやりとりができない点や個々のクライアントOSの管理が煩雑になる点が留意点として挙げられます。また、クライアントの数に合わせたブレードPCが必要になりますので、全体のコストが高くなりがちです。 |
仮想マシン方式 | 1台のサーバー上でハイパーバイザを動かし、そのハイパーバイザが提供する仮想環境で起動する複数の仮想マシン上で、それぞれのクライアントOSとデスクトップ環境を実現します。前述したターミナルサーバー方式と似ていますが、ターミナルサーバー方式では1台のサーバーにつきサーバー用のOSしか利用することができません。
仮想マシン方式では、1台のサーバー上で複数のクライアントOSを稼働させることが可能です。メリットとしては、ターミナルサーバー方式と似ていて、サーバー側での集中管理が可能である点が挙げられ、デメリットとしては特定の仮想デスクトップ環境の処理負荷が高い場合、同じサーバー上で稼働している他のデスクトップ環境に影響を与える可能性が挙げられます。 |
2-3 ストレージの仮想化
ストレージ(記憶装置)に対する仮想化技術はサーバーに対するものと同様で、分割技術と統合技術があります。仮想化の対象となる物理的なストレージとしてはHDD(Hard Disc Drive)が基本的な単位となります。
分割技術は、HDDの容量を分割しそれぞれ独立したHDDと見せかけることを指します。
統合技術は、複数のストレージを統合し、単一の機器として利用することを指し、利用形態の代表的なものとしてRAID(Redundant Arrays of Inexpensive Disks)技術があります。
RAID技術は、複数のHDDを組み合わせて冗長化することと、ストレージ容量の拡大を可能にします。RAID技術はRAIDレベルによって仕組みが異なり、実現できる機能が異なります。
代表的なRAIDレベルは下記の通りです。
RAID | 説明 |
---|---|
RAID 0 | 複数のHDDに対してデータの読み書きを分散して行うことで処理の高速化を図った方式です。ストライピングと呼ばれています。冗長性はなく、単純に複数のHDDを一つのHDDとして利用するものです。 |
RAID 1 | 複数のHDDに同一のデータを同時に書き込むことで、冗長化を図っています。ミラーリングと呼ばれています。1台のHDDが故障した場合でもシステムは稼働し続けることが可能です。 |
RAID 5 | RAID 0と同様に、分割して書き込まれるのに加え、同時に「パリティ」と呼ばれる冗長コードも分散させて記録することで、読み込み性能の向上と冗長性を持たせる機能です。 |
3 ネットワークの仮想化
サーバーやストレージと同様に、ネットワークに対しても様々な仮想化技術が適用されています。ネットワークに対する仮想化は、ネットワーク機器の仮想化、ネットワーク接続の仮想化、通信回線の仮想化に分けられますので、それぞれについて解説していきたいと思います。
最後に、ネットワークの仮想化を実現するOpenFlowとういう技術についても紹介いたします。
3-1 ネットワーク機器の仮想化
企業や組織のネットワークは、それぞれ独立した専門機能を持つ装置(アプライアンス*)によって構成されています。それらの機器を組み合わせて、相互に接続することによってネットワークは成り立っており、構成の変更が生じた場合、機器の追加や設定変更など、運用管理がさらに煩雑になっていきます。
運用管理の課題に対する解決方法として、ネットワーク仮想化技術を用いた機器を利用し、ネットワークを構築することが可能になってきました。
ネットワーク資源を分割、統合させる技術について説明していきます。
- アプライアンス・・・例として挙げると、スイッチ、ルーター、負荷分散装置(ロードバランサ)、ファイアウォール装置、侵入検知装置、VPN(Virtual Praivate Network)装置など。
分割技術は、単一のネットワークを論理的に複数のネットワークに分割することを指します。ネットワークの分割技術が適用された機器の例として、VLAN機能付きスイッチというものがあります。スイッチはLAN(Local Area Network)を構築するために使用される基本的な通信機器です。
LANケーブルをスイッチに接続し、スイッチを介して相互の通信を行います。VLAN(Virtual LAN)機能付きのスイッチは、物理的な接続構成に関係なく、LANに接続されている端末に対して仮想的なグループ(VLAN1,2,3,,,)を作成することが可能です。仮想的に分割すると、各グループ(ネットワーク)は独立したネットワークとして機能し、各ネットワークのトラフィックは分割されたそれぞれのネットワーク内に限定されます。また、複数のLANが接続されたスイッチ同士をつなぐことで、一つのスイッチに全てのLANが接続しているかのように見せかけることも可能です。
アプライアンス機能が内蔵されたスイッチというのも存在しています。これまで、独立した機能を持った装置を相互につなぎネットワークを構成するのが一般的でしたが、セキュリティ機能を持つファイアウォールや、特定のサーバーに負荷が集中しないよう分散させる負荷分散装置の機能が内蔵されたスイッチがあります。そのスイッチを利用することで、変更や管理が容易なネットワークを構築することができます。
次に、統合技術についてですが、複数のネットワーク資源を論理的に統合し、単一のネットワーク資源として動作させる技術です。3つの技術について説明いたします。
1. VRRP(Virtual Router Redundancy Protocols)機能
VRRP機能により、同一のLANセグメント上にある複数のルーターを、1台の仮想的なルーターとしてみなすことができます。1台のマスタールーターと、複数台のバックアップルーターで構成され、障害対策に使用されます。
2. VRF(Virtual Routing and Forwarding)機能
1台のルーターを複数台の仮想的なルーターとして使用したり、1台のルーター上で複数のルーティングテーブルを持つことができます。この機能を使えば、共通のネットワーク機器を使っていたとしても、仮想ルーターごとに通信を分断することも可能になります。
3. VSS(Virtual Switching System)機能
この機能により、複数のLANスイッチをまとめて1台の仮想的なスイッチのように見せかけることができます。この機能による構成は、スタック構成と一般的に呼ばれます。スイッチ間を専用ケーブルでつなぎ、設定情報やルーティング情報等を共有することで冗長化を図ることができます。
3-2ネットワーク接続の仮想化
これまでネットワークを構成する時、ネットワーク機器同士をLANケーブルなどを用いて接続していたため、設定変更する際はLANケーブルなどを差し替えて物理的に接続を変える必要がありました。
しかし、3-1で紹介したVLAN機能などを適用することにより、物理的な接続を変えることなくネットワークの構成を論理的に変更することが可能となっています。つまり、物理的なネットワーク接続を変えなくても、仮想的にネットワークの接続を変更することができるのです。
ネットワークの接続を仮想的に操作する技術について紹介します。
複数の物理的なLAN回線を仮想的に束ねて、1本の回線であるかのように見せかけるリンクアグリゲーションと呼ばれる技術があります。リンクアグリゲーションは、サーバーとスイッチ間、またはスイッチとスイッチ間を接続する際などに適用することができます。
仮想的に束ねることで、伝送帯域を合算させて利用することが可能になります。
例えば、100Mbpsの回線5本を仮想的に束ねると500Mbpsの伝送帯域を利用することができます。リンクアグリゲーションの技術を使えば、高速なLAN回線の設備や機器を準備しなくても伝送帯域を拡大することができ、また、物理的な回線に障害が生じた場合でも他の回線を使って通信を維持することができます。
3-3通信回線の仮想化
地理的に分散した複数の拠点を持つ組織は、拠点間でデータを共有するために、広域ネットワーク(WAN)により通信回線を接続する必要があります。通信回線を接続するには、通信事業者が提供する多様なサービスの中から選択して利用することになります。
通信サービスは様々な種類がありますが、仮想化技術を用いたサービスについて紹介したいと思います。
これまでの企業ネットワークのWAN構築においては、接続拠点間で一定の伝送帯域を割り当てる「専用線サービス」が多く利用されていました。しかし、ネットワークの変更に時間を要する点や、距離が長くなればなるほどコストが高くなるという難点がありました。
そのため、従来の専用線サービスに代わり、仮想化技術を使ったVPN(Virtual Private Network)型のサービスが多く利用されるようになってきました。
VPN型の通信サービスでは、複数のユーザーが使用しているネットワークを利用して、ユーザーごとの拠点間を専用線で接続しているかのように仮想化して通信を行うことができます。VPN型の通信サービスは、共用ネットワークに対するアクセス回線の利用を通信事業者に申し込むことで利用でき、ユーザーごとに拠点間を仮想的な専用線で接続して通信を行うことができます。
3-4 OpenFlowを使った仮想ネットワーク
ネットワークの仮想化を実現する技術として「OpenFlow」という技術があります。OpenFlowはネットワーク上の機器をソフトウェアで一括管理する「SDN(Software-Defined Network)」という考え方に基づいています。企業などのネットワークは複数のベンダーの機器によって構成されていることが多く、一つのベンダーの機器だけを使うケースは多くありません。
しかし、ベンダーが異なれば機器の設定の仕方が違うため、ネットワークの運用担当者はベンダーごとの機器に対する専門的な知識が必要になってしまいます。その課題を解決する方法としてOpenFlowという技術が期待されています。
多くのネットワーク機器は、データを転送する機能と、宛先のネットワークへの経路を計算する機能が1台に搭載されています。しかし、OpenFlowはこれらの2つの機能を分離させ、スイッチにはデータを転送する機能(データプレーン)だけを残し、経路を計算する機能(コントロールプレーン)はOpenFlowコントローラーとして別のサーバーに集約し、スイッチを一括管理する形態にすることが可能になります。そうすることで、巨大のネットワークの運用管理のコストが大幅に削減されることが期待できます。
OpenFlowの導入する方式として2つのモデルを紹介します。
1. ホップバイホップ方式
ネットワークに接続されたサーバーなどの機器の間に設置するスイッチが、全てOpenFlowに対応した機器である必要があります。この方式では、初期投資や作業負担は大きくなりますが、柔軟にネットワークの経路や帯域を制御することができます。
2. オーバーレイ方式
この方式ではネットワークの端と端の機器がOpenFlowに対応し、中継するネットワークは既存の構成のまま利用することができる。代表的なものとしてVMware社のNSXが挙げられます。オーバーレイ方式では、細かなネットワークの経路制御や帯域制御はできないというデメリットもありますが、初期投資や作業負担が軽減されます。
おわりに
ITにおける仮想化は、物理的な資源に縛られず柔軟な設定ができるようになる画期的なソリューションです。しかし、全てのIT資源に導入しなければならないわけではありません。サーバー、ストレージ、ネットワークの構成によっては、導入することでソフトウェアのコストが高くついてしまう場合がありますので、慎重に検討する必要があります。ここで紹介した例は仮想化技術の一部となっていますが、この記事が仮想化技術の理解に少しでも寄与すればと願っております。
Avintonは仲間を募集しています
Avintonはやる気に溢れるエンジニアを募集しています。
経験問わず、新しいことにチャレンジしたい!キャリアアップを目指したい!という方、ぜひ一度採用イベントに遊びに来てください。代表自らが、熱い思いを語ります!
Twitter : @AvintonJapan
Facebook : Avintons