TOPサーバ構築・運用> OpenSolarisの特徴的な機能
OpenSolaris
OpenSolarisではじめる本格エンタープライズシステム構築

第1回:イニシャルコストゼロで、ここまでできるOpenSolaris

著者:サン・マイクロシステムズ  大曽根 明   2007/6/4
前のページ  1  2  3  次のページ
OpenSolarisの特徴的な機能

   それではOpenSolarisの代表的な機能をいくつか紹介しましょう。

Solaris ZFSが実現した理想のファイルシステム

   Solaris ZFSはファイルシステムとして、下記の特長を基本に制作されています。

  • データの完全性と安全性
  • 膨大なアドレス容量(128ビット)
  • 管理のしやすさ、使いやすさ
  • 圧倒的なパフォーマンス

表1:Solaris ZFSのコンセプト

   これらは今までの様々なファイルシステムの持っていた欠点を巧みに、かつ新しい発想の設計により克服し、これからの時代に即したファイルシステムとして作られたものです。

  • ファイルシステム全般に渡ってチェックサムを実施。ファイルシステムとしてAPIで受け取ったデータを再びAPIで返すまでのデータ内容を保証

  • すべての操作を書き込み時に複写する技術(copy on write)を使い、トランザクションとして扱うことで、いつ障害(たとえば電源断)が発生してもファイルシステムあるいはファイルがアプリケーションからわからない形で壊れることがない。このためfsckのようなツールは不要になった

  • 主記憶における仮想記憶の考え方をストレージに持ち込むことと、ファイルシステムとボリューム管理の垣根をなくすことで、効率よく使いやすいシステムを実現

  • 128ビットによる膨大なデータを扱えるだけでなく(Zetta Byte/1021でも70ビット)、メタデータを動的に割り当てるファイルシステムと作成可能なファイル数に不要な相関関係がない

  • 書き込み時に複写や動的に入出力の大きさを変えるなど、極めて高いパフォーマンスを実現

表2:Solaris ZFSの特徴

ZFSの書き込み時複写(Copy-On-Write)処理の流れ
図2:ZFSの書き込み時複写(Copy-On-Write)処理の流れ


カーネルの動作を効率よく管理するSolarisゾーン

   現在ではコンピュータやOSを仮想化する技術は多くありますが、その中でもが「Solarisゾーン」には仮想化を実現する上でほとんどパフォーマンス上の負担をかけない技術が盛り込まれています。

   Solarisゾーンのカーネルは仮想化されるOS間で共有されるという方法で実現し、性能や利便性に優れています。そのため異なるOSや別バージョンのOSを同時にゾーンを使って動かすことはできません(Linuxをエミューレートするものは別途あります)。

   しかしデータセンターなどで複数のアプリケーションを実稼働させる場合、異なるリリースやOSを同時に実行することはまれです。管理の都合やセキュリティの面から別のマシンで運用している場合が多く、これらはすべて同じOSを用いるでしょう。

   これらを効率よく管理するのがSolarisゾーンで、資源管理と組み合わせて運用していくのが「Solarisコンテナ」です。ゾーン1つ1つはほとんどの面において独立した1つのSolaris OSが稼働する環境です。(独自のIPアドレスや、単独でリブートなどが可能)。CPU2個分までに設定しておいて、負荷が高くなったら4CPUに変更するなど、ゾーン単位で機器リソースを動的に管理することが可能になっています。

Solarisゾーンの概要
図3:Solarisゾーンの概要


DTraceでアプリケーションの動きを解析する

   これまでSolarisをはじめとするUNIX系のOSでは、その動きを把握するのは(相対的に)簡単であるといわれていましたが、飛躍的に大きくなっているOSやアプリケーションともなると、その動きを細かくとらえることは難しいものになっています。

   Solarisにおいてもカーネルの動きやアプリケーションの動きを補足するといった様々な試みが行われてきました。しかし、どれも現在必要とされる柔軟性や性能、あるいは対象の複雑さに追随することが十分にはできなかったのです。

   OpenSolarisに用意されている「DTrace」は、実行中のカーネルのコードを書き換え、必要な解析用のコードを組み入れる、解析用のコードを任意のプログラムで走らせることで、システムおよびアプリケーションの動きを動的に解析するツールです。

   このようなトレースを行うツールは実行中のシステムに対して行われるため、問題を引き起こすようなものであってはなりません。そのためにコードの書き換えはSolarisのコードを解析したりパターン化しているような、いわゆるその動きが明確になっているものだけを対象としています(関数やシステムコールの出入り口など)。また任意の解析用のコードはインタプリタを使うことで危険な動作をさせないようにしています。

   DTraceは、Perlのようなスクリプト言語(D言語)のインタプリタがカーネル内に組み込まれていると思えばよいかもしれません(Dコードインタプリタ)。たとえば何十万行の複雑なアプリケーションのパフォーマンス上の問題点をわずか30分で検出し、その1時間後にはこれまでの2倍の速度で稼動した例もあります。これはカーネルとアプリケーションの動きが詳細にわかるだけではなく、統計的にその動きを簡単に解析できるためです。

   DTraceは決してそれ自身簡単に使えるものでありませんが、しかし習得してしまうと、きわめて強力なツールとなるといえます(ツールキットの作成などのプロジェクトもあります)。

前のページ  1  2  3  次のページ


サン・マイクロシステムズ株式会社 大曽根 明
著者プロフィール
サン・マイクロシステムズ株式会社  大曽根 明
OpenSolaris エバンジェリスト
サンでソフトウェアの組織の中で国際化、日本語化などを主に担当している部署におりますが、サンに入る以前からUNIXを支持し、UNIXに関わる仕事に従事してきました。現在はOpenSolarisの伝道師としても活動しております。
公式ブログ http://blogs.sun.com/ako/


INDEX
第1回:イニシャルコストゼロで、ここまでできるOpenSolaris
  OpenSolarisの紹介
OpenSolarisの特徴的な機能
  OpenSolarisのパフォーマンス