仮想化環境と対応ハードウェア

先日このブログにて仮想化環境を実現する為のソフトウェアについて概要を書いてみましたが、今回はその続きで仮想化環境に関わるハードウェアについてのお話です。

前回前々回の記事にて少し記述いたしましたが、仮想化環境を構築する為には仮想化環境を構築するソフトウェアまたはOS」「対応しているハードウェア(サーバ機やPC及びそれらの部品)」にインストールする必要があります。ここで「対応しているハードウェア」と書きましたが裏を返せば対応していないハードウェアが存在するという事にもなるのですが、このハードウェアの対応・非対応という言葉には「そのハードウェアに仮想化支援機能が付いているかどうか」という意味と、「仮想化環境構築ソフトウェアがそのハードウェアが使用出来るかどうか」という意味の二つの意味があります。

 

  •  1:ハードウェアの仮想化支援機能の有無

近年ITの世界では何かと仮想化が話題となっておりますが、現在言われている仮想化というのは基本的にはソフトウェアによる実現がその始まりとなっております。仮想化ではソフトウェア上に擬似ハードウェアを作成し、その擬似ハードウェア上でOS等のソフトウェアを複数同時に動作させるといった仕組みになっておりますが、これは悪く言い換えれば元々仮想化せずに単独で動作させる事を目的としているハードウェアをソフトウェア処理で無理矢理共有しているという事でもあります。ソフトウェア上でそのような無理矢理の処理をしているのですからどうしても余計なオーバーヘッドが発生してしまう事になってしまい、同じハードウェア構成でも仮想化してない場合に比べ、仮想化を行った場合の方が性能的には目減りしてしまいます。

しかし、近年ではそのような問題に対応して行く為にハードウェア上に仮想化を想定した機能が組み込まれるようになって来ております。代表的なものしてはコンピュータの命とも言えるCPUに搭載されている仮想化支援機能「VT-x」「VT-d」等が挙げられます。(※VT-x・VT-dはIntel社製CPUの機能です。AMD社の場合はAMD-V等の仮想化支援機能があります)

【 インテル バーチャライゼーション・テクノロジー 】 (ウィキペディア (Wikipedia): フリー百科事典より引用)

  • VT-x
VMXという動作モードの追加

i386以降の32ビットOSでは通常、リング0でカーネル等が動作するが、仮想マシンモニタはそれより高い特権モードで動作させることが望まれる(VT支援がない場合、カーネルをリング1で動作させる方法も取られた)。このため、リング0-3とは独立して、VMX rootVMX non-rootという動作モードを新たに設けた。VMX rootモードで仮想マシンモニタを動作させ、VMX non-rootモードでゲストOSを動作させる。ゲストOSで仮想化に影響のある命令が発行された場合、VMX rootモードに遷移し、仮想マシンモニタは適切な処理を行うことになる。「リングプロテクション」も参照

VMCS(Virtual Machine Control Structure)

仮想マシンモニタは、VMCSと呼ばれるデータ領域を利用し、各仮想マシンを制御する。VMX non-rootモードで動作していたCPUの状態の保存や読み出しをこの構造を利用して行う。ゲストOSを切り替える際のオーバーヘッドを軽減することができる。その他、仮想マシンを起動する命令や、再開する命令、VMXモードへ遷移・離脱する命令などが追加されている。

  • VT-d

I/O処理の仮想化を支援する機能。VT-dなどのハードウェア的な仮想化支援が無い場合、仮想マシンモニタは、I/Oデバイスをエミュレートし、DMAのメモリ領域のリマッピングを行う必要がある。VT-dでは、ハードウェア的にDMA転送時のリマッピングを行うようにする。この場合、通常のデバイスドライバを使用することができ、利便性や性能が向上することになる。 メモリアクセスはチップセット側の機能であるため、次世代のチップセットで対応する予定である。

 仮想化環境構築ソフトウェアではこのようなハードウェアに組み込まれた仮想化支援機能を利用する事により、前述のようなオーバーヘッドを減らし、仮想化環境上でもそのハードウェアの性能を最大限に引き出す事が出来るようになっています。今回は代表的な物としてCPUに搭載された仮想化について記述しましたが、今後はCPU以外の個別ハードウェアモジュールにも仮想化を支援するような機能が組み込まれて行く事も考えられますので、実際に仮想化環境を構築する場合には使用するハードウェアに仮想化支援機能が存在しているかどうかを確認する必要があるという事になります。

なお、Intel社のCPUの場合、個人向けの物であってもCorei5やCorei7等のシリーズであればVT-xやVT-dに対応している物がほとんどです。しかし、Corei7の中にもその目的に応じた色々なシリーズが存在しており、主にホビー等での利用を目的としている(と聞いた事がある気がする)末尾にKが付くシリーズ(Corei7 875K等)や、ビジネスPC向けの安価なラインのCPUではVT-dが非対応となっていたりしますので、CPUを選択する場合には必ずカタログスペック等を確認するようご注意ください。

【 参考リンク 】 旧世代インテル® Core™ i7 プロセッサー

仮想化はまだまだ新しい技術ですので、比較的新しいハードウェアでないと前述のような仮想化支援機能が付いていない場合があります。また、新しいハードウェアを導入したとしてもすぐにまた新たな仮想化支援機能が搭載されたハードウェアが発売されてしまう状況も考えられます。既存のハードウェアを流用しなければならない環境等ではそもそも仮想化環境構築自体が選択肢から外れてしまう事もありえます。仮想化環境を構築する際にはハードウェアの仮想化支援技術の動向にも注目しておかなければなりせん。

 

  •   2:仮想化環境構築ソフトウェアのハードウェア対応状況

実際に仮想化環境の構築を行う場合、何らかの仮想化環境構築ソフトウェアを用いる事になります。仮想化環境構築ソフトウェアは現実の物理ハードウェアをソフトウェア的に分割統合管理する事により仮想化を実現しています。つまり、仮想化環境構築ソフトウェアはその使用する物理ハードウェアについて詳しく知っている必要があるという事になります。簡単に言えばWindowsやLinux等と同じようにドライバが有るとか無いとかそのような理由により対象のハードウェアが使用出来ないといった事態が発生する場合があります。

また、前回の説明に記述しましたが仮想化環境構築ソフトウェアはハイパーバイザ型やホストOS型等、実現方式によっていくつかの種類がある為、これらの違いによってもハードウェアの対応度が変わってきます。例えばVMWareの場合、ハイパーバイザ型のVMWareESXiではOSとしてインストールする形態を採っている為か、対応している機器が少ない傾向にあるようです。逆にホストOS型のVMWareServer等の場合は元のOSのドライバを利用出来る為か、大体の機種で動作させる事が出来るようです。(※仮想化環境構築ソフトウェアとしてVMWareを使用する場合はVMWareのWebサイトの「VMware Compatibility Guide」 にてハードウェアの対応状況を確認する事が出来ます)

 なお、仮想化環境は主にサーバ目的での利用がメインターゲットとなっている為か、 サーバ向けに作られたハードウェアであれば対応している事が多いようです。 しかし、企業等の業務で使ういわゆるサーバ機と個人で使用するPCではその規模やハードウェアのレベルが大きく異なってしまいます。 企業では高い負荷がかかる処理を高い安定性で業務を止めることなく続ける必要がある為、高品質なハードウェア、一言で言えば高価な物を使っています。 このような企業の業務向けの機器は個人で気軽に購入出来るような価格ではありませんので、個人で仮想化環境を構築したいと考えた場合は対応度が低い個人向けの物からの選定となり、なかなか難しい場合もあるようです。

 

というわけで今回は仮想化環境を構築する際はあらかじめハードウェアの対応状況を調べる事が大切というお話をさせていただきました。「よーし、今日からウチも仮想化だ!」と喜び勇んでハードウェアを取り揃えて早速仮想化環境構築ソフトウェアをインストールした所、「非対応なので動きません。むしろ動かす気がありません。」等とエラーが出てしまうと色々と悲しい思いをします。会社の業務等で利用する場合なんかだと「(#゚ω゚)一体どういう事なんだねキミィ!」となってしまったりと笑えない事態も起こりえますので細心の注意を払ってハードウェアの選定を行いましょう。(=゚ω゚) イロイロアリマス


Posted in 仮想化 | Tagged , , , | Leave a comment

昏迷期のWebに影響を与えた伝説のサイトEYE4U

時は西暦2000年前後、丁度その頃世間ではインターネットが一般に普及を広げていた時代、とはいってもまだまだ通信回線はISDNとテレホーダイが生き残っていた時代のお話です。

私はその頃新しく訪れたインターネットの時代に胸を躍らせる若者でした。htmlなんて<html><head><title></title></head><body></body></html>だけあれば良いと思っていた、いや世間一般ではそれが当たり前だった時代です。若者らしくインターネットやパソコンについて色々な事を勉強していた時、とあるインターネットの掲示板で紹介されていたEYE4Uに出会いました。

初めてそのサイトを見た瞬間に背筋に電撃の様な衝撃を受けました。「うぶぅぉぉぁぁぉぉぁっあ!!」(※この時の衝撃をわかりやすく表現させていただきました。(=゚ω゚) )

EYE4U Media

※2000年前後の時代のトップページが保存されていたのでそのリンクです。現在の公式サイトのトップページは新しくなっております。

さあ、いかがでしょうかEYE4U。ご覧の通りFlashで作られているサイトなのですが、とてつもないダイナミックなサイトです。2012年になった現在でも見る度に背筋が凍る程のクォリティだなと感じてしまいます。というか今現在でもEYE4Uを超える程の衝撃を受けるサイトはないかなと思います。当時このサイトを見た私は「これからはFlashの時代になる(=゚ω゚) ドヤッ」と確証めいた思いをよせていたものです。

しかし、このサイト実は現代の若い方達にはその凄さが半分も伝わらないと思います。「いえ、普通に凄いと思いましたが…」と思われるかもしれませんが、このサイトの恐ろしさはその時代にこの分野に関わっていた人にしか分からない時代背景的な事情があります。

☆2000年当時の事情☆

  • 通信回線はISDNが主流、アナログモデムも現役。つまり通信速度32Kbps~64KBps (キロbpsです)
  • 特定時間(テレホーダイ)以外の通信料金は従量課金制が当たり前。容量が大きいサイトは見るとお金がかかる
  • 通信速度が遅いので画像には強烈な圧縮をかけるのが当たり前、圧縮で画像が乱れてもやむなし当たり前
  • 通信回線が遅いので音はMIDIが現役
  • 昏迷期なのでそもそもWeb環境自体が原始的 (まともなJavaScriptのライブラリなんてありません)
  • ブラウザはIEとネットスケープ(現FireFox)が争っていて今以上に仕様がバラバラ
  • CPUはPentiumII-300MHzでも最新クラス
  • グラフィックボードも貧弱でちょっと重い動画を再生するだけでカクカク
  • メモリも数百Mあればとても凄いPC
  • Flash(当時はMacromedia社開発)はまだあまり知名度が無かった ※Macromedia社とその製品は普通に有名
  • Flashのバージョンは当時まだVersion2~3 (公開時は2で後に3で作り直されたと思います確か)

おじさんネット昏迷期の世代の方に分かりやすく説明するなら、動くWebといえばJavaScript位しかなくて右から左に「ウエルカムマイホームページ」とかテキストが流れてボンッとJavaScriptのエラーが出る、そんな時代です。Webと言えばgeocitiesのホームページとかの事で今見たら失踪したくなるような恥ずかしい内容なので多くの方が黒歴史として封印している、そんな時代です。この時代からパソコンに触れていた人が聞いたら386とか486とかSIMMのメモリの話が始まってしまう、そんな時代です。

…と、現在の若い方向けの説明をするつもりが、思わずおじさんネット昏迷期の世代の方にしか分からない内容となってしました。大変申し訳ありません。

さて、前述の時代背景を簡単に言えば「とにかく通信速度が遅くて何も出来ない」と言った所に集約出来るかなと思います。綺麗な画像を作ったり凝った動きをさせたり動画を載せたり…そんな事は出来ません、なぜなら容量が大き過ぎて表示が遅くなるからです。いかに才能豊かなグラフィッカーの方がいたとしても容量の都合で劣化させざるを得ません。

しかしこのEYE4Uのswfファイル、なんと音も含めた全て込み込みで300KBの容量しかないのです。当時からswfのストリーミング読み込みは出来ましたので、これだけダイナミックな動作をしながらも当時のISDN回線(64Kbps)でもほとんど遅延なく動作可能という驚異的な事を実現していたのです。しかも当時はPCのグラフィックボードも貧弱で、普通の動画再生ですら動作が重かったのですが、当時でも全くストレスなくダイナミックな動作が再生されていました。

そんなに凄いの?と疑問に思う方、試しにロゴ画像でも入れつつ適当なWebサイトを作ってみてください。おそらく簡単に300KBを超えてしまうはずです。実はこの小容量化こそがFlash最大の利点であったと思うのですが、何故かFlashのこの特性はあまり前面に出て来ないまま時代は流れ、現代ではそれほどWebサイトの容量にこだわる必要も無い位通信速度が向上しました。

時代は流れ通信速度は上がり、技術は高度になり、当時の物はほとんど全てが旧世代の遺物として葬りさられています。しかし、現在の最高クラスのサイトと比較しても全く見劣りすることなくトップを独走し続け、むしろその恐ろしさを増し続けているEYE4U、永久保存版として当サイトの殿堂リンクに追加させていただきます。


Posted in Web | Tagged , | Leave a comment

仮想化環境を実現するソフトウェア

先日このブログにて仮想化環境の概要を書いてみましたが今回はその続きで実際仮想化を行う為にはどのような環境を用意すれば良いのかといったお話です。仮想化環境を構築する方法を簡単に言ってしまえば「仮想化環境を構築するソフトウェアまたはOS」「対応しているハードウェア(サーバ機やPC及びそれらの部品)」にインストールすれば基本的な状態は作りだす事が出来ます。

ではその「仮想化環境を構築するソフトウェアまたはOS」には一体どのような物があるのかという事になりますので、以下に代表的な仮想化環境構築ソフトウェアを抜粋し一覧にしてみました。(※下記リスト以外にも多数存在します。メーカー個別にみてもVMWare等では用途別にカスタマイズされた亜種的仮想化ソフトウェアが多数存在しています。) 

仮想化環境構築ソフトウェア一覧
メーカー ソフトウェア名 種別
VMWare ESX/ESXi ハイパーバイザ型
Server ホストOS型
Player アプリケーション型(仮)
Microsoft Hyper-V ハイパーバイザ型
Virtual Server ホストOS型
Virtual PC アプリケーション型(仮)
Citrix Systems Xen ハイパーバイザ型
RedHat KVM ハイパーバイザ型
メインフレーム等 省略 省略

 

 さて、こうしてみると現在各社で仮想化の分野で覇権を争っているのがわかります。しかし、実際に仮想化環境を構築する為にまず注目しなければならないのは上記リストにおける所の「種別」の項目です。仮想化環境構築ソフトウェアはその実現方法によって「ハイパーバイザ型」や「ホストOS型」等と分類されております。まずはこれら種別について知らなければなりません。とりあえずここはWikipedia先生にご登場いただき解説していただきましょう。

【 ハイパーバイザ 】 (ウィキペディア (Wikipedia): フリー百科事典より引用)

ハイパーバイザは大別して以下の2種類があり、作成した仮想機械(バーチャルマシン)でそれぞれのOS(ゲストOS)を動かすことができる。

  • ハードウェアの上で直接稼働する(後述のType 1。狭義のハイパーバイザ。専用OSの形のz/VM、VMware ESX、ESXi、Xenなどや、ファームウェアの形のIBM LPARなど。)
  • 他のOSの上で稼働する(後述のType 2。VMware Server など)

また、ゲストOSを修正せずそのまま稼働できる(ハードウェアを完全にエミュレートする)ものを完全仮想化、性能などの理由でゲストOSに修正が必要なものを準仮想化とも呼ぶ。

なお、仮想機械でも単なる物理分割(PPAR)で特にリソース管理を行っていない場合は、ハイパーバイザーは存在しない。

うーんWikipedia先生によると色々な分類方法があるようですがなんだか色々難しいですね。とりあえずこのブログでは説明上ややこしくなるので以下の様に三種類に分類し、呼称する事としておきます。

 

  • ハイパーバイザ型

ハードウェア環境に仮想化専用OSを直接インストールして使用するタイプ。ハードウェアは主にインストールされた仮想化専用OSにより完全仮想化かまたはそれに近い形で制御される。仮想環境上で使用されるLinux・Windows等の一般的なOSは仮想化OSが論理的に作り出した擬似的な物理環境で動作する。前述のWikipedia引用文における所のハイパーバイザType1とほぼ同義。

  • ホストOS型

Linux・Windows等の一般的なOSがインストールされた環境に仮想化ソフトウェアをインストールして使用するタイプ。ハードウェアは主にLinux・Windowsのカーネルやドライバのモジュールに手を加える事により準仮想化にて制御される。前述のWikipedia引用文における所のハイパーバイザType2とほぼ同義。

  • アプリケーション型(仮)

前述のホストOS型の内、特に単独で動作させる事を目的としたタイプ。前述のホストOS型との違いは主に使用形態で、ホストOS型はネットワーク上の複数のクライアントからもアクセスされる事を想定しているものを指し、アプリケーション型(仮)はローカルPC上に構築された仮想環境ファイルを読み込んで起動するスタンドアロン型の物を指す。簡単に言えば普通の一般的なPC上で通常のアプリケーションと同じように手軽に動作させる事が出来る物を指す。

 

さて、とりあえず前述のように仮想化環境を三つの種別に分けて定義させていただきましたがうまく説明出来ているでしょうか。内部的にはホストOS型とアプリケーション型(仮)にあまり違いがないのかもしれませんが、実態に沿った形に分類する為にあえて分離させていただきました。(実際にアプリケーション型(仮)を使用していただければ納得いただけるかと思います)

さて、内部的な動作の話になるのですが、前述の図にある通り「ハイパーバイザ型」では既存のOSを用いず、直接ハードウェアに搭載する形態をとっているのが分かります。OSとして搭載されますのでその導入した機械は仮想化専用機となる事にもなります。ハイパーバイザ型ではこのような形態をとる事によりハードウェアを唯一直接管理する立場となりますので、その分オーバーヘッドが少なく、またより細やかな管理が可能となる為、他の種別に比べてパフォーマンス的に優れていると言われております。

反面、「ホストOS型」や「アプリケーション型(仮)」では既存のOSの上に仮想化環境を構築する事になりますので、その分オーバーヘッドが発生する事になります。といっても状況次第では既存のOSの上に載せる事によるメリットという物が出てくる事もありますので必ずしもハイパーバイザ型が優れているという訳でもありません。

例えば構築した仮想化環境を丸ごとバックアップしたいと考えた場合、仮想化環境の外側からアクセスを行い、仮想化環境とは繋がっていない記憶媒体にバックアップを行う事になると思いますが、ハイパーバイザ型の場合はOSとして搭載されているが為に、その機器と一体化し過ぎてしまい、前述の様な事を実現する為に別途外部機器を用意しなければならない場合もあります。しかし、ホストOS型であれば仮想化環境構築ソフトウェアをインストールしている元のOSの領域は仮想化環境の外側に位置付けられますので、その元OSから仮想化環境を操作し、元OSのみが使用している仮想化環境外のHDDにバックアップを行えば、前述のようなバックアップを行う場合でも一台で全てをまかなう事が出来ます。また元OSの豊富なソフトウェア群を利用する事が出来ますので複雑な事でも比較的容易に出来てしまいます。元OSをLinuxとしてしまえばCronだろうがSambaだろうがiSCSIだろうがFTPだろうが何でもありという事ですね。(=゚ω゚)b ベンリ

 実際に仮想化環境を構築する場合はその目的や環境に応じ、どの仮想化環境構築ソフトウェアを用いて仮想化を実現するのか検討する必要があります。全く仮想化について触れた事がない個人の方の場合は、まずアプリケーション型を自分のPCに導入して仮想化がどのようなものなのかを体験してみるのが良いかもしれません。企業等で利用する場合は、上記で言うところのハイパーバイザ型かホストOS型を選んで導入する事になるのですが、既存ハードウェアやソフトウェア等の流用・連携の他、それらを踏まえた上での費用や費用対効果を考慮した上で検討しなければならないかと思います。

さて、今回の内容の冒頭で「仮想化環境を構築するソフトウェアまたはOS」「対応しているハードウェア(サーバ機やPC及びそれらの部品)」にインストールするとありました。仮想化環境を選定するにあたり、仮想化環境にまつわるハードウェア事情についてもある程度知っておく必要があると思いますが、ちょっと長くなりましたので、今回はここまでとしておき、ハードウェアについてはまた後日書いてみようかなと考えております。


Posted in 仮想化 | Tagged , , , , , , , , , | Leave a comment

仮想化とかについて

最近システムの世界ではあちこちで仮想化仮想化と騒がれています。しかし仮想化と言っても色々と種類がありますし混乱してしまう事もあります。とりあえずWikipedia先生に仮想化とはなんなのかを聞いてみました。

【 仮想化 】 (ウィキペディア (Wikipedia): フリー百科事典より引用)

仮想化(英: Virtualization)とは、コンピュータにおいてリソースの抽象化を指す用語である。「リソースの物理的特性を、そのリソースと相互作用するシステム/アプリケーション/エンドユーザーから隠蔽する技法。単一の物理リソース(サーバ、OS、アプリケーション、補助記憶装置など)を複数の論理リソースに見せかけたり、複数の物理リソース(複数の補助記憶装置群やサーバ群)を単一の論理リソースに見せかけたりできる」という実用的定義がある[1]。また、単一の物理リソースを何らかの特性の異なる単一の論理リソースに見せかけることもできる。そして、仮想回線により、幅が拡がる事になる。

んー なんだかとってもわかりやすいようなわかりにくいような…。Wikipedia先生はこのあとプラットフォーム仮想化について様々な種類を上げて解説をしてくださるのですが、色々詳し過ぎるせいなのか広義の意味と狭義の意味が入り乱れてちょっと分かり辛くなっている気がします。

とりあえず今現在一般的に言われている仮想化はいわゆる「プラットフォーム仮想化の内のハードウェア仮想化」の事を指していると思いますので、現在主流の意味としては以下のように要約出来るのかなとも思います。

仮想化とは物理的なハードウェアを抽象化し、論理的・仮想的な単位で分割統合する技術を指し、主にサーバと言われるネットワーク上の複数のクライアントからの要求に応えてサービスを提供するシステムにて用いられる。

書いている本人的には分かりやすく要約したつもりですがどうでしょうか?もっと分かりやすく言うと「VMWareとかXenとかの仮想化ソフトウェアを使ってやる仮想化の事を仮想化と呼ぶ」といった意味になります。我ながら身も蓋もない要約です。

さて、これだけだと文ばっかりで分かり辛いのでVMware等を用いた仮想化では一体どのような事が出来るのか、抽象的な図を用いて解説してみます。どこにでも書かれているような図ではありますがほんの少し着眼点を変えております。

まず第一段階

サーバ機にはCPU・メモリ・HDD他様々な物理モジュールが複数搭載されております。これらは仮想化をしない場合でも物理資源として一つの資源に束ねて利用する事が出来ますが、基本的には100 + 100 = 200 のようにひとまとまりの資源として扱えるに過ません。

しかし、仮想化環境の場合はこれらをもう一段階抽象化しており、 100  + 100 = 200 とする事は同じですが、この合計された200の資源は「未割当てであり自由に使用できる資源」として分解されて解釈されると考えると分かりやすいかもしれません。HDDで例えると仮想化されていない環境の場合は「パーテーションを切り分けフォーマットを行ったディスク容量が200ある」といった解釈となりますが、仮想化環境の場合は「パーテーションを切り分けていない未使用領域が200ある」といった解釈となります。一見似ているように見えますが、このような抽象化を行う事により、飛躍的に柔軟性に富んだ利用方法が可能になります。

さて、この仮想化により統合された論理資源ですが、このままでは単なる動的確保が可能な領域ですので、従来からも似たような技術は存在しています。仮想化環境の場合はここでもう一つのキモとも言える、「物理PCの抽象論理化」が行えるようになっています。「物理PCの抽象論理化」を簡単に言うと「BIOSやファームウェア等を含む抽象的な論理マザーボードを作成し物理PCを再現する技術」といった事になるのでしょうか。

そして第二段階

仮想化環境上に構築されたまるで実機のようにふるまう論理マザーボードと、前述の未割当て論理資源を組み合わせる事により、物理的な実機と同じ環境を論理的にを作り出す…これがいわゆる仮想化という事になります。(※なお、論理サーバとなっておりますが普通のデスクトップPCとしても使えます。サーバ用途で良く用いられるというだけです。)

仮想化をしない環境の場合、物理的なハードウェアの組み合わせになりますので、都合の良く切ったり張ったりする事は出来ません。しかし、仮想化環境の場合は 論理資源 + 論理資源 = 論理資源 という事となり、全てが論理化、すなわち仮想化されておりますので、ハードウェアに該当する論理資源を好きなように切ったり張ったり分割統合して利用する事が出来るようになります。

では実際に仮想化された環境を見てみましょう。この画像は通常使用しているWindowsVistaのPCより、別途構築されている仮想環境上の論理マシンにネットワーク越しにアクセスしている画面です。

一番左はUbuntuのデスクトップ画面、真ん中の少し隠れた黒い画面はScientificLinuxのコンソール画面、一番右はWindowsXPの画面となっております。通常のデスクトップPCも当たり前のように複数同時に動いています。実際の所3D等のグラフィック関係に弱いところもあり、Direct3D等が使えなかったりと、まだまだ発展途上の部分もありますが、基本的にはほぼ普通のPCやサーバと同じように使用出来ます。

折角ですので起動画面よりももっと前の段階であるBIOSを表示させた画像も載せてみます。

ご覧の通りちゃんと仮想的なBIOSも存在しています。つまり「OSが入っていない状態の物理PC」も仮想空間上で完全に作成・再現されている事が分かります。仮想化がいかに高度で便利で柔軟性に富んだ技術であるかが良く現れていますね。

なお、仮想化ではこのようにほとんど全ての物理機器を論理化して使用していますので 「大元の物理機器がどのような物であってもその仮想化環境の論理機器のように取り扱われる」事にもなります。(※その仮想化環境が対応していればですが) 例えば「Intelのネットワークカード」と「Realtekのネットワークカード」が刺さっていたとしても、 仮想化環境で動作させるOSからは同じ「仮想ネットワークカード」が刺さっている用にしか見えません。 つまり同じ仮想化環境を使用している限りは「どのようなハードウェアを使用していても同じように動く」という事になりますので「物理機器を差し替えても搭載OS的には何も問題無く動作する」事になりますし、 「仮想化データをOS丸ごと別のサーバやPCにコピーしても動く」という事にもなりますので、保守性の向上にもつながる事になります。同じ仮想化環境を利用する前提であれば事前にOSのインストール・利用ソフトウェアのインストール・各種設定等を全て行った状態でそのデータを丸ごと配布するなんて利用方法も考えられます。

ちなみに前述のBIOS画面の後ろにあるのは仮想化環境構築の為のOSであるVMWareESXiの管理画面です。ファイルエクスプローラのように簡単に取り扱えるようになっており大変便利です。一番左にある水色や黄緑のアイコンのリストは、実際に作成した仮想OSを表しています。つまり、あんまり便利なのでお調子に乗った当ブログ管理人にポコポコと作成されてしまった仮想マシン達です。全部常時稼働させている訳ではありませんが、数えてみると合計20もあります。こうして客観的に画像で見てみると我ながら何を考えてここまでしてしまったのかとツッコミを入れてみたくなりますが、きっとそれだけ仮想化が素晴らしく便利な物であるという事なのでしょう。(=゚ω゚)ドヤッ


Posted in 仮想化 | Tagged , , | Leave a comment

ブログ始めましたの巻

新年明けましておめでとうございます。

ついに 年が明けて2012年(平成24年)となりました。昨年は世界中で様々な出来事が巻き起こり、とても大変な年となりました。

  • 相も変わらずの世界的経済不況
  • 東日本大震災
  • 東日本大震災に伴う日本各地の原子力発電所の事故
  • 金正日死去 (※ちなみに北朝鮮は嫌いです)

ちょっと思い返しただけでもこれだけの歴史的事件が発生しています。(多分私が忘れているだけでその他にも様々な事件が起きていたような気がします)なんだかとても息苦しい事が多い一年でしたが、今年は良い年になると良いですね。

というわけで心機一転新たにブログを始めてみる事にしました。私はブログ自体は何度かやった事があるのですが、いつも三日坊主的に放置してしまい、そんなものは無かった事にして来てしまったのですが、今回は真面目にちゃんと続けて行きたいと思います。(=゚ω゚)タブン

内容としては個人的などうでもいい事を書いた日記や、システムやソフトウェアに関わる豆知識的な事とかを思いつくまま書き綴ってみようかなと考えています。基本的にはどうせ誰も見ていないだろうし何書いたっていいのさといったスタンスで気楽に頑張って行きますのでよろしくお願いいたします。


Posted in 雑記 | Leave a comment