Articles
Server and Storage Administration
Maureen Chew著
2014年5月公開
Oracle Solaris 11.2のカーネル・ゾーンは、物理ドメイン(オラクルのSPARC M5-32サーバーとSPARC M6-32サーバー上のPDOM)や物理パーティション(オラクルのFujitsu M10サーバー上のPPAR)、Oracle VM Server for SPARC、論理ドメイン(LDoms)、Oracle Solaris Zonesなどの、その他の仮想化テクノロジーを補完する機能です。
Oracle Solarisカーネル・ゾーンは、ホストOSの"ゲスト"として実行されるという点において通常のゾーンと似ています。しかし、カーネル・ゾーンは実行カーネルをホスト・カーネルと共有する代わりに、ホスト(グローバル)Oracle Solarisインスタンスに対するタイプ2のVirtual Machine Manager(VMM)ゲストとして実行されます。タイプ2のVMMゲストはベアメタル上で直接稼働するのではなく、OS(ホスト)上で稼働します。
|
Oracle Solarisカーネル・ゾーンは、独立したカーネルと独立したアップグレードおよびパッチ・レベルを維持できる機能を提供します。言い換えると、グローバル・ゾーンに依存しない個別のOSバージョンを維持できます。カーネル・ゾーンを設定するための最小要件はOracle Solaris 11.2ですが、カーネル・ゾーン内にOracle Solaris 10ゾーンを作成することはできます。また、Oracle Solaris 11.2でOracle Solaris 12のカーネル・ゾーンをホストできるようになると予想されています。
現在、カーネル・ゾーンはsun4vアーキテクチャ(オラクルのSPARC T4、SPARC T5、SPARC M5、またはSPARC M6プロセッサベースのサーバーとFujitsu M10サーバーなど)上とx64アーキテクチャ(インテルNehalem(VT-x/EPT)またはAMD Barcelona(AMDv/NPT)ベースのサーバーなど)上でサポートされています。SAS 9.3および9.4は、SPARCベースとx64ベースの両方のアーキテクチャのOracle Solaris 10以降でサポートされています。

図1:バージョンの異なるSASとOracle Solarisが同一システム上でホストされるアーキテクチャの例
次のケースでは、カーネル・ゾーン機能がSASアプリケーションのデプロイに最適であるか、または必須になります。
/dev構造へのアクセスが必要な場合カーネル・ゾーンをOracle Solaris 11のブート環境(BE)とともに使用すると、本番、テスト、開発のすべての環境で単一のサーバーを統合テスト・サーバーとして使用でき、単一のシステム上にある複数の環境に対して独立したパッチ適用プロセスやアップグレード・プロセスを同時に実行できます。
さらに、複雑なアップグレードやテスト・シナリオを実行するための、その後の本番システムへのデプロイが容易に実行できます(実績のあるテスト環境を完全なカーネル・ゾーン単位としてクローニングまたは再デプロイできます)。 また、本番システムで問題が発生した場合、テスト・システムにこの環境をクローニングしてプロビジョニングすることで、デバッグを目的とした環境の複製が大幅に容易になります。
図2に示すように、カーネル・ゾーンでのSASテストに対するパフォーマンス・テストでは、ベースライン・テストに対するオーバーヘッドはほとんど(または、まったく)発生しませんでした。 大量のCPUやI/O、メモリを使用する40回の標準SASテストが、はじめはグローバル・ゾーンで、次にカーネル・ゾーンで実行されました。ZFSプール内に構成されたSAN LUNは当初グローバル・ゾーンに接続されていましたが、後でエクスポートされ、カーネル・ゾーンに接続および再インポートされました。このため、それぞれのテスト実行において、I/O構成はまったく同じでした。
すべてのSASプログラムには、CPUCOUNT=4とmemsize=512M(SASWORKは同じSAN LUNを指す)が設定されました。
2回の実行間で、合計時間と個別テストのどちらに対しても実質的なパフォーマンスの影響は確認されませんでしたが、実際の結果は異なる可能性があります。

図2:パフォーマンス・テストの結果
カーネル・ゾーンの作成は非常に簡単です。 カーネル・ゾーンでは、カーネル・デバイス・ドライバを直接インストールして、専用のプライベート・ストレージを使用できます。
次の例で、如何に簡単にカーネル・ゾーンを作成できるかを示します。基本的な手順は次のとおりです。
新しいカーネル・ゾーンが実行中になったら、Oracle Solaris 11.2のUnified Archives機能を使用することで、簡単に環境をレプリケートできます。
この記事の例では、次のハードウェア環境が使用されました。
付録Aに示した手早く簡単な手順を使用して、グローバル・ゾーンt5-ptest1がOracle Solaris 11.1からOracle Solaris 11.2にアップグレードされました。Oracle Solaris 11で導入されたブート環境(BE)は、ブート・ディスク用にOracle Solaris ZFSを使用することで容易に使用できます。Oracle Solaris 11のBEを使用して後続のアップグレードを実行するために、事前の計画や複雑な手順は必要ありません。
アップグレード用に新しいBEが作成され、この新しいBE上でOracle Solaris 11.2へのアップグレードが実行されました。完了後は、次の再起動時に新しいBEがアクティブになるよう指定されました。 この素早く簡単な再起動にかかった時間のみが、アップグレードに必要なダウンタイムでした。アップグレードがうまくいかなかった場合は、単純な1つのコマンドを使用するだけで、以前使用していた元のBEを再アクティブ化できます。BEは高性能であり、システム管理者に高い評価を受けています。
カーネル・ゾーンの作成を始める前に、virtinfo(1M)コマンドを使用して、ハードウェア、ファームウェア、OSのレベルが適切であり、出力にkernel-zoneが含まれていることを確認します。SPARC T4プロセッサとSPARC T5プロセッサを使用したサーバーでは、より新しいファームウェア・バージョンが必要になる場合があります。
$ virtinfo NAME CLASS logical-domain current non-global-zone supported kernel-zone supported logical-domain supported
リスト1に示したコマンドを使用して、t5kz1という名前の新しいカーネル・ゾーンを作成します。スクリプト内では、/repoにマウントされたローカル・リポジトリに対してパブリッシャが設定されています。 zoneadm installが実行されると、グローバル・ゾーンのデフォルト・パブリッシャからカーネル・ゾーンがプロビジョニングされます。
注:カーネル・ゾーンはデフォルトで、1つの(仮想)CPU、2GBのRAM、16GBのブート・ディスク、ランダムMACアドレスが指定された1つのNICから構成されます。ここで使用する例では、これらのデフォルト値を増やしています。
#!/bin/sh ZN=t5kz1 set -x echo Configuring zone $ZN zonecfg -z $ZN -f zone3.txt echo echo Installing zone $ZN zoneadm -z $ZN install -x install-size=20g echo zoneadm -z $ZN boot
リスト1:カーネル・ゾーンの作成コマンド
リスト1に示したコマンドを変更することで、システムID/プロファイルを自動的に設定できます(Oracle Solarisがインストールされたシステム上にある/usr/share/auto_install/sc_profiles/sc_sample.xmlファイルの例を参照してください)。
実行するには、次のコマンドを使用する代わりに
zoneadm -z $ZN install -x install-size=20g
-cの指定を含む次のコマンドを使用します。
zoneadm -z $ZN install -x install-size=20g -c /usr/share/auto_install/sc_profiles/sc_mysite.xml
リスト1に示したコードは、zone3.txtというゾーン構成ファイルを参照しています。このファイルをリスト2に示します。ここでは次のカスタマイズが実行されます。
create -b -t SYSsolaris-kz set autoboot=true select capped-memory set physical=256G end add dedicated-cpu set ncpus=128 end add device set match=/dev/rdsk/c14t21220002AC001593d8 end add device set match=/dev/rdsk/c14t21220002AC001593d9 end add device set match=/dev/rdsk/c14t21220002AC001593d10 end add device set match=/dev/rdsk/c14t21220002AC001593d11 end add device set match=/dev/rdsk/c14t21220002AC001593d12 end add device set match=/dev/rdsk/c14t21220002AC001593d13 end add device set match=/dev/rdsk/c14t21220002AC001593d14 end add device set match=/dev/rdsk/c14t21220002AC001593d15 end verify commit exit
リスト2:zone3.txtファイル
カーネル・ゾーンの作成結果を図3に示します。

図3:カーネル・ゾーンの作成結果
リスト1に示したコードを実行してゾーンが起動されたら、zlogin -C t5kz1コマンドを実行してコンソールのログインを有効化します。この時点で、システムはsysconfig(1M)を実行します。これにより、ネットワークID、ルート・パスワード、デフォルト・ユーザー、ネーム・サービス、ディレクトリ・サービス、タイムゾーン、日付/時間などの設定が可能になります。
次のコマンドを使用して、この記事の構成例で使用された、以前からあったZFSプールをインポートすると、以前使用されていたものと同じマウント・ポイントへZFSファイル・システムが自動的にマウントされます。
root# zpool import
SAS Display Manager System(DMS)を実行するには、libXm.soをホストするMotifパッケージを個別にインストールする必要があります。カーネル・ゾーンの作成時にこのパッケージがグローバル・ゾーンにインストールされていた場合でも、このパッケージはデフォルトではインストールされません。このパッケージをインストールするには、次のコマンドを実行します。
root# pkg install motif
もう1つのインストール後のタスクは、ZFSファイル・システムのキャッシュ(適応型置換キャッシュ(ARC))にどれだけのメモリを割り当てるのかを検討することです。一般的な目安はなく、デフォルト値は妥当なものですが、大量メモリ消費の管理を総体的に考慮する必要があります。このパラメータを設定するには、ZFSに割り当てる量の半分の値をzfs_arc_maxに指定します。次に例を挙げます。
# echo "set zfs:zfs_arc_max=0x40000000" >> /etc/system # reboot
クローンを作成するため、グローバル・ゾーン(t5-ptest1)から次の例が実行されました。デモのため、結果のアーカイブは同じSPARC T5-2サーバーにデプロイされましたが、カーネル・ゾーンをサポートする同様のアーキテクチャ(ここではSPARC)を持つ任意のシステムにデプロイできます。
Unified Archivesには、ZFSの送受信ペイロード・ストリームの形式ですべてのプロビジョニング情報が含まれます。これは非常に強力な機能であり、元のシステム/ゾーンと受信側のシステム/ゾーンでOSリビジョン・レベルが一致する必要はありません。図4に、Unified Archives機能がデプロイ・オプションに対して提供する柔軟性を示します。

図4:Unified Archivesが提供するデプロイ・オプション
Unified Archivesを管理するには、archiveadm(1M)コマンドを使用します。アーカイブには、次の2種類があります。
カーネル・ゾーン(t5kz1)のアーカイブを作成するとき、このゾーン自体が実行中である必要があります。次の例では、リカバリ・アーカイブではなくクローン・アーカイブを作成します。
クローンを作成するには、リスト3に示したコマンドを実行します。
root# archiveadm create /z0/t5kzclone.uar -z t5kz1
Initializing Unified Archive creation resources...
Unified Archive initialized:/z0/t5kzclone.uar
Logging to:/system/volatile/archive_log.6260
Executing dataset discovery...
Dataset discovery complete
Creating install media for zone(s)...
Media creation complete
Preparing archive system image...
Beginning archive stream creation...
Archive stream creation complete
Beginning final archive assembly...
Archive creation complete
root# ls -l /z0/t5kzclone.uar
total 12074523
-rw-r--r-- 1 root root 6177536000 Apr 24 15:47 t5kzclone.uar
root# archiveadm info t5kzclone.uar
Archive Information
Creation Time:2014-04-24T19:30:35Z
Source Host:t5-ptest1
Architecture:sparc
Operating System:Oracle Solaris 11.2 SPARC
Deployable Systems: t5kz1
root# archiveadm info -v t5kzclone.uar
Archive Information
Creation Time:2014-04-24T19:30:35Z
Source Host:t5-ptest1
Architecture:sparc
Operating System:Oracle Solaris 11.2 SPARC
Recovery Archive:No
Unique ID:265382ed-a859-4a29-aaac-cc4815632a1c
Archive Version:1.0
Deployable Systems
't5kz1'
OS Version:0.5.11
OS Branch:0.175.2.0.0.36.1
Active BE:solaris-3
Brand:solaris-kz
Size Needed:12.8GB
Unique ID:7cdf3f2f-bae6-cc99-a565-dc27a2f03139
AI Media:0.175.2_ai_sparc.iso
リスト3:クローンの作成
2番目のカーネル・ゾーン(t5kz2)をプロビジョニングするため、この時点で、元のカーネル・ゾーン(t5kz1)を停止する必要があります。プロビジョニングされたtkz1はシステム・リソースの約半分を占め、t5z2はtkz1と同じサイズになるように設定されているため、両方を同時に実行するとリソースの超過割当てにつながります。
次のコマンドを実行して、グローバル・ゾーンからt5kz1を停止します。
root# zoneadm -z t5kz1 shutdown
Unified Archivesからゾーン・クローンをデプロイするために必要なコマンドは、zonecfgとzoneadmの2つのみです(リスト4を参照)。 以下のzonecfgコマンドとzoneadmコマンドでは、2つの-zパラメータが指定されています。t5kz2が新しいゾーンであり、t5kz1が元のゾーンです。 Unified Archivesを使用してすべてのゾーンをアーカイブすることも、任意のサブセットをアーカイブすることもできます。 ここでは、アーカイブに1つのゾーンしか含まれませんが、2番目の-zにクローンの対象となるゾーンを指定します。
#!/bin/sh set -x zonecfg -z t5kz2 create -a /z0/t5kzclone.uar -z t5kz1 echo zoneadm list -icv echo zoneadm -z t5kz2 install -x install-size=60g -a /z0/t5kzclone.uar -z t5kz1
リスト4:クローンのデプロイ
ルートのinstall-sizeパラメータが元のデプロイよりも大きい点に注意してください。ここで示した単純な例で扱っていない事項に、スワップ・デバイスとダンプ・デバイスのロケーションと領域の正しいサイズ設定があります。 256GBのゾーンの場合、5GBという初期のスワップ構成はSASに対して十分ではありません。mmap(2)コマンドを使用してSASがメモリ割当てを行う場合、スワッピングが起こるかどうかに関係なく、スワップ予約が必要です。このため、RAM構成に比例したスワップ・サイズを考慮に入れる必要があります。同様に、ダンプ・デバイスは通常、ルート・パーティションと同じロケーションにはないファイル・システム上に割り当てられます。 Unified Archivesを使用したデプロイでは、ルート・ファイル・システム上のメモリ構成に基づいてダンプ・デバイスが割り当てられます。
Oracle Solarisのカーネル・ゾーンとUnified ArchivesはSAS環境に対して、次のような一般的なエンタープライズITの問題を解決するための優れた柔軟性を提供します。
カーネル・ゾーンおよびUnified Archivesは、仮想化オプションを完全に補完する強力な機能であり、容易にデプロイできます。
カーネル・ゾーン内でSASを実行する際に確認されたパフォーマンスへの影響はごくわずかです。カーネル・ゾーン内でSASを実行した場合のパフォーマンスは、従来のOracle Solaris ZonesでSASを実行した場合のパフォーマンスと同等になります。
追加のバックアップBEを作成してからアップグレードを実行するには、リスト5に示したコマンドを実行します。
root# beadm create solaris11.1
root# beadm list
BE Active Mountpoint Space Policy Created
-- ------ ---------- ----- ------ -------
solaris - - 8.49M static 2013-06-27 17:33
solaris-1 NR / 43.73G static 2013-10-17 01:29
solaris-1-backup-1 - - 64.0K static 2013-10-18 23:25
solaris11.1 - - 197.0K static 2014-04-10 13:02
root# pkg publisher set-publisher -g file:///repo/repo solaris
root# pkg publisher
PUBLISHER TYPE STATUS P LOCATION
solaris origin online F file:///repo/repo/
root# pkg update --accept entire
Refreshing catalog 1/1 solaris...
Creating Plan (Solver setup)...
Creating Plan (Finding local manifests):...
Creating Plan (Download Manifests 0/807)...
Creating Plan (Committing Manifests):...
Creating Plan (Package planning: 1/811):...
Creating Plan (Merging actions):...
Creating Plan (Checking for conflicting actions):...
Creating Plan (Consolidating action changes):...
Creating Plan (Evaluating mediators):...
Packages to remove: 4
Packages to install:65
Packages to update:742
Mediators to change: 1
Create boot environment:Yes
Create backup boot environment:No
...
DOWNLOAD PKGS FILES XFER (MB) SPEED
data/docbook 0/811 0/38051 0.0/803.2 --
data/docbook 1/811 0/38051 0.0/803.2 --
system/scheduler/fss 1/811 0/38051 0.0/803.2 --
system/scheduler/fss 2/811 0/38051 0.0/803.2 --
file/slocate 2/811 0/38051 0.0/803.2 --
file/slocate 3/811 0/38051 0.0/803.2 ---
...
x11/xfs 806/811 38013/38051 803.1/803.2 cache
x11/xfs/xfs-utilities 806/811 38013/38051 803.1/803.2 cache
x11/xkill 807/811 38026/38051 803.1/803.2 cache
x11/xlock 808/811 38032/38051 803.1/803.2 cache
x11/xmag 809/811 38037/38051 803.2/803.2 cache
x11/xvidtune 811/811 38051/38051 803.2/803.2 cache
Completed 811/811 38051/38051 803.2/803.2 0B/s
PHASE ITEMS
Removing old actions 1/10476
Removing old actions 942/10476
...
Installing new actions 7727/23704
...
Updating modified actions 1/36399
...
Updating package state database working
...
Updating package state database Done
Updating package cache 1/746
...
Updating image state Done
...
Creating fast lookup database Done
A clone of solaris-1 exists and has been updated and activated.
On the next boot the Boot Environment solaris-2 will be
mounted on '/'.Reboot when ready to switch to this updated BE.
root# beadm list
BE Active Mountpoint Space Policy Created
-- ------ ---------- ----- ------ -------
solaris - - 8.49M static 2013-06-27 17:33
solaris-1 N / 14.69M static 2013-10-17 01:29
solaris-1-backup-1 - - 64.0K static 2013-10-18 23:25
solaris-2 R - 46.91G static 2014-04-10 13:15
solaris11.1 - - 197.0K static 2014-04
リスト5:BEの作成とアップグレード
ゾーンのプロビジョニング時に間違いがあった場合は、リスト6に示すコマンドを使用してゾーンを削除します。
#!/bin/sh ZN=t5kz2 zoneadm list -icv set -x zoneadm -z $ZN uninstall -F zonecfg -z $ZN delete -F zoneadm list -icv
リスト6:ゾーンの削除
オラクルとSASのPartner Web Pageを参照してください。
次のOracle Solaris資料も参照してください。
MaureenはSASに常駐するオラクルのPrincipal Software Engineerであり、SAS製品とオラクル製品にまたがるすべてのテクノロジーと製品の集約について検討しています。Sunとオラクルで26年にわたる経験を持つMaureenは、現在、ノースカロライナ州チャペルヒルに居住しています。
| リビジョン1.0、2014/05/07 |