Smile Engineering blog ( スマイルエンジニアリング・ブログ )

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

Lasyst ラシスト 技術特集【第二回】

2011-08-29 00:42:38 | Lasyst

 本記事では、現在当社で推し進めている全画面FlashのWEB型業務アプリケーションをWEB上で開発し,後の保守・運用もフォローするサーバソフト「Lasyst」ラシストで採用している技術について説明していきます。 まず、Lasystの概要・特徴について、当社のWEBサイトにて掲載しておりますので、ご一読いただければ幸いです。


 前回である第一回は、Lasystで利用している技術、ミドルウェアなどを紹介させていただきました。


 二回目の今回は、内部の構造を少し掘り下げて紹介したいと思います。


 


1.アプリケーションと環境の構造


 以下の図は、Lasystで開発したアプリケーションや環境の位置づけと、アクセス経路を表現しています。



 Lasystをインストールしたサーバを「Lasystサーバ」としています。


 Lasystでは、異なるアプリケーションをいくつも構築することができ、図では仮に「アプリケーション1」「アプリケーション2」と表現しています。


 


 アプリケーションごとにデータベースが生成されるようになっています。


 (SQLでいうところの、create databese 文の発行です)


 


 また、1つのアプリケーション内で、複数の環境を定義できるようになっています。


 Lasystでは、この「環境」が、開発・利用するアプリケーションの最小単位であり、環境ごとにURL(コンテキストルート)が割り当てられ、アクセスできるようになっています。


 


 例えば、1つのアプリケーションを、開発環境・疑似本番環境・本番環境といった3つの環境にわけて運用したい場合があります。


 一般的な業務アプリケーションの開発から本番化までの間、最初に開発環境で作って単体~結合試験を行い、それらが完了したら疑似本番環境に移して総合試験を行い、最後に本番環境に移す、といった流れになることが多いと思います。


 Lasystでは、それをすべてコンソール上で容易に実現できるようにしてます。


 (環境のエクスポート・インポート機能)


 


 また、1環境ごとにデータベースのスキーマが2つ生成されるようになっています。


 この2つとは、ここでは詳しく触れませんが、アプリケーションの構成情報を格納しておく構成用スキーマと、実際に業務アプリケーションを通じて業務データを保存するデータ用スキーマになっています。


 


 データベースとスキーマは図のように分離されるため、DBMSによる管理スコープがアプリケーションごと・環境ごとに明確になると同時に、各インスタンスが独立状態になり、セキュリティが確保される仕組みになっています。


 環境も、いくつでも作成可能です。


 


 


 業務アプリケーションを開発する場合は、WEBブラウザよりコンソール経由で各環境へアクセスし、作業を行います。


 試験を行う場合、そして開発したアプリケーションを実際に利用する場合は、直接そのURLへWEBブラウザでアクセスして作業を行います。


 


 


2.アプリケーション利用時の処理の流れ


 以下の図は、Lasystで開発したアプリケーションにアクセスするフローを表現しています。



 Lasystサーバのアプリケーション1にある環境AをWEB上へ公開し、利用者が環境Aのアプリケーションにアクセスして利用するシナリオです。


 まずは、図の中の単語だけ説明致します。


 


(1) 構成用スキーマ


 構成用スキーマには、Lasystコンソールを使って環境Aを開発する際に定義する、アプリケーションの設定情報が格納されています。


 項目の属性情報(型、桁数など)や、テーブル構成、実行する処理の動作、SQL文、セキュリティ設定など、Lasystフレームワークを操作するためのパラメータのことです。


 ※Lasystの開発は、処理のためのソースを自動生成するのが主ではなく、Lasyst用の部品を組み合わせ、パラメータを与えて開発していきます。


 


(2) データ用スキーマ


 データ用スキーマには、環境Aへ利用者としてアクセスする際に、データを保存するためのスキーマになります。


 環境Aを開発する際に、Lasystコンソールで表(テーブル)として構築しておきます。


 


(3) 制御Java


 サーバー側のLasystフレームワークで、サーバー側で必要なすべての処理をつかさどっています。


 Javaでプログラムされています。


 セッションやセキュリティの管理も行っています。


 サーバー側では、この制御Java以外のプログラムは存在しません。


 


(4) 制御AS


 クライアント側のLasystフレームワークで、クライアント側で必要なすべての共通処理をつかさどっています。


 Lasystのコンソール(開発画面)で作った画面モジュールと一緒に、WEBサーバ上に配備されています。


 Action Script でプログラムされています。


 


 それではフローについて説明します。


 


(5) WEBアプリケーションの公開時


 Lasystで作ったアプリケーションは、WEBに公開しないとアクセスできません。


 WEBへの公開・非公開は、Lasystの管理者などが、コンソール上で行います。


 


 まず公開すると、アプリケーション構成用の全情報がメモリ(Javaアプリケーションサーバーのヒープ領域)へ展開されます。


 これは、後で制御Javaを通じて処理を行わせる際に参照されます。


 同時に、構成用のテーブル構成を参照し、データ用スキーマのテーブルを実体化させます。


 既存の項目の桁数を変更した場合も、きちんと反映されます。


※桁数を減らした場合は、その減った分だけデータが削られてしまうため、注意する必要があります。


 そして、個別の画面モジュールも、外部からアクセスされるディレクトリにコピーされ、公開が完了となります。


 


 ちなみに、非公開にした場合は、画面モジュールが外部からアクセスされるディレクトリから削除され、ヒープ領域の情報もクリアされます。


 


(6) WEBアプリケーションへのアクセス時


 最終利用者がWEBアプリケーションへアクセスするときのフローです。


 まず、最終利用者は、環境ごとに割り当てられた、環境構築時に設定したドキュメントルートのURLへ、ブラウザ経由でアクセスします。


 すると、制御AS経由でサーバ上の制御Javaに対し、実行すべき処理のチェックにいきます。


 どのような処理を実行すればよいか、そしてどのように処理を行うかを、ヒープ領域に展開された情報を参照して判断します。


 それがデータベースへアクセスするような処理であれば、やはり制御Java経由で、データ用スキーマにアクセスし、SQLを発行して、データの追加・変更・削除・検索などを行います。


 制御Javaをもってサーバで実行された結果は、クライアントの制御ASへ返されます。


 画面の遷移(画面モジュールへのURL)が返された場合は、制御ASがそのURLへアクセスします。


 サーバから取得した処理を、画面に反映させ、一連のフローが完了します。


 


3.総括


 Lasyst内部の処理フローは以上になります。


 プログラムレベルではさらに複雑なことになっていますが、そこまで知らなくてもLasystでWEBアプリケーションを作れます。


 


株式会社ジェイエスピーシステム部酒井良介


 




monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

Lasyst ラシスト 技術特集【第一回】

2011-08-17 08:26:16 | Lasyst

 本記事では、現在当社で推し進めている全画面FlashのWEB型業務アプリケーションをWEB上で開発し,後の保守・運用もフォローするサーバソフト「Lasyst」ラシストで採用している技術について説明していきます。 まず、Lasystの概要・特徴について、当社のWEBサイトにて掲載しておりますので、ご一読いただければ幸いです。 第一回では、Lasystで利用している技術を説明致します。


1.Lasystのシステム構成


 当社WEBサイトでもご紹介しているとおり、LasystはWEBサーバ、アプリケーションサーバ、データベースサーバの3層構造で構成されており、業務アプリケーションを開発・運用するための「Lasystコンソール」環境、そして開発した業務アプリケーションを利用する環境、ともに同じ環境で動作します。


<図:Lasystシステム構成図>


 


 図にあるとおり、業務アプリケーションの開発者・運用者はブラウザを利用し、アプリケーションサーバで常駐しているLasystコンソールを経由して、Lasystのフレームワークや専用のデータベースへアクセスしながら、業務アプリケーションを開発・運用します。 業務アプリケーションは、アプリケーションサーバ内で常駐します。 業務アプリケーション用のデータベースも、コンソールから指示して構築します。 一方、エンドユーザが業務アプリケーションを利用する際も同様にブラウザを利用し、アプリケーションサーバ内で常駐している業務アプリケーションへアクセスし、必要に応じてデータベースへアクセスします。 図では、アプリケーションサーバ内に1つの業務アプリケーション、データベースサーバ内に1つの業務アプリケーション用データベースが生成されていますが、実際にはリソースが許す限り、いくつでもアプリケーションを配置することができます。 勿論、WEBサーバ、アプリケーションサーバ、データベースサーバは、ハードウェア自体分散させることもできますし、1つの筐体の中で運用させることも可能です。 利用シーンに応じた構成を検討するとよいでしょう。2.基本的なミドルウェア(サーバサイド)


 前述した3層で利用しているベンダーのミドルウェアを紹介致します。---------------------◆WEBサーバ Apache 2.2◆アプリケーションサーバ Oracle GlassFish 3.1.1 (Java Runtime Environment 1.6 update 26)◆データベースサーバ Postgres 9.0.4--------------------- サーバ側の言語はJavaで統一しております。 各ミドルウェアがバージョンアップされる都度、Lasystでも動作確認を繰り返しており、各々執筆時点での最新版で動作することを確認しております。 昨今、ミドルウェアのバージョンアップを怠ったためにセキュリティホールが放置されている状況が問題視されておりますが、私どもでは原則、常に安定した最新版のミドルウェアを採用して開発することを遵守しております。 さて、Lasystサーバでは上記ミドルウェアの他、いくつかの外部APIも組み込んで利用しておりますので、こちらも紹介させていただきます。---------------------◆AMF通信の実現 BlazeDS 4.0.1.21287◆帳票生成 JasperReports 4.0.2◆CSV操作 OrangeSignal CSV 1.3.1--------------------- AMF(Action Message Format)とは、サーバとFlashベースのクライアントとが通信する際、バイナリ形式でデータをやり取りすることにより、XMLやHTTPなどのテキスト形式の通信よりもパケット量が小さく、データを解析するための不要なボトルネックを軽減する仕組みのことです。 また、開発時において、送受信するデータをFlexやJava上でテキストに変換する必要がなく、数値型や配列型など、文字型以外の型でプログラミングが可能であり、開発の生産性も高いのが特徴です。  Adobeよりオープンソースで無償で提供されています。 サーバ側の技術は、LasystのようなJavaの他、PHP、.NET、Rubyなどを使用することも可能です。 LasystではAMF通信を標準としており、開発した業務アプリケーションはもちろん、コンソールもAMFで通信しています。 さて、LasystではPDFなどの帳票を生成する機能も標準で組み込んでいます。 業務アプリケーションを開発する際、一般的には有料の帳票生成ツールを利用しますが、この商用無償のJasperReportを標準で組み込むことで、帳票生成機能を利用する敷居を下げています。 帳票の生成は、まず帳票のイメージを専用のツールで作成し、そのイメージをサーバ側において、Javaや.NETなどのクラスから呼び出し、データをイメージに当てはめて出力するようするのが一般的な手法です。 このJasperReportも同様で、帳票イメージをiReportという、こちらも無償のツールで作成します。 iReportで作られる帳票イメージはXML形式のテキストファイルであり、それをJasperReportがコンパイルしてデータを当てはめて出力する仕組みです。 Lasystでは、iReportで作った帳票イメージXMLをコンソール経由で登録し、データの適用方法などを定義することで、帳票の出力を実現しています。 また、JasperReportの特徴として、PDF以外にもExcelやWord、HTMLやPowerPointなどといった形式でも帳票を生成することができますが、Lasystでもその機能をフル活用し、全く同様の形式で帳票を生成することができるようになっています。 (ちなみに、様々な形式に対応するため、JasperReport内でも他のJava APIを利用しているようです) 最後にCSV操作ですが、こちらはOrangeSignal CSVという商用無償のAPIを採用しています。 LasystではCSVファイルの取り込みや出力が標準的に可能ですが、その機能を安定的に実現するために利用しています。


3.基本的なミドルウェア(クライアントサイド)


 Lasystのクライアント側で利用する技術は、Adobe の Flash のみです。---------------------◆Flash コンパイラ:FlexSDK 4 Flash Player:Flash 10.2--------------------- Flashの画面はAdobe独自のフォーマット「mxml」(HTMLのような言語)や「ActionScript」(JavaScriptのような言語)を駆使して開発しますが、Lasystではコンソール上からそれらを入力し、開発することができます。 なお、FlashはHTMLやJavaScriptのようなスクリプト言語とは異なり、コンパイルが必要ですが、Lasystで開発する際にはコンパイルやデプロイのための環境を検討する必要はなく、Lasystがサーバで自動的に環境を整え、コンパイルし、適切にデプロイします。 また、Lasystのコンソールや開発した業務アプリケーションにアクセスするには、上記のFlashのプラグインがブラウザに組み込まれている必要があります。 なお、FlexSDKの最新バージョンは、今年2011年6月20日に発表された 4.5.1.21328 ですが、こちらはテキストボックスなどに全角文字を入力してEnterキーを押した際、ActionScript側で入力文字を正しく取得できない問題があり、今のところ最新版のLasystでの採用はまだ見合わせています。※細かい話ですが、昨年よりAdobe社で開発されてきた4.5バージョンについて、2010年10月頃に公開されたNightly Build版「4.5.0.17077」まではその問題は発生しませんでしたが、その次のバージョン以降、ずっと上記の全角文字問題が続いています。 もうしばらくバージョンアップの様子を見て、それでも対応されないようなら、Lasyst独自で対応するしかないと考えています。4.総括


 採用したミドルウェアについては以上です。 すべて商用無償で利用可能であるため、Lasystの導入コストも最小限に抑えることができます。 それにも拘わらず、いずれも非常に高度な機能を安定して提供しており、Lasystではその機能を十分に引き出し、活用しています。 Lasystで利用している技術はこれですべてですので、逆にこれ以外の他の技術は全く利用していません。 意外とシンプルと感じられるのではないでしょうか。 例えば、JavaでしたらStrutsやSeaserなど、様々なフレームワークがありますが、Lasystでは全く利用しておらず、Java1.6の標準機能のみで開発しております。 なぜなら、Lasystサーバ自体がフレームワークである必要があり、他のフレームワーク等を利用することで余計なオーバーヘッドを生まないようにするためです。 開発生産性もさることながら、まずはレスポンスに重きをおいています。 これらのミドルウェアやAPIを利用することは、Lasystに限らず、安価にWEBアプリケーションを開発したい方々にとって、よい選択肢になるかもしれません。 Lasyst開発の中で、今後もよりよいAPIを見つければどんどん取り込み、Lasystを通じて容易に利用できるようにしたいと考えています。株式会社ジェイエスピーシステム部酒井良介


 



monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

無料で使える仮想化技術【第二回】

2011-08-15 21:10:08 | 仮想化技術

第一回では『仮想化技術の概要』について記載しました。第二回では『無料で使えるサーバの仮想化ソフトウェア』をターゲットとして記載します。


今回の記載内容は以下の構成となります。


5. サーバの仮想化について


6. サーバの仮想化ソフトウェアについて


7. 製品比較




 


5. サーバの仮想化について


仮想化の中心を司る技術と言えるのが、サーバ仮想化です。複数の異なったOSを動作させるための受け皿となる仮想ハードウェアと、物理サーバ上にエミュレートすることで実現します。


サーバ仮想化には2つの手法が存在します。1つは「ホストOS型」、もう1つは「ハイパーバイザ型」です。いずれの手法も、仮想ハードウェアのエミュレーションという点は同じです。


 


(1) ホストOS型




ホストOS型では、ホストOS(WindowsやMac OS X、Linuxなど)の上で仮想化ソフトを実行し、そこで仮想マシンを作成して実行する方法です。サーバ仮想化ソフトは仮想化されたハードウェアを作り、そこにOSやアプリケーションを導入できるようにします。1台の物理マシン上に複数の仮想マシンをつくることも可能です。その場合は物理的なCPUを共有して利用します。仮想化のための専用のOSを用意する必要がなく、アプリケーションと同じように手軽に実行できるため、別のマシンを用意せずに他のOSを新たにインストールしたい場合や、実行・検証環境などに用いられています。


ホストOS型のデメリットとしては、仮想マシンとハードウェアの間にフル機能のOSが介在するため、実行時のオーバヘッドが大きく、仮想マシンの動作速度が遅くなってしまう点があります。



 


(2) ハイパーバイザ型




ハイパーバイザ型は、ハードウェアのBIOSから直接仮想化ソフトを起動して、その上で仮想マシンを実行するタイプです。ホストOSの起動の介さずに仮想マシンの実行が行えるため、ホストOS型に比べてオーバヘッドが小さいのが特徴です。このため、パフォーマンスを必要とするサーバの仮想化で主に使用されていて、近年のサーバ仮想化の主流となっています。



 


ハイパーバイザ型には、「完全仮想化」と「準仮想化」の2種類の仮想マシン実現方式が存在します。


完全仮想化は、物理マシンを完全に仮想マシンとして実現する方式で、WindowsなどのOSに手を加えることなくそのまま仮想マシンで実行することが可能です。


準仮想化は、現実のハードウェアのエミュレーションは行わず、仮想ハードウェアにのみアクセスするようにカスタマイズされた準仮想化対応OSをゲストOSとして稼動させることができます。ハードウェアを完全にエミュレーションする処理は大きな負荷が伴うため、仮想環境の実行速度が低下してしまう懸念がありますが、その処理が不要な準仮想化技術では性能をそれほど低下させることなく仮想OSを走らせることができます。ただし、準仮想化では、仮想ハードウェアを規定するため、仮想環境で動作させるOSごとに対応するドライバが必要になります。未対応のOSに関しては完全仮想化を使用することになります。


 


6. サーバの仮想化ソフトウェアについて


(1) VMware Server




VMware ServerはVMware社が無償で提供しているホストOS型の仮想化ソフトウェアです。特徴はWebベースのインターフェースを採用している点です。そのためネットワーク上のどのマシンからでも、VMware Serverにアクセスでき、仮想マシンの作成、管理、実行ができます。クライアント/サーバ型で使用する仮想化ソフトでもあります。但し、VMware ServerをインストールしたホストOSが起動していないと仮想マシンが起動できないデメリットもある反面、ホストOSが備えているドライバが対応した全てのデバイスを使用できるといったメリットがあります。


 


VMware Serverは、以下のURLからダウンロードできます。


http://www.vmware.com/jp/products/server/


(アカウントを持っていない場合はアカウントを作成する必要があります。)



 


(2) VMware vSphere Hypervisor(VMware ESXi)




VMware vSphere HypervisorはVMware社が無償で提供しているハイパーバイザ型の仮想化ソフトウェアです。サーバ機の上に直接インストールし、この上で様々なOSを動作することが可能とします。ゲストOSに仮想化のための修正を必要とせず、通常のOS製品を仮想マシンにそのままインストールして利用することができます。「vmkernel(※1)」をベースにした仮想マシンの実行環境を使用しているため、専用のデバイスドライバが必要となります。


※1:VMware社が開発した仮想化を実現するための独自のカーネルです。


 


VMware vSphere Hypervisorは、以下のURLからダウンロードできます。


http://www.vmware.com/jp/products/datacenter-virtualization/vsphere-hypervisor


(アカウントを持っていない場合はアカウントを作成する必要があります。)



 


(3) Citrix XenServer




Citrix XenServerはXenをベースとしたハイパーバイザ型の仮想化ソフトウェアです。XenSource社によって開発されていたオープンソースソフトウェアXenが、2007年にCitrix Systems(以降Citrix)社に買収され、XenServerと名を改めて提供されています。2009年3月にはXenServerを無償化し、エンタープライズ向けの機能の無償提供を始めました。XenServerは、仮想化のオーバヘッドを軽減するために、準仮想化のアーキテクチャを採用しています。Xenの特徴は準仮想化の仕組みを取り入れていることにあります。またIntel-VTといったプロセッサの仮想化支援機能を利用した完全仮想化の仕組みを対応したことによって、WindowsをはじめとするゲストOSを修正なしにそのまま稼働させることが可能になっています。


XenServerは仮想マシンを制御するだけなので、仮想マシンを経由して命令を受けることになります。この命令を与える仮想マシンはドメイン0と呼ばれる特殊な仮想マシンになります。それ以外の仮想マシンはドメインUと呼ばれます。


 


Citrix XenServerは、以下のURLからダウンロードできます。


http://www.citrix.co.jp/products/xenserver/download.html



 


 


(4) Hyper-V 




Hyper-V はMicrosoft社が提供するサーバ向けの仮想化ソフトウェアです。Hyper-V Server 2008(以下、Hyper-V)は2008年10月より無償ダウンロード提供を開始しています。Windows Serverの64ビット版の機能の1つとして、Windows Server 2008 x64に組み込まれて提供されています。


Hyper-Vでは、「Windows Hypervisor」と呼ばれる新たなレイヤー上でゲストOSやWindows Server 2008自信が動作するハイパーバイザアーキテクチャを採用しています。


Hyper-VはWindows Server 2008をベースに開発されたシステムのため、管理コンソールも従来のWindows Serverの運用担当者のスキルをそのまま活かせることができるため、汎用性のも特徴の1つです。Hyper-Vでは管理用のOSを必要とし、ゲストOSは管理用のOSのデバイスドライバに接続します。


 


Hyper-V Server 2008(最新版はHyper-V Server 2008 R2)は以下のURLからダウンロードできます。


http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=48359dd2-1c3d-4506-ae0a-232d0314ccf6&displaylang=ja-nec



 


 


(5) KVM(Kernel-based Virtual Machine) 




KVMはLinux上で仮想化環境を利用するためのハイパーバイザ型のソフトウェアです。Linux Kernelに仮想マシンモニタ(VMM:Virtual Machine Monitor (※2))を実装し、仮想的なコンピュータの上で複数のOSを並列に動作させられるようにします。CPUのスケジューラ、メモリ管理など、Linux Kernelがもつ機能をそのまま利用することができます。


KVMはQUMRANET社が開発し、オープンソースとして公開したもので、Linux Kernel 2.6.20から標準搭載されています。同社は2008年9月にRed Hat社に買収され、子会社となっています。


KVMでの仮想マシンを動かすには「QEMU」というエミュレータが必要となります。


※2:VMMはゲスト環境ごとに物理リソースをエミュレーションして、ゲスト環境からの要求を調停し、ゲスト環境ごとにメモリ空間を隔離する役割も持っています。OSがユーザ・アプリケーションに対して果たしているのと同じような役割をVMMはゲスト環境に対して提供しています。


 


KVMは、以下のURLからダウンロードできます。


http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers



 


 


(6) OpenVZ  




OpenVZはParallels社が開発した仮想化ソフト「Virtuozzo」のオープンソース版で、OS仮想化技術を使ったサーバ仮想化ソフトウェアです。サーバを複数の仮想プライベート(VPS(※3))に分割することができるのが特徴です。但し、複数のOSを実行できないという欠点もあります。Linuxのホスト上でLinuxを稼動させることしかできません。その代わり、他の仮想化ソフトに比べるとシステムリソースを少なくできるメリットがあります。


※3:Virtual Private Serverの略で、1台のサーバの中で専用のソフトウェアを使ってあたかも複数のサーバが動作しているかのような環境を実現するためのサービスのことです。レンタルサーバを提供しているホスティング会社などで導入が進んでいます。


OpenVZのカーネルは以下のURLからダウンロードできます。


http://openvz.org/download/kernel/



 


7. 製品比較 


6章で紹介しました製品について表にまとめました。



 


※ 7.1.1:対応ゲストOSについて


WindowsやLinux以外にも以下のUNIXと幅広くOSをサポートしています。


・ FreeBSD 4.9以降


・ Solaris オペレーティング システム x86 プラットフォーム版 8以降 など


※ 7.1.2:対応ゲストOSについて


WindowsやLinux以外にも多くのOSをサポートしています。


・ FreeBSD 6


・ Solaris


※ 7.1.3.1:対応ゲストOSについて


対応するゲストOSはWindowsや一部のLinuxのみサポートされています。


※ 7.1.3.2:XenServerではLinuxをゲストOSとする場合、準仮想化カーネルを使用してゲストOSの中でCPU仮想化への対応を行っているが、WindowsゲストOSではCPUの仮想化支援機能を使用します。そのため、WindowsゲストOSを使用する場合は、Intel-VT-x/AMD-Vがサポートされているサーバを用意する必要があります。


※ 7.1.4:対応ゲストOSについて


対応するゲストOSはWindowsや一部のLinuxのみサポートされています。


※ 7.1.5:対応ゲストOSについて


対応するゲストOSはWindows、Linux以外にもUNIXと幅広くサポートされています。対応しているOSが他のソフトウェアに比べると格段に多いのも特徴です。


 


いかがでしたか、今回は『無料で使えるサーバの仮想化ソフトウェア』について記載しました。仮想化技術は今後さらに普及してくる技術だと思います。ブログを見て、仮想化技術について興味をもって頂けたらありがたいです。


 


 


 


【参考文献】


特集 仮想化入門


http://www.plathome.co.jp/solution/virtualserver/introduction/


第1回 仮想化技術のメリットとデメリット


http://thinkit.co.jp/story/2011/02/01/1970?page=0,0


仮想化の真実


http://www.computerworld.jp/topics/602/%E4%BB%AE%E6%83%B3%E5%8C%96


仮想化のメリットとデメリットを見極める


http://enterprisezine.jp/article/detail/1536/


 


 


 


株式会社ジェイエスピー


システム部


吉田 利充



monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

無料で使える仮想化技術【第一回】

2011-08-08 15:05:05 | 仮想化技術

・ はじめに


近年、ITシステムの高度化、複雑化にともない、社内サーバ数が増加しています。このため、サーバの維持や管理コストの割合も増加し続けている現状です。しかし、ハードウェアは年々高性能になり、サーバの処理能力は飛躍的に向上していることから、リソースが効率的に使用できず、余剰リソースとなり、サーバの稼働率はピーク時以外およそ10%程度であると言われています。このような現状からリソースの有効活用やコスト削減、運用負荷の軽減に対する有効な手段として、仮想化技術のニーズがここ数年で高まっています。


とは言っても、仮想化技術とは何を仮想化するの?という疑問が出てくると思います。そこで、『仮想化技術とは何だろう?』という観点から調べました。


第一回は『仮想化技術の概要について』、第二回は『無料で使えるサーバの仮想化ソフトウェアについて』の2回に分けて掲載します。仮想化技術についてこれから学ぼうとしている方や、興味のある方に読んで頂けたら幸いです。


今回の掲載内容は以下の構成となります。



  1.  仮想化技術とは

  2.  歴史

  3.  仮想化の種類について

  4.  仮想化技術に伴うメリット・デメリット


 


 1. 仮想化技術とは


従来のシステムでは、APサーバ、DBサーバ、開発環境、バックアップなどの環境を整えるには膨大なコストと時間が掛かってしまいます。これを解決するために仮想化技術が誕生しました。


仮想化技術とは、コンピュータのCPUやメモリ、ディスク、通信インターフェースなどを物理的構成によらず柔軟に分割する技術です。例えば、通常ハードウェアとOSは1対1の関係ですが、仮想化技術を使うと、1台のコンピュータをあたかも複数のコンピュータであるかのように扱うことができるようになり、それぞれに別のOSやアプリケーションを動作させることが可能になります。


 


複数台のサーバを統合



 


 2. 歴史

仮想化というのは、大規模なメインフレームハードウェアのパーティショニングを行い、ハードウェアの使用率を向上するために、1960年代に開発されたテクノロジーです。最初に仮想化機能を搭載したメインフレームはSystem/360という1964年にIBMが開発したOSに搭載されました。1967年にはIBMの汎用機「Sysyem/360 model 67」で稼働し、仮想機能をもったOS「CP-67/CMS」が商用化されています。近年では、ハードウェアの高性能化・低価格化や、仮想化技術の発達によって、一般のコンピュータやサーバでも簡単・手軽に導入できるようになりました。


 


 3. 仮想化の種類について


仮想化技術といっても、何を仮想化するのかによって様々な種類があります。仮想化技術は主に以下の4つの種類に分類されます。


(1) サーバの仮想化




サーバの仮想化とは、サーバ向けの仮想マシンソフトウェアを利用し、1台のサーバを独立した複数台のサーバとして動作させる技術です。プロセッサやメモリ、ディスクをまとめて仮想的に複数の領域に分割し、それがあたかも1台のコンピュータであるかのように振る舞い、異なるOSやアプリケーションを同時に実行できます。サーバの仮想化によってコンピュータを管理する人員や設置場所、消費電力の削減につながります。


 


(2) デスクトップの仮想化




デスクトップの仮想化とは、OSを含めたデスクトップ環境をサーバ上の仮想マシンで稼働させる技術です。ユーザはさまざまなデバイスを使用して、LANやインターネットなどのネットワーク経由で安全に仮想クライアントOSを利用できます。ユーザが入力するキーボードやマウスの情報に応じて、サーバ上で実行されている仮想クライアントOSの画面情報が転送され、ローカル環境と同じようなデスクトップの操作ができます。外部メディアの利用規制や不正ソフトウェアのインストール防止などのセキュリティ強化やアプリケーションの集中管理やクライアント端末の一元管理、運用コストの削減といったメリットがあります。


 


(3) ストレージの仮想化




ストレージの仮想化とは、複数のストレージ装置を統合して仮想的なひとつのストレージプールとして扱い、柔軟な容量変更を可能としたり、物理ストレージに障害が発生してもシステムの稼働を継続させたりといった機能を実現する技術です。おもにハードディスクを効率良く利用するという目的で用いられています。具体的にはディスクスペースの共有や、複数のストレージを必要に応じて分配するなどが挙げられます。


 


(4) ネットワークの仮想化




ネットワークの仮想化とは、ルータやハブ・スイッチなどのネットワーク機器を仮想環境上で構築し、機器台数の集約と管理の効率化を目的とした技術です。1台の装置を複数に分散させたり、複数の装置を1台に集約させたりすることによって、ネットワークの信頼性を向上させ、一元的な運用を可能とすると共に、セキュリティの確保も実現します。ネットワークの仮想化では「ネットワーク接続の仮想化」と「ネットワーク機器の仮想化」という2つの機能が中心となります。


 


 4. 仮想化技術にともなうメリット・デメリットについて


仮想化技術のメリット・デメリットを考慮するための物差しは大きく2つに分類されます。


1つは「コスト」、もう1つは「機能」です。具体的な分類の説明については以下のとおりです。


 


「コスト」は2つの分類に分けることができます。


(1-1) イニシャルコスト(初期費用)




コンピュータやシステムを導入・構築する際に必要となる経費のことを指します。購入費用などもこれに当たります。


 


(1-2) ランニングコスト(運用費)




機器やシステムの保守・管理に必要な費用のことを指します。人件費や、機器の電気代、保守サービスの料金などが該当します。


 


   「機能」は3つの分類に分けることができます。


(2-1) スケーラビリティ(拡張性)




システムの利用者や負荷の増大に応じて、柔軟に性能や機能を向上させられることを指します。リソース不足に陥ったときにどの程度拡張できるか、また、拡張の際のコストや手間などを検討します。


 


(2-2) アベイラビリティ(耐障害性・可用性)




システムを正常な状態で継続的に使い続けることができる耐久性のことを指します。システムの障害・停止・破損が発生しにくく、それらの不具合が生じた際に速やかに復旧できるかどうかを検討します。


 


(2-3) パフォーマンス(性能)




システムの処理速度や実行速度を指します。要求される性能を満たすことができるか。また、要求性能を満たす場合にはどれだけのコストをかけなければいけないのかを検討します。


 


これらの観点から、仮想化技術におけるメリット・デメリットを以下にあげます。


 


  4.1 メリット


(1) 運用コスト削減




複数のサービスでシステムリソースを共有できるようになり、利用効率が向上します。またそれによりシステムの複雑性が解消し、運用コストの削減も可能となります。


 


(2) 電力・設置場所などのランニングコスト削減




物理サーバの運用台数を大きく減らすことができ、省電力・設置スペース・管理リソースといった様々な側面での大きなコスト削減を実現できます。


 


(3) リソースの有効活用




従来ではアイドル時間に大量に余りがちだったCPU処理能力やメモリといったサーバーリソースを複数のOSで分配し有効に活用できます。


 


(4) リスク軽減




仮想化によって、機器の障害や過大なピーク需要に対応できるようにリソースを迅速に配分できるようになるため、システム全体で見ると常に安定した稼動状態を維持できます。


 


(5) サービス品質の向上




仮想化技術によって複数のサービスがシステムを共有した場には、ピークに達したサービスに対して優先的にシステムのリソースを割り振るなど柔軟な運用が可能となり、過剰な設備を導入することなくユーザ・サービスを高いレベルで維持することが可能となります。


 


(6) 耐障害性




仮想マシンはそれぞれが完全に隔離されており、いずれかがクラッシュしても他の仮想マシンはそのまま稼働するため、仮想マシン同士のサーバークラスタで可用性向上・耐障害性の向上が可能となります。


 


 4.2 デメリット


(1) 新しい技術を導入することへの技術的な管理負担増




仮想化は複数のハードウェア資源を仮想的に1台のものに見せているため、従来1つの物理的なサーバを1つのアプリケーションで利用していた際とは異なり、仮想化によりシステム統合されると、他のアプリケーションにも影響がでる可能性があります。また、バックアップ運用が行いにくくなってしまう可能性もあります。仮想化で複数のアプリケーションが統合されていたりすると、バックアップのための静止点の確保が難しくなってしまいます。


 


(2) 性能劣化




システムに仮想化という新たな層が加わることで、仮想化の処理が必ず途中に入ることになり、性能が劣化する可能性があります。


 


(3) 標準化(ガバナンス)




仮想化技術の利点を最大限に引き出すには、環境の標準化が必要です。複数のサーバ上で動作していたOS/アプリケーションを、仮想化技術を利用して1つのサーバに単に集約しただけでは、ハードウェアの管理工数が減るだけとなってしまいます。管理効率までを向上させるためには、OS/パッチ・レベル/アプリケーションを標準化しておくことが必要です。これにより要求に応じて迅速なコンピュータリソースの割り当てや、メンテナンス性が向上し、開発効率につながります。


 


どうでしょう、仮想化技術について少しはイメージが湧きましたか?今回は仮想化技術の概要について記載しました。


次回は『サーバの仮想化』をターゲットにして、無料で使えるサーバ仮想化のソフトウェアをご紹介します。


 ・ サーバの仮想化について


 ・ サーバ仮想化ソフトウェアについて


 ・ 製品比較




 


株式会社ジェイエスピー


システム部


吉田 利充



monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

【採用担当者の所見】就活 男子と女子

2011-08-01 11:48:37 | 採用

なでしこJAPANのワールドカップ優勝や宮里藍選手の全米オープン優勝など、最近の日本女子は元気ですね!学生さんもやはり女子の方が元気なのでしょうか!?7月の頭くらいに「2011年の春に卒業した大学生のうち、正社員など正規雇用で就職した割合は、女子が男子を上回った」と記されたニュースを見かけました。この記事には、いろいろとコメントがついていましたが、採用担当者としては、やっぱりそうかという感想でした。というのも、私は採用担当として、たくさんの学生さんと接する機会がありますが、やはり女子の方が積極的だなという印象です。質問タイムに手を挙げるのは女子学生さんの方が圧倒的に多いですし、会社説明会を率先して予約してくるのも女子学生さんだったりします。何気なく話し掛けてみた時も、コミュニケーションが成り立っていると感じることができるのも女子学生さんが多いです。男子学生さんは、我々の業種であるソフトウェア業界に精通している情報系学部の学生さんが多いせいか、総じておとなしいような印象です。ただ、注意しなければならないのは、おとなしいから就活を真面目にやっていないということではないと思うのです。彼らも頑張っていると思います。もう少し、男子の元気なところが見られるとうれしいなと思う今日この頃です。株式会社ジェイエスピーシステム部川崎由加里



monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業