Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)

第 31 章 ブランドゾーンと Linux ブランドゾーンについて

Solaris 10 8/07 リリースから、ブランドゾーンが使用可能になりました。以降の更新リリースで追加された機能は、リリースごとに分類されています。

Solaris オペレーティングシステムのブランドゾーン機能は、Solaris ゾーンの単純な拡張です。この章では、ブランドゾーンの概念と、Linux ブランドゾーン機能を実装する lx ブランドについて説明します。Linux ブランドゾーンは、Linux アプリケーション用 Solaris コンテナとも呼ばれます。


注 –

ラベルが有効になっている Trusted Solaris システムにブランドゾーンを構成してインストールすることはできますが、このシステム構成でブランドゾーンを起動することはできません。



注 –

Solaris オペレーティングシステムでは、追加のブランドがサポートされています。

Solaris 10 8/07 オペレーティングシステムまたはそれ以降の Solaris 10 リリースを実行する SPARC マシンでは、次の 2 つのブランドがサポートされています。

docs.sun.comSun Cluster 3.2 1/09 Software Collection for Solaris OS に記載されているクラスタ ブランドも、Solaris 10 リリースでサポートされています。


Solaris システムでのゾーンの使用について

Solaris システムでのゾーンの使用に関する一般的な情報については、第 16 章Solaris ゾーンの紹介を参照してください。

次に示すゾーンおよび資源管理の概念について、よく理解しておくようにしてください。

用語集には、ゾーンと資源管理機能で使用される用語の定義が記載されています。

システムでブランドゾーンを使用するために必要な追加情報は、マニュアルのこのパートに記載されています。


注 –

このマニュアルで、次の章はブランドゾーンには当てはまりません。


ブランドゾーン技術

ブランドゾーン (BrandZ) フレームワークは、このマニュアルのパート II「ゾーン」で説明されている Solaris ゾーンインフラストラクチャーを拡張して、ブランドの作成機能を追加します。「ブランド」という用語は、さまざまなオペレーティング環境を指す場合があります。BrandZ を使用すると、アプリケーションを実行するための、ネイティブでないオペレーティング環境を含む非大域ブランドゾーンを作成できます。ブランドタイプにより、ゾーンのインストール時および起動時に実行されるスクリプトが決定されます。また、ゾーンのブランドにより、アプリケーションの起動時に正しいアプリケーションタイプが適切に識別されます。すべてのブランド管理は、現在のゾーン構造の拡張を通して実行されます。

ブランドでは、単純な環境を提供することも、複雑な環境を提供することもできます。たとえば、単純な環境では、Solaris の標準ユーティリティーを同等の GNU ユーティリティーで置き換えることができます。複雑な環境では、Linux アプリケーションの実行をサポートする完全な Linux ユーザー空間を提供できます。

すべてのゾーンに、それぞれ関連するブランドが構成されます。デフォルトは native ブランド、つまり Solaris です。ブランドゾーンは、ネイティブでないバイナリのブランドを 1 つだけサポートします。つまり、1 つのブランドゾーンは 1 つのオペレーティング環境を提供します。

BrandZ はゾーンのツールを次のように拡張します。


注 –

構成済み状態にあるゾーンのブランドは変更することができます。ブランドゾーンのインストールが完了したあとは、そのブランドの変更や削除を行うことはできません。


ブランドゾーンで実行中のプロセス

ブランドゾーンでは、ブランドゾーンで実行中のプロセスだけに適用される一連の介入ポイントがカーネル内に用意されます。

ブランドは librtld_db のプラグインライブラリを提供することもできます。デバッガ (mdb(1) のマニュアルページを参照) や DTrace (dtrace(1M) のマニュアルページを参照) といった Solaris のツールは、このプラグインライブラリを使用して、ブランドゾーン内で実行中のプロセスのシンボル情報にアクセスできます。

ブランドゾーンのデバイスのサポート

各ゾーンでサポートされるデバイスについては、そのブランドに関するマニュアルページやほかのマニュアルに記載されています。デバイスのサポートは、ブランドによって定義されます。ブランドでは、サポートされていないデバイスや認識されないデバイスの追加を禁止するように選択することができます。

ブランドゾーンのファイルシステムのサポート

ブランドゾーンに必要なファイルシステムは、ブランドによって定義されます。

ブランドゾーンの特権

ブランドゾーンで使用できる特権は、ブランドによって定義されます。特権の詳細については、「非大域ゾーン内の特権」および lx ブランドゾーンで構成可能な特権」を参照してください。

lx ブランドについて

lx ブランドは、ブランドゾーンフレームワークを使用して、Linux バイナリアプリケーションを変更することなく、Solaris オペレーティングシステムのカーネルを備えたマシンで実行できるようにします。

マシンは、サポートされている次の i686 プロセッサタイプのいずれかを備えている必要があります。

サポートされている Linux ディストリビューション

lx ブランドには、CentOS 3.x または Red Hat Enterprise Linux 3.x ディストリビューションを非大域ゾーン内にインストールするために必要なツールが含まれています。各ディストリビューションのバージョン 3.5 から 3.8 までがサポートされています。このブランドでは、32 ビットまたは 64 ビットモードの Solaris システムが稼働している x86 マシンおよび x64 マシンで、32 ビット Linux アプリケーションを実行できます。

lx ブランドは、Linux 2.4.21 カーネルで提供されるシステムコールインタフェースをエミュレートします。このカーネルは、Red Hat の RHEL 3.x ディストリビューションでの変更に従っています。このカーネルは、Red Hat によってリリースされた glibc バージョン 2.3.2 で消費されるシステムコールインタフェースを提供します。

また、lx ブランドは、Linux の /dev/proc のインタフェースを部分的にエミュレートします。


注意 – 注意 –

lx ブランドゾーンにパッケージを追加する場合は、サポートされている構成を維持する必要があります。詳細は、「サポートされている構成の保守について」を参照してください。


アプリケーションのサポート

Solaris システムでは、lx ブランドゾーン内で実行できる Linux アプリケーションの数は制限されていません。十分なメモリーを使用できることが必要です。「システム要件と容量要件」も参照してください。

配下のカーネルに関わらず、実行できるのは 32 ビット Linux アプリケーションだけです。

lx ゾーンでは、ユーザーレベルの Linux アプリケーションだけがサポートされます。Linux デバイスドライバ、Linux カーネルモジュール、または Linux ファイルシステムを lx ゾーン内から使用することはできません。

lx ブランドで正常に実行された実績のあるいくつかのアプリケーションのリストについては、「http://hub.opensolaris.org/bin/view/Community+Group+brandz/applications」を参照してください。アプリケーションのインストール例については、lx ブランドゾーンにアプリケーションをインストールする方法」を参照してください。

lx ゾーン内部で Solaris アプリケーションを実行することはできません。ただし、lx ゾーンを使用すると、Solaris システムを使用して Linux アプリケーションの開発、テスト、および配備を行うことができます。たとえば、Linux アプリケーションを lx ゾーンに配置し、大域ゾーンから Solaris ツールを実行してそれを解析することができます。その後、改善を加えチューニングしたアプリケーションを、ネイティブな Linux システムに配備することができます。

デバッグツール

DTrace や mdb などの Solaris デバッグツールを、ゾーン内部で実行中の Linux プロセスに適用することができます。ただし、ツール自体は大域ゾーンで実行する必要があります。生成されるコアファイルは、すべて Solaris 形式で作成され、Solaris ツールでのみデバッグすることができます。

DTrace lxsyscall 動的トレースプロバイダにより、Linux アプリケーションに対して DTrace が使用可能になります。このプロバイダの動作は、DTrace syscall プロバイダに似ています。lxsyscall プロバイダは、スレッドが Linux システムコールのエントリポイントに入ったり戻ったりするたびに起動するプローブを提供します。

デバッグオプションの詳細については、『Solaris 動的トレースガイド』および dtrace(1M)mdb(1) のマニュアルページを参照してください。『Solaris 動的トレースガイド』では、DTrace 機能に使用できる公式なインタフェースが説明されています。syscall プロバイダに関するマニュアルは、lxsyscall プロバイダにも使用できます。


注 –

NFS はネームサービスに依存しており、ネームサービスはゾーンに固有であるため、現在のゾーンの外部にマウントされている NFS ファイルシステムにアクセスすることはできません。したがって、NFS に基づく Linux プロセスを大域ゾーンからデバッグすることはできません。


コマンドとその他のインタフェース

次の表に示すコマンドにより、ゾーン機能に対する主要な管理インタフェースが提供されます。

表 31–1 lx ブランドゾーンで使用されるコマンドとその他のインタフェース

コマンド 

説明 

zlogin(1)

非大域ゾーンにログインします 

zoneadm(1M)

システムのゾーンを管理します 

zonecfg(1M)

ゾーン構成の設定に使用されます 

getzoneid(3C)

ゾーン ID と名前のマッピングに使用されます 

brands(5)

ブランドゾーン機能の説明を提供します 

lx(5)

Linux ブランドゾーンの説明を提供します 

zones(5)

ゾーン機能の説明を提供します 

lx_systrace(7D)

DTrace の Linux システムコールトレースプロバイダ 

zcons(7D)

ゾーンコンソールのデバイスドライバ 

zoneadmd デーモンは、ゾーンの仮想プラットフォームを管理する基本プロセスです。zoneadmd デーモンのマニュアルページは、zoneadmd(1M) です。このデーモンは、プログラミングインタフェースの構成要素ではありません。


注 –

表 27–5 に示すコマンドを大域ゾーンで使用すると、ブランドゾーンも含むすべての非大域ゾーンに関する情報を表示できます。表 27–4 に示すコマンドは、資源上限デーモンで使用されます。


システムの lx ブランドゾーンの設定 (作業マップ)

次の表に、システム上ではじめて lx ゾーンを設定する際に必要となる作業の概要を示します。

タスク 

説明 

説明 

ゾーンで実行する 32 ビット Linux アプリケーションをそれぞれ特定します。 

システム要件を評価します。 

必要に応じて、ビジネス目標とシステムのマニュアルを参照してください。 

構成するゾーンの数を決定します。 

次の内容を評価します。 

  • 実行する予定の Linux アプリケーションの数。

  • Linux ブランドゾーンに必要なディスク容量

  • スクリプトを使用する必要があるかどうか。

「アプリケーションのサポート」「システム要件と容量要件」「現在のシステム設定の評価」「複数の lx ブランドゾーンを構成するスクリプト」を参照してください。

コンテナを作成するためにゾーンで資源プールを使用するかどうかを決定します。 

資源プールを使用する場合は、ゾーンを構成する前に資源プールを構成します。 

zonecfg のプロパティーを使用すると、ゾーン規模の資源制御とプール機能をゾーンにすばやく追加できます。

lx ブランドゾーンの構成方法」第 13 章資源プールの作成と管理 (手順)を参照してください。

事前構成作業を行います。 

各ゾーンのゾーン名とゾーンパスを決定します。ネットワーク接続が必要な場合は、IP アドレスを取得します。ゾーンのスケジューリングクラスを決定します。標準のデフォルト特権セットでは十分でない場合は、ゾーンのプロセスを制限するための特権セットを決定します。 

ゾーン名、ゾーンパス、IP アドレス、およびスケジューリングクラスについては、lx ブランドゾーン構成の構成要素」を参照してください。非大域ゾーンでのデフォルトの特権および構成可能な特権のリストについては、「非大域ゾーン内の特権」を参照してください。

資源プールの関連付けについては、「ゾーンのしくみ」および lx ブランドゾーンの構成方法」を参照してください。

構成を作成します。 

非大域ゾーンの構成を行います。 

「ゾーンを構成、検証、および確定する」および zonecfg(1M) のマニュアルページを参照してください。

大域管理者として、構成されたゾーンの確認とインストールを行います。 

ゾーンを起動する前に、ゾーンの確認とインストールを行う必要があります。Linux ブランドゾーンをインストールする前に、Linux のディストリビューションを入手する必要があります。 

第 34 章lx ブランドゾーンのインストール、起動、停止、複製、およびアンインストールについて (概要)および第 35 章lx ブランドゾーンのインストール、起動、停止、アンインストール、および複製 (手順)を参照してください。

大域管理者として、非大域ゾーンを起動します。 

それぞれのゾーンを起動して稼働状態にします。 

第 35 章lx ブランドゾーンのインストール、起動、停止、アンインストール、および複製 (手順)を参照してください。

この新しいゾーンを本稼働用に準備します。 

Linux システム管理の標準のツールと方法をゾーン内から使用して、ユーザーアカウントの作成、ソフトウェアの追加、およびゾーン構成のカスタマイズを行います。 

新たにインストールしたマシンの設定およびアプリケーションのインストールを行うためのマニュアルを参照してください。ゾーンがインストールされているシステムに関連する特殊な考慮事項については、このマニュアルを参照してください。