久々に新卒で勤めていた某外資系製造業の同僚と再会してひとしきりテクノロジー談義をした。
何だか本当に久々に濃いテクノロジーネタを聞けた気がする。それにしても、Cutting Edgeな領域では凄く色々なことが起きているのだなあと実感。特に、S/Wの中でもH/Wに寄った領域や、N/Wの領域で結構面白い事が起きている気がした。例えばインメモリデータベースやNoSQL、HDDのファームウェアとRDBMSのディスクI/Oのチューニングとか、InfiniBandとか。
世の中猫も杓子もクラウドだクラウドだと言い、S/WでもアプリやM/W、仮想化レイヤ等の上層側に注目が行っているが(それはそれで面白いが)、実はよりH/Wに近い下層側の革新も不可欠なのだと思った。
あと、今後のクラウド化、特にPublic SaaSやグローバル企業のPrivateクラウドでは、実は全然ロケーションシームレスじゃないインターネットの実態(海を越えると国内だけの通信と比べて圧倒的にレイテンシが悪化する)を打破するための分散キャッシュとか、そういうのも面白いし本質的かも。
話は変わるが、太平洋越えたらレイテンシが数十ミリ秒から数百ミリ秒になってしまう事を、感覚的に分かっている人はあまり多くないのかな。最近した仕事でそう思う機会があった。特にネットワークエンジニアじゃないSEの人ではそうなのかも。
そんなコトを思った時に、10年前に新卒時代にやっていた仕事で学んだ内容の息の長さに驚く。そして、あの時に一緒だったチームの人々がいかにSpecialだったかに今さらながら気付く。アプリだけじゃなくM/WもOSもH/WもN/Wも全てが分かる一握りの人々の集団なんて、今考えたら結構レアだなあと。みんなコード書けたし。そして、誰一人として当時の会社に残っていないのは皮肉でもあるのだが。。。
1日が48時間あったら、12時間は寝て、16時間で今のコンサルタント業をやって、残りの16時間ではエンジニアをやっても良いなと思う。まぁ、1日は24時間なのでせんない妄想なのだけれどね(笑)
2011年12月7日水曜日
2008年8月10日日曜日
仮想化
ハイパーバイザの価値とは
サーバ仮想化の市場では、先行するVMWareとそれを追従するXenSource、またサーバOSにハイパーバイザを統合したMicrosoftが主立ったプレーヤだ。しかし、それぞれは出自が違うこともあり、仮想化に対する考え方も随分と違う。
元々、VMWareはハイパーバイザ型の仮想化をやっていたわけではなく、後になって製品を追加して対応した。しかし、Xenはそもそもがハイパーバイザの研究から生まれたプロジェクトであり、XenSourceを買収したCitrixがその技術を積極的に MSに供与して作られたのがHyper−Vだ。
ただ、この記事から何となく読み取れるのは、もはやハイパーバイザ機能はサーバ機のハードウェアの一部として、ある種のBIOSの様な形で搭載され、顧客にとってはシームレスな存在として出荷される、という流れが出来つつある事だ。
今後の普及に期待感はあるが、純粋な仮想化技術自体に関して言うと、もはやエキサイティングな状況を過ぎた様に思えるのが少し寂しい。
サーバ仮想化の市場では、先行す
元々、VMWareはハイパーバ
ただ、この記事から何となく読み
今後の普及に期待感はあるが、純
2008年1月8日火曜日
仮想化プロジェクトフェーズ1失敗に終わる
どうも、素のXenはイマイチかも知れないと思えてきた。
Windows XP Professionalを完全仮想化でゲストOSに仕立て上げたのだが、何かの拍子で起動時にセーフモードに入る様になってしまい、仮想マシンコンソールが繋がらなくなってしまった。
これではWindows相手に手も足も出ないので断念することに。Xenはもはやスッパリと諦めて、Fedora Core 8にインストールしたXen関連のパッケージを全てyumで抹殺。おもむろにLinux版VMware Serverを入れることに。
vmware-config.plを実行するとカーネルのコンパイルに入るのだが、ここで失敗してしまう。ネットを検索するとany-anyなるものがあるらしいのでそれを使う。
しかし、今気付いたのだが、私の入れたVMware Server 1.0.3は古いらしく、any-anyの要らない1.0.4がもう出ている様だ。ガーン。VMwareのサイトで全く見落としてた。。。目が節穴だ。。。しくしく。
とりあえずVMwareはインストール後は良い感じ。早速Windows XP ProfessionalとUbuntuの環境を作成することに。
Windows XP Professionalを完全仮想化でゲストOSに仕立て上げたのだが、何かの拍子で起動時にセーフモードに入る様になってしまい、仮想マシンコンソールが繋がらなくなってしまった。
これではWindows相手に手も足も出ないので断念することに。Xenはもはやスッパリと諦めて、Fedora Core 8にインストールしたXen関連のパッケージを全てyumで抹殺。おもむろにLinux版VMware Serverを入れることに。
vmware-config.plを実行するとカーネルのコンパイルに入るのだが、ここで失敗してしまう。ネットを検索するとany-anyなるものがあるらしいのでそれを使う。
しかし、今気付いたのだが、私の入れたVMware Server 1.0.3は古いらしく、any-anyの要らない1.0.4がもう出ている様だ。ガーン。VMwareのサイトで全く見落としてた。。。目が節穴だ。。。しくしく。
とりあえずVMwareはインストール後は良い感じ。早速Windows XP ProfessionalとUbuntuの環境を作成することに。
2008年1月7日月曜日
新年早々仮想化
新年早々、仕事に関連してやりたかったが、今まで時間が無くて出来なかったことをやってみる。それは、Xenによる仮想化。
まず、ディスク管理ツール代わりのKNOPPIX (CD-ROM起動可能なLinuxディストリビューション)を起動し、仕事で使っているDELL Latitude D520というラップトップPCにプリインストールされた、diagツール専用の隠しパーティション及びWindows XP Professionalのパーティションを、おもむろに完全抹殺。Fedora Coreインストール用に、色々と考えてパーティション作成を実施。(以下の様な感じ)
Fedora Core 8の導入は、普通に日本語版のインストールDVD ISOイメージをダウンロードし、インストールするだけで完了。GUIベースのインストーラで、まるでWindowsの様に簡単にインストールが完了。グラフィックスも問題無くチップを認識し、XGAでGNOMEが起動。
これだけではXenは有効化され無いので、Xen関連パッケージを以下のコマンドでインストール。
% yum install xen kernel-xen
これだけで、Xenに必要なパッケージがサクサク依存関係解決がてらインストールされる。
まったく便利になったものだ。
ここでブートローダGRUBの設定(/etc/grub.conf)を変更し、Xenのカーネルから起動する様にする。Xenのカーネルの起動に必要な設定は既にgrub.confに書かれているので、デフォルトで起動するカーネルの指定を、非XenのカーネルからXenのカーネルに変えるだけで良い。
そしてシステムを再起動。
起動時には、まずはXenの起動画面が表示され、すぐにDomain-0であるFedora Core 8の起動画面に切り替わる。無事にGNOMEが起動され、Xenのカーネルによる起動が完了。
次に、これだけではXenの利用が面倒なので、仮想マシン管理ツールをインストール。
% yum install virt-manager
これでインストール完了。
GNOMEの[アプリケーション]メニューから[システムツール]→[仮想マシンマネージャ]と選択すると、仮想マシンマネージャが起動される。ここで一覧の[localhost]を選択し、右クリックして[起動]を選択すると、無事にDomain-0に接続される。
Fedora Core 8のインストールにだいぶ時間は掛かったものの、特につまづく点も無くXenが導入できてしまった。素晴らしい。そして今このブログはFedora Core上のFirefoxから書いている。日本語入力もまったく問題無し。感動的だ。
次はWindowsの仮想マシン構築について書こうと思う。
まず、ディスク管理ツール代わりのKNOPPIX (CD-ROM起動可能なLinuxディストリビューション)を起動し、仕事で使っているDELL Latitude D520というラップトップPCにプリインストールされた、diagツール専用の隠しパーティション及びWindows XP Professionalのパーティションを、おもむろに完全抹殺。Fedora Coreインストール用に、色々と考えてパーティション作成を実施。(以下の様な感じ)
- /boot 100MB
- / 1GB
- /var 5GB
- /tmp 5GB
- /usr 5GB
- /usr/local 5GB
- /opt 10GB
- /home 43GB
Fedora Core 8の導入は、普通に日本語版のインストールDVD ISOイメージをダウンロードし、インストールするだけで完了。GUIベースのインストーラで、まるでWindowsの様に簡単にインストールが完了。グラフィックスも問題無くチップを認識し、XGAでGNOMEが起動。
これだけではXenは有効化され無いので、Xen関連パッケージを以下のコマンドでインストール。
% yum install xen kernel-xen
これだけで、Xenに必要なパッケージがサクサク依存関係解決がてらインストールされる。
まったく便利になったものだ。
ここでブートローダGRUBの設定(/etc/grub.conf)を変更し、Xenのカーネルから起動する様にする。Xenのカーネルの起動に必要な設定は既にgrub.confに書かれているので、デフォルトで起動するカーネルの指定を、非XenのカーネルからXenのカーネルに変えるだけで良い。
そしてシステムを再起動。
起動時には、まずはXenの起動画面が表示され、すぐにDomain-0であるFedora Core 8の起動画面に切り替わる。無事にGNOMEが起動され、Xenのカーネルによる起動が完了。
次に、これだけではXenの利用が面倒なので、仮想マシン管理ツールをインストール。
% yum install virt-manager
これでインストール完了。
GNOMEの[アプリケーション]メニューから[システムツール]→[仮想マシンマネージャ]と選択すると、仮想マシンマネージャが起動される。ここで一覧の[localhost]を選択し、右クリックして[起動]を選択すると、無事にDomain-0に接続される。
Fedora Core 8のインストールにだいぶ時間は掛かったものの、特につまづく点も無くXenが導入できてしまった。素晴らしい。そして今このブログはFedora Core上のFirefoxから書いている。日本語入力もまったく問題無し。感動的だ。
次はWindowsの仮想マシン構築について書こうと思う。
2007年11月17日土曜日
VMKNOPPIX
仮想化対応の1CD Linux「VMKNOPPIX」がバージョンアップ
KNOPPIXはCD-ROMから起動可能なLinuxディストリビューションとして有名だが、これに仮想化対応版があるとは知らなかった。KNOPPIXはPCのディスクイメージを丸ごとコピーしたり、Windowsの起動ドライブのパーティション設定を変更したりするのに便利だが、仮想化対応をしてるとなるとまた他の遊び方が考えられそうだ。
KNOPPIXはCD-ROMから起動可能なLinuxディストリビューションとして有名だが、これに仮想化対応版があるとは知らなかった。KNOPPIXはPCのディスクイメージを丸ごとコピーしたり、Windowsの起動ドライブのパーティション設定を変更したりするのに便利だが、仮想化対応をしてるとなるとまた他の遊び方が考えられそうだ。
2007年2月7日水曜日
仮想化の季節
Linuxカーネル2.6.20リリース--仮想化技術「KVM」を統合
LinuxをホストOSとして仮想マシンをバシバシ立ち上げる為のお膳立てが整いましたね。それにしても、こういった機能を精力的に組み込めるのがLinuxの良い所だと思いますね。
LinuxをホストOSとして仮想マシンをバシバシ立ち上げる為のお膳立てが整いましたね。それにしても、こういった機能を精力的に組み込めるのがLinuxの良い所だと思いますね。
2006年12月29日金曜日
来年のコンピューティングの潮流は?
2007年もマルチコア化と仮想化が大きな潮流に
IntelがNetBurstアーキテクチャを用いた(主にクロックの向上による)プロセッサの高速化を断念してマルチコアプロセッサへ舵を切ったこともあり、IntelやAMDというPC向けプロセッサだけでなく、SunのUltra SPARC T1 (コードネームNiagara)も加わって、時代はマルチコアプロセッサ一色といった感じ。
PCだけでなく現在はMacもIntelにプロセッサを切り替え、現行のモデルではCore2 Duoというデュアルコアプロセッサを標準搭載している状況なので、既にコンシューマ向けは少なくともデュアルコア、ハイエンドではクアッドコアのプロセッサを搭載している事が当たり前になりそうだ。
ただ、問題はこの記事でも指摘されている通り、同時に多数のタスク(プロセスもしくはスレッド)を処理する事が使命であるサーバに対して、コンシューマ向けのPC(もしくはMac)ではそれ程の同時処理能力が要求されていないのが現状だと思われる。それには、マルチスレッド化されたコンシューマ向けアプリケーションが少ない事が原因であり、さらに進めるとアプリケーションをマルチスレッド化する事が面倒くさいというのが原因なのではないかと思う。
実際にマルチスレッドのアプリケーションを書いてみるとすぐに分かるが、スレッド間での同期やリソース共有というマルチスレッドアプリケーションに特有の難しさがあり、その為余程のメリットが得られるのでなければ敢えてマルチスレッド化しないというのが普通だろう。
従って、今後はますます採用が進むマルチコアプロセッサを活かす為に、マルチスレッドアプリケーションをより容易に開発する為の支援ツール等の登場が望まれるのではないだろうか。さもないと、コンシューマ向けPCに搭載されたマルチコアプロセッサは、単なる宝の持ち腐れになり兼ねない。
ちなみに、Windows XPやVistaがマルチタスクOSだからマルチコアプロセッサの恩恵を得られる、というのは、理屈としては正しいが現実的には間違っている。主に人間とのインタラクションを行う対話型のアプリケーションが多いコンシューマ向けの環境では、厳密にはほとんどのプロセッサ実行時間においてその負荷はかなり低い。実際の所、音楽や動画のエンコーディング以外のタスクでは、あまりプロセッサの負荷は上がらないだろう。
例外としては、ソフトウェアでシミュレーションを行う様な、特殊な人々(ソフトウェア開発者やソフトウェア関連の研究者)にとってはマルチコアプロセッサは役立つかも知れない。
話が脱線してしまったが、要するにマルチスレッドアプリケーションの開発支援ツールが必要だ、ということである。そういう意味では、何だかんだ言ってJavaのマルチスレッドサポートは素晴らしいので、これからはJavaがまた流行るかも知れない。C#は全く知らないので何とも言えないが。
IntelがNetBurstアーキテクチャを用いた(主にクロックの向上による)プロセッサの高速化を断念してマルチコアプロセッサへ舵を切ったこともあり、IntelやAMDというPC向けプロセッサだけでなく、SunのUltra SPARC T1 (コードネームNiagara)も加わって、時代はマルチコアプロセッサ一色といった感じ。
PCだけでなく現在はMacもIntelにプロセッサを切り替え、現行のモデルではCore2 Duoというデュアルコアプロセッサを標準搭載している状況なので、既にコンシューマ向けは少なくともデュアルコア、ハイエンドではクアッドコアのプロセッサを搭載している事が当たり前になりそうだ。
ただ、問題はこの記事でも指摘されている通り、同時に多数のタスク(プロセスもしくはスレッド)を処理する事が使命であるサーバに対して、コンシューマ向けのPC(もしくはMac)ではそれ程の同時処理能力が要求されていないのが現状だと思われる。それには、マルチスレッド化されたコンシューマ向けアプリケーションが少ない事が原因であり、さらに進めるとアプリケーションをマルチスレッド化する事が面倒くさいというのが原因なのではないかと思う。
実際にマルチスレッドのアプリケーションを書いてみるとすぐに分かるが、スレッド間での同期やリソース共有というマルチスレッドアプリケーションに特有の難しさがあり、その為余程のメリットが得られるのでなければ敢えてマルチスレッド化しないというのが普通だろう。
従って、今後はますます採用が進むマルチコアプロセッサを活かす為に、マルチスレッドアプリケーションをより容易に開発する為の支援ツール等の登場が望まれるのではないだろうか。さもないと、コンシューマ向けPCに搭載されたマルチコアプロセッサは、単なる宝の持ち腐れになり兼ねない。
ちなみに、Windows XPやVistaがマルチタスクOSだからマルチコアプロセッサの恩恵を得られる、というのは、理屈としては正しいが現実的には間違っている。主に人間とのインタラクションを行う対話型のアプリケーションが多いコンシューマ向けの環境では、厳密にはほとんどのプロセッサ実行時間においてその負荷はかなり低い。実際の所、音楽や動画のエンコーディング以外のタスクでは、あまりプロセッサの負荷は上がらないだろう。
例外としては、ソフトウェアでシミュレーションを行う様な、特殊な人々(ソフトウェア開発者やソフトウェア関連の研究者)にとってはマルチコアプロセッサは役立つかも知れない。
話が脱線してしまったが、要するにマルチスレッドアプリケーションの開発支援ツールが必要だ、ということである。そういう意味では、何だかんだ言ってJavaのマルチスレッドサポートは素晴らしいので、これからはJavaがまた流行るかも知れない。C#は全く知らないので何とも言えないが。
2006年12月12日火曜日
WebLogicと仮想化
BEA、仮想化技術に対応したJava APサーバ「WebLogic Server Virtual Edition」を発表
ぬあ?と思って読んでしまったニュース。
WebLogicが仮想マシン上で直接稼動??何じゃそりゃ???といった感じ。
VMWareにおけるHypervisorの説明(Hypervisor, part of ESX Server virtualization)を読むと、どうやらHypervisorとは仮想化レイヤを抽象化する(<=書いてて「んあんじゃそりゃ!?」と一瞬思う)物らしい。Hypervisorより下にはOSが無く、直接H/Wらしい。
そうすると、ここからは想像だが、WebLogic Server Virtual Editionのスタック構造は以下の様になると思われる。
まぁ、仮想化云々はとりあえず置いておくと、この構図が真だとすれば、以下の等式が成り立つ様な構造が出来上がることになる。
WLS + JRockit + Liquid VM = Applications + OS + VMWare VM
つまり、WLS Virtual Editionはある仮想化された空間で唯一稼動するプロセスであり、その中でJavaのスレッドが動作することになる。イメージとしては、シングルプロセス内に複数のタスク(要するにスレッド)が稼動するμITRONアプリケーションみたいな感じだろうか。
ん?本当か?
ただ、理論的に上記のやり方を行うメリットは裏付けることが出来ると思う。
まず、WLSをVMWare VM上のOS内で稼動させると、WLSはJava VM上で稼動しかつJava VMは1つのプロセスとして稼動するから、OS内で発生するプロセススケジューリングによるコンテキストスイッチ、それに伴うパフォーマンス劣化が避けられない。
しかし、WLS Virtual Editionでは、WLS及びそこに搭載された全てのアプリが単一プロセスとして動作し、スレッド切り替え時にもコンテキストスイッチは発生しない。従って、WLS上で稼動するアプリのパフォーマンスは、確実に上がると思われる。
なるほど。確かに面白いかも知れない。
# VMWare ESX Serverについて知れたのも収穫
ぬあ?と思って読んでしまったニュース。
WebLogicが仮想マシン上で直接稼動??何じゃそりゃ???といった感じ。
VMWareにおけるHypervisorの説明(Hypervisor, part of ESX Server virtualization)を読むと、どうやらHypervisorとは仮想化レイヤを抽象化する(<=書いてて「んあんじゃそりゃ!?」と一瞬思う)物らしい。Hypervisorより下にはOSが無く、直接H/Wらしい。
そうすると、ここからは想像だが、WebLogic Server Virtual Editionのスタック構造は以下の様になると思われる。
- WebLogic Server (Java based middleware: 以下WLS)
- JRockit (Java VM)
- Liquid VM (a replacement of a normal VMWare's virtual machine)
- VMWare Hypervisor
- H/W
まぁ、仮想化云々はとりあえず置いておくと、この構図が真だとすれば、以下の等式が成り立つ様な構造が出来上がることになる。
WLS + JRockit + Liquid VM = Applications + OS + VMWare VM
つまり、WLS Virtual Editionはある仮想化された空間で唯一稼動するプロセスであり、その中でJavaのスレッドが動作することになる。イメージとしては、シングルプロセス内に複数のタスク(要するにスレッド)が稼動するμITRONアプリケーションみたいな感じだろうか。
ん?本当か?
ただ、理論的に上記のやり方を行うメリットは裏付けることが出来ると思う。
まず、WLSをVMWare VM上のOS内で稼動させると、WLSはJava VM上で稼動しかつJava VMは1つのプロセスとして稼動するから、OS内で発生するプロセススケジューリングによるコンテキストスイッチ、それに伴うパフォーマンス劣化が避けられない。
しかし、WLS Virtual Editionでは、WLS及びそこに搭載された全てのアプリが単一プロセスとして動作し、スレッド切り替え時にもコンテキストスイッチは発生しない。従って、WLS上で稼動するアプリのパフォーマンスは、確実に上がると思われる。
なるほど。確かに面白いかも知れない。
# VMWare ESX Serverについて知れたのも収穫
2006年10月26日木曜日
最近の興味
最近、仕事の関係でこんな所に興味有り。ちゃんと記事読みたいけど時間が無い。。。
・仮想化
- AMD Virtualizationの
http://itpro.nikkeibp.co.jp/article/COLUMN/20061013/250707/
・組み込み
- 連載記事「組み込みギョーカイの
http://www.atmarkit.co.jp/fembedded/index/gyokai.html
あと、どこだったか忘れたけどI
登録:
投稿 (Atom)