Enterprise Watch
バックナンバー

Solaris 10の新機能を探る【後編】

セキュリティ強化や障害の自動修復など運用をアシスト

 数多くの新機能が搭載されるSolaris 10の中で、今回は運用面で有用な新機能を中心に紹介する。


セキュリティ機能の強化

 Solarisには、「Trusted Solaris」と呼ばれるセキュリティを強化した別製品が存在する。主に政府機関、軍事機関、研究機関など非常に高いセキュリティを必要とする場所での利用を想定したものだ。このTrusted Solarisの高いセキュリティの機能の一部がSolaris 10にも実装されている。すべての機能ではなく“機能の一部”というには理由がある。セキュリティは高く設定するほどユーザーの利便性が低下するため、Trusted Solarisの機能をすべて取り込んでしまうと、既存のアプリケーションとの互換性を保てなくなってしまう可能性があるのだ。

 Solaris 10におけるセキュリティ管理の基本は「必要に応じた権限」である。root権限を細かく分割して、必要最低限の権限だけを設定できるようにしたのだ。アクセスコントロールは、ロール(役割)を設定することで実現する。ユーザーがシステムでどのように振る舞うか、どのような権限が必要かを細かく設定できる。一般的なロールはプリデザインとして提供されるが、ユーザーが独自にロールを設定することも可能だ。

 システム管理者にとって、Solaris 10のセキュリティ強化は特に重要な機能拡張だ。しかし、どのユーザーが、どの権限を必要なのかを設定するには高度な知識を要する。セキュリティ設定用のGUIツールなどは用意されず、アップデートでの提供も予定されていないようなので、プリデザインとして提供される設定ファイル以外にも、ドキュメント類の整備、特に日本語化された資料の存在が重要になるだろう。

 また、Solaris 10では、プロセスにもアクセス権を設定することができる。たとえば、特定のポートにアクセスする必要がプロセスに対し、特権(root)モードを与えず、そのポートにアクセスする権限のみを与えるのだ。この機能はSolaris 10内部でも有効に利用されている。これまでセキュリティというと、運用段階で設定するものというイメージがあったが、プロセスの権限も細かく設定できるようになったことから、アプリケーションの開発段階でもセキュリティの設定を埋め込むことができるようになる。

 しかし、実際にプロセスに権限を設定する場合、そのプロセスがどのような権限を必要とするかを把握している必要がある。既存のアプリケーションの多くは、Solaris 10のようなセキュリティを考慮して開発しているわけではないので、いきなりセキュリティを高いレベルに設定すると、アプリケーションが動かない可能性もある。そのため、すでに稼動しているシステムに対して、Solaris 10で実現可能な高いレベルのセキュリティ設定を実現するには、アプリケーションに関する知識とSolaris 10に関する知識の両方を持つ管理者が設定しなければならない。


Solarisコンテナによる仮想OS環境

Solarisコンテナのイメージ
 Solarisコンテナは、これまで「N1 Grid コンテナ」や「Zone」といった名前で呼ばれていた機能で、サーバー上で仮想的に独立したコンテナ(論理区画)を起動し、OSのレベルでシステムをパーティショニングすることができる。コンテナは本来のSolarisであるグローバルゾーンの上で起動し、アプリケーションレベルではそれぞれ独立したSolarisに見える。

 それぞれのコンテナは完全に独立しているため、特定のコンテナに問題が発生してもほかのコンテナに影響することはない。コンテナから別のコンテナへのアクセスは許可されていないため、各コンテナごとにセキュアな環境が保持される。各コンテナへのリソース管理は、グローバルゾーンのリソースマネージャによって集中的に行われる。そのためグローバルゾーンのrootは、すべてのコンテナの権限をもっている。管理できるリソースは、CPU、メモリ、ディスク容量、ネットワークの帯域など多岐にわたる。コンテナ間のアクセスを禁止して、コンテナ同士のアイソレーションを実現しているのは、Solaris 10の新機能である「プロセス権限管理」である。

 ソフトウェア・パーティショニングは、たとえば深夜帯など特定のシステムが利用していないハードウェアリソースをほかのシステムが利用するなど、ハードウェア・パーティショニングでは実現することが難しい効果的なハードウェアリソースの配分を実現することができる。もちろん、ハードウェア・パーティショニングと組み合わせて使用することも可能だ。

 これまでソフトウェア・パーティショニング機能の多くはOSのオーバーヘッドが大きく、パフォーマンスの問題が発生することが多かった。しかし、Solarisコンテナは、全体でひとつのインスタンスとして起動して、OSのオーバーヘッドを最小限に抑えることに成功している。IBMなど他のベンダーのソフトウェア・パーティショニング機能は、パーティションごとにインスタンスを個別に起動するため、OSのオーバーヘッドがどうしても大きくなってしまう。動作するコンテナ(パーティション)の数が多くなるほど、両者のテクノロジの違いが明らかになっていくだろう。

 Solarisコンテナは、論理区画であるという性質上ローデバイスへ直接アクセスするようなアプリケーションの実行は望ましくない。複数のコンテナから直接アクセスされた場合に、排他的な処理がうまくいかず問題が発生する可能性がある。サンではSolarisコンテナで実行するアプリケーションのガイドラインを提供する予定である。公開の予定は未定だが、なるべく早い段階で公開されることを期待したい。


予測的セルフヒーリング

 24時間365日稼動のクリティカルな環境では、常にシステムを監視して障害をすばやく検知して修正するという運用が重要である。Solaris 10の予測的セルフヒーリング機能は、ハードウェア/ソフトウェアの障害を検知すると自動的に原因を特定し、分離・修復を実行する機能だ。この機能は「Solaris Fault Manager」と「Solaris Service Manager」というコンポーネントによって構成される。主な機能は次の通りである。

  • 予測的診断と障害コンポーネントの隔離
  • ハードウェアとソフトウェアのコンポーネントの診断と再起動
  • 問題解決のためのナレッジベース


 予測的セルフヒーリング機能は、常に(あるいは定期的に)システムを監視し、何らかの問題を検知すると、その問題がシステム障害に発展する前にCPU、メモリ、デバイスなどをSolaris Fault Managerが自動的に切り離す。問題が発生したコンポーネントを隔離することで、致命的な障害を回避してサービスを継続させるためである。また、Solaris Service Managerからは、サービスが故意に停止されたり、ローデバイスの障害の影響を受けた場合に、停止してしまったサービスを再起動することができる。

 これらによってシステムの管理・運用の多くが自動化できるようになる。これまで3交代制で(場合によっては2交代で)24時間365日オンサイトに待機していたとすれば、夜間は自動化して致命的な場合にのみリアルタイムでアラートを通知するといった運用も可能になる。

 また、なんらかの致命的な障害が発生した場合、これまでは知識や経験の豊富な技術者が原因を究明するというパターンが多かった。しかし、予測的セルフヒーリング機能を利用すれば、スキルがやや低い技術者でもナレッジを参照しながら、ある程度のレベルまでの問題解決ができるようになる。ナレッジによってより高レベルの技術担当者へのエスカレーションが少なくなると、結果的にTCOの削減につながる。


システム障害や性能低下の原因究明をアシストするDtrace

 ダイナミックトレース(Dtrace)は、パフォーマンスチューニングのためのシステム診断ツールである。パフォーマンスの低下した(あるいは性能を向上させたい)アプリケーションのボトルネックを検知するため、Solaris 10のカーネル内に約4万個所のトレースポイントのデータを動的に取得することができる。各トレースポイントはON/OFFの切り替えが可能で、システムの監視・運用やシステムチューニングに非常に強力なツールとなる。

 Dtraceは、Dスクリプトと呼ばれる独自のスクリプト言語によってトレースポイントを設定し、システムのデータを収集する。収集した監視データは、同様にDスクリプトで管理・表示を実行される。問題の切り分けなどに便利なので、これまでのようにデバッグ用のOSを実行するといった手間をかけずにすむ。

 そしてDtraceは、非常にシンプルなツールなので応用範囲がとても広く、例えばデバッグへの利用など開発者にとって便利なツールなのは間違いない。しかし、システム管理者にとっても、Dtraceはメリットがあるように思える。システムを管理していると頻繁ではないが定期的に挙動がおかしくなるプロセスや、何をしているかわからないが依存関係もわからないのでむやみに停止できないプロセスなどに遭遇することがある。このようなプロセスの挙動を把握する際にもDtraceが役に立つだろう。


 Solaris 10に搭載される新機能は非常に多い。2回にわたって新機能を解説してきたが、サンがSolaris 10の開発でもっとも重要視したのは「互換性」といえるだろう。既存のSolarisを利用しているユーザーが安心してSolaris 10に移行でき、しかもパフォーマンスが向上し、高いセキュリティ機能が利用できるというのはとても大きなメリットである。

 また、互換性という点でいえば、Linuxアプリケーション環境によってLinuxのユーザーもスムーズにSolaris 10へ移行できる。OSとしての機能に確固たる自信を持っているサンらしいやり方といえるだろう。

 もちろん予測的セルフヒーリングやDtraceなどの開発や運用のフェーズで役に立つ機能の追加もある。もしこの記事でSolarisに興味を持っていただければ、是非1月30日以降にダウンロードして利用することをお勧めする。実際に利用してOSとしてのレベルの高さを実感してほしい。なんといっても無料なのだから。



URL
  サン・マイクロシステムズ株式会社
  http://jp.sun.com/
  Solaris 10 製品情報
  http://jp.sun.com/solaris/10/

関連記事
  ・ Solaris 10の新機能を探る【前編】(2005/01/06)
  ・ Solaris 10が正式発表、Red HatなどLinuxを強く意識(2004/11/30)


( 北原 静香 )
2005/01/07 10:09

Enterprise Watch ホームページ
Copyright (c) 2005 Impress Corporation, an Impress Group company. All rights reserved.