コンピューティングの世界では、オペレーティングシステムごとに多数の物理的コンピュータ、多数の物理的サーバーを購入する必要性を回避する方策として、仮想マシンによる仮想化手法が取り入れられています。
仮想マシンは機械的なパワーを持っているわけではないので本来のマシンではなく、バーチャルリアリティ(VR)とも何の関係もありません。
仮想マシンを利用すると、必要な管理者権限を持つエンドユーザーは、同じ物理マシンに追加のオペレーティングシステム(複数であっても)をインストールできます。マルチブートをして起動時に優先OSを選択するという形式ではなく、既存のOSインストールが追加のゲストOSのホストOSとして動作する方式です。これは、ゲストのオペレーティングシステムがホストのハードウェア・リソースを共有できるようにする仮想化ソリューションをインストールすることによって実現できます。VMware(価格は様々)や Oracle の VirtualBox(オープンソース)などがあります。安定した Windows 環境を求めている Mac ユーザーは、評価されている Parallels を選ぶことができます。オープンソース、商用ともに、他の仮想マシンソフトウェアソリューションもありますが、上記の3つがおそらく最も一般的なオプションです。
仮想マシンが必要になってくる状況や、仮想マシンを使うことで効率性・経済性が改善するケースはたくさんあります。たとえば、Windows を使っていて、Windows OS では使用できない Linux プログラムを実行したい場合があります。ハードドライブに Linux パーティションを作成して Linux をインストールするのではなく(もちろん、Linux をインストールすることがベストではありますが)、仮想マシンソフトウェアを稼働させて、マニュアルで第2のOSをインストールできます。サーバーの仮想化も可能です。仮想化することで、各オペレーティングシステムを実行するために物理的なデスクトップが必要でなくなり、予算を抑えることができます。または、単に各OS専用のコンピュータを確保するために必要なオフィススペースがない場合も、仮想化は役立ちます。
仮想化ソフトウェアは、ソフトウェアが複数のオペレーティングシステムのリビジョンと互換性があるかどうかを確認するのにも使えますが、ある程度の制限があります。この問題については後述しますが、まず仮想マシンの仕組みを見てみましょう。
仮想マシンの作成と実行を可能にするソリューション(ソフトウェア、ハードウェア、またはファームウェア)は、ハイパーバイザと呼ばれます。ハイパーバイザは、VM の円滑な動作を保証するために必要な、CPUリソース、メモリ、帯域幅、ディスクストレージスペースなどのハードウェアリソース割り当ても行います。また、ホストとゲストOS間のファイル共有など、その他要件の設定も必要です。
VirtualBox では、共有やコピー/貼り付け機能や自動ログオンなどは ‘Guest Additions’ をインストールすることで実現します。ハードウェアリソースは共有されているので、複数のVMを同時に実行するのは得策ではないでしょう。
また、接続性も考慮する必要があります。スクリプトをテストするときにインターネットにアクセスする必要があれば、従来の方式でネットワークの脅威から各仮想マシンを保護する必要があります。
仮想マシンの作成と管理
仮想マシンの作成は初心者にとっては少しやっかいかもしれませんが、するべきことはどのハイパーバイザでも同様です。
- 最適な仮想化ソリューションを選択 - 多くの場合、既存のオペレーティングシステムや必要な機能によって決まります。オプションを確認してください。よく知られているので様々な Linux のメリットを調べてみましたが、基本的なワークステーション使用なら、VirtualBox でも十分なようです。筆者の場合、自分のためには Ubuntu、子供には Edubuntu を選択しました。
- 仮想マシンを使いやすくする機能があれば追加 - Virtualbox の場合は、Guest Additions があります。
- 仮想マシンを使うのに十分なハードウェアリソースがあることを確認 - たとえば、4Gb RAMのデスクトップで Windows 7を実行していて、Windows 8用の仮想マシンを追加する場合は、システムにメモリを追加する必要があります。Windows 7だけで4Gbが必要ということは、Windows 8にも最低 4Gb が必要だと想定できます。ホストとゲストのオペレーティングシステムがスムーズに動作するには、マザーボードがサポートする最大量のメモリをインストールするのがベストです。
- ターゲット OS を選択 - 仮想マシンのオペレーティングシステムを、要件を考慮して決定します。
- ライセンスの決定 - 仮想化に関する記事には、あまりライセンスに言及したものは見当たりませんが、ライセンスは重要です。コンプライアンス違反などのリスクは避けたいので、仮想マシンの使用がソフトウェア監査の要件を満たすことを確認してください。必要になるライセンス契約は一筋縄ではいかない場合が多いものですが、仮想化環境の場合はさらに面倒です。ハイパーバイザライセンスに加えてサーバーやアプリケーションのライセンスも関係し、CPUコア数、インストールインスタンスの数、ゲスト数なども考慮しなければなりません。TechTarget の VMware ライセンスの記事を参照してください。
- インストール・メディアの選定 - ショップを通じて行うか、OEMディスクを使うか、ディスクイメージをダウンロードするか、インストールファイルを使うか、といった選択肢があります。仮想マシンを新しくインストールする場合、インストールのプロセスは、(ストレージスペースやその他のハードウェア詳細などの設定後は)通常のインストールと同じです。通常と同じ画面で同じプロンプトに応えながら、完了するまで待たなければなりません。代替策として、事前設定されたレディメイドの仮想マシンをダウンロードして時間を節約することも可能です。
- 機能確認 - 導入するシステムのハードウェア仮想化設定がデフォルトと異なっていれば、インストール時の設定に問題が生じます。サウンド、ネットワーク、オプティカルドライブ、USBデバイスなどのハードウェア検出で問題が発生する場合もあります。VirtualBox を始め、どのソリューションにも、VMの設定に関する問題を議論するための活発なフォーラムとユーザーコミュニティがあります。問題があっても、たいていは簡単なオンライン検索で解決策が見つかります。
- ソフトウェアをインストール、またはスクリプトをテスト - 仮想マシンが正常に動作するのが確認できたら、行いたい作業を開始します。
VirtualBox、VMware ESXi Server などのハイパーバイザでVMを起動すると、作成されたVMのリストが表示されます。ハイパーバイザ・ベースのレプリケーションを使用すると、複数のコピーを作成できます。これは、複数のソフトウェア開発者が異なるプロジェクトで作業している場合に特に便利です。VMをユーザー名つきの名前にすることも可能で、Win8-Jane と Win8-John を作成すれば、Jane と John がお互いの仕事に影響を与えずに別々のVMでスクリプトをテストできます。
削除、名前変更、コピー、移行など、作成したVMをデスクトップ上で簡単に管理できます。VMのバックアップや復元も可能です。
VMをウィンドウまたはフルスクリーンでオープンし、通常のOSと同様に使用します。シャットダウンと起動は、ほとんどの場合かなり高速です。終了したら、ハイパーバイザを使用してVMをオフにします。
仮想マシンの制限
作成されたVMは、「仮想」環境で、ウィンドウでもフルスクリーンでも、使いたいOSで使用できます。Vagrant はポータブルな開発環境を提供していますが、これは、元のOSが無関係であることを意味します。
ただ、仮想化ハードウェアの設定がうまく機能しないシステムもあるので、仮想マシンはスタンダードなOSインストールとまったく同じというわけにはいきません。プログレス・コミュニティに掲載された Microsoft Azure の仮想マシンでサポートされていない機能のリストをチェックしてみてください。
Android アプリ開発者は、エミュレータや開発キットが使えるように用意されていても、様々な Android のバージョンの動作を検証するには実際のスマートフォンやタブレットを使用するようにしているそうですから、VMに限界があることは明らかです。
すべてのスタンダード機能を提供できないケースがあっても、仮想化を進めるのは得策でしょうか?
議論の余地がありますが、ITインフラストラクチャのコスト削減につながるメリットがあります。1台のサーバーでハードウェアが処理できる数の仮想サーバーを稼働させることができるなら、何台ものサーバーを購入する必要はないはずです。
ただ、ハードウェアの支出を抑えられたとしても、ソフトウェアライセンスのコストは別問題です。CPUコアやCPUソケットタイプなどで決まる仮想化のライセンスを取得する費用を抑えるために、より低い仕様のサーバーを選択しなければならないという葛藤に直面するかもしれません。すべてのコアが使用されていなくても、8コアサーバーのマザーボードは高価になります。ライセンス費用とハードウェア購入を天秤にかけなければならないような仕組みは、あまり歓迎されません。ハードウェアの選択を制限したり、ロックイン効果のために選択を妨げたりしないオープンソース版を利用しようとする企業は増えています。
仮想化に限らず、何かのシステムを採用する場合には、事前にあらゆる視点から評価することが大切です。各部門についてコストと可能なメリットを考慮し、総合的に見て仮想マシンの採用が既存プロセスの強化につながるかを判断します。仮想化と物理的なハードウェアをどう組み合わせるのが最適か、会社にとっての理想的なバランスを模索してください。ハードウェアデバイスは、仮想化でホストOSがリソースをVMに割り当て、ほとんどの場合基本機能が適用されるため、ある程度のトレードオフは避けられません。ドルビーサウンドや4Kグラフィックスは期待しない方がいいでしょう(少なくともこのブログを書いている時点においては)。
企業全体に仮想マシンを展開する場合、パーミッション管理が重要になってきます。VMを作成する権限がある人を限定し、定義済みのVMの使用を制限し、許可されていない使用や移行を防ぐことが必要になります。VMの使用と作成をコントロールしないと、ソフトウェア監査で不適切な点を指摘されたり、実際にデータ漏洩(監視されていないVMでデータが共有されたり、VMにインストールされたソフトウェアを通じて)したりする可能性があります。サイバーセキュリティは非常に重要になってきており、VMを使用することでリスクを増大させるようなことがないように十分留意すべきです。
仮想マシンの利用
仮想化の主要ユーザー(共有ホスティング、仮想プライベートサーバー、仮想デスクトップを提供するサービスプロバイダなど)を除くと、一般的なオフィス環境で仮想マシンを利用するのはどういう人たちでしょうか?ソフトウェア開発者、特にアプリケーション開発者は、物理デバイス上で完全なインストールを使用したがることについては言及しました。
大企業、データセンターなどを別にすれば、仮想化は優先事項ではありません。前述のようなライセンス要件とハードウェア設定のトレードオフに悩まされるのを避けて、SaaS (Software as a Service) や IaaS (Infrastructure as a Service) のプロバイダに委託する会社もあります。
それでも、仮想マシンは、将来のOSインストールをどうするべきか試行しながら評価したり、プライマリOS用にリリースされていないプログラムを使ったりする目的で利用されます。パーティションされたドライブを異なるフォーマットで保存し、他の方法では利用できないプログラムを実行することができます。筆者は Windows 3.1 時代からの Windows ユーザーであり、ずっと使い続けてきましたが、ほかの選択肢をチェックしてみて、Linux がますます使いやすくなってきていることを知りました。そこで、Windows 7 上で VirtualBox を使用し、ホームコンピュータで Linux の distro を実行できるようになりました。Windows 10 には、独自の組み込みソリューション、つまり Windows Subsystem for Linux (WSL) があるので、仮想マシンを作成するのにハイパーバイザをインストール必要はありません。ただ、PowerShell を使用して有効にする必要があります。
無料でもなく、オープンソースでもなく、仮想インストールであっても各VMに対してライセンスやアクティベーションが必要となるので、同じマシンに複数の Windows をインストールすることは考えたことがありません。最新のアクティビティを復元するために、外部ドライブに定期的に仮想マシンのバックアップを行ってください。VMを別のシステムに移行する場合は、双方のシステムが同一のハードウェア仕様を持たない限り、設定上の問題が想定されます。
したがって、利用可能なソフトウェアを実行したり、ドキュメントを操作したり、ムービーを見たり、音楽を再生したりするだけの簡単な操作の場合、仮想マシンは正常に動作しますが、パワーユーザー、ゲーマー、開発者などがOSの潜在能力をフルに利用するための機能は仮想マシンには欠如していると考えるべきでしょう。
筆者の意見としては、ビジネスで仮想マシンを使用する必要性はないと考えます。他のソリューションが費用がかかり過ぎるか、時間がかかり過ぎる場合にのみ、選択肢として仮想マシンを使用するのがいいのではないでしょうか。それ以外の場合は、完全なオペレーティングシステムを使用するのが適切です。また、仮想オペレーティングシステムやVMにはライセンスが必要でないというのは幻想です。VMにインストールされた商用ソフトウェアは、別の物理コンピュータにインストールした場合と同様に、ライセンスの対象になります。追加コストを避けるには、無料のオープンソースソリューションを使用し、ハイパーバイザがライセンスをより複雑にすることのないよう気を付けてください。そうしないと、VMやその他の仮想化ソリューションの管理が困難になり、VMマネージャを利用してVMを追跡し、継続的なソフトウェアコンプライアンスを確保する必要が出てくるでしょう。
仮想マシンはビジネス業務に不可欠でしょうか?時間や費用の節約になるでしょうか?データ損失やサイバー攻撃のリスクを増大させる可能性はありませんか?このような様々な視点から、十分検討を重ねてください。
Michael O'Dwyer
An Irishman based in Hong Kong, Michael O’Dwyer is a business & technology journalist, independent consultant and writer who specializes in writing for enterprise, small business and IT audiences. With 20+ years of experience in everything from IT and electronic component-level failure analysis to process improvement and supply chains (and an in-depth knowledge of Klingon,) Michael is a sought-after writer whose quality sources, deep research and quirky sense of humor ensures he’s welcome in high-profile publications such as The Street and Fortune 100 IT portals.