解説:Oracle SuperCluster によるサーバー統合

Oracle SuperClusterでの統合の事例

Thierry Manfé著(協力:Orgad Kimchi、Maria Frendberg、Mike Gerdts)

Oracle Solaris Zonesを使用して、既存の物理サーバーとアプリケーションをP2V移行プロセスによりOracle SuperClusterに統合するためのベスト・プラクティスと実践的な手順を説明します。また、Oracle Database 10gを実行するOracle Solaris 8サーバーの統合例に関する詳細手順についても説明します。


2013年9月公開


この記事へのコメントがある場合は、FacebookのOTN Garageページにコメントのリンクをご投稿ください。類似した記事を共有する場合は、FacebookまたはTwitterまでお知らせください。その話題について議論しましょう。
目次
はじめに
最初に検討すべき質問
Oracle Solaris Zones用のSuperClusterドメイン
ネットワークの設定
オラクルのライセンス
段階的なP2V移行
パフォーマンス・チューニング
例:Oracle Database 10gを実行するOracle Solaris 8サーバーの統合
まとめ
関連項目
著者について

はじめに

仮想化によって多数の物理サーバーを1つのプラットフォーム上に統合することを検討する企業が増加しています。汎用エンジニアド・システムであるOracle SuperClusterには次のような特徴があります。これらは、統合のニーズに対応するためには必須となる特徴です。

  • スケーラブルなコンピューティング・リソースと高いスループット能力:多数の仮想マシンとアプリケーションをパラレルで実行するために不可欠
  • 完全に冗長化されたコンピューティング・リソース、ストレージ・リソース、ネットワーク・リソース:多数のアプリケーション・レイヤーを1つの仮想化プラットフォーム上で実行するために必要となる可用性を実現
  • Oracle VM Server for SPARCと軽量のOracle Solaris Zonesによるネイティブの仮想化テクノロジー:これら2つのテクノロジーを組み合わせて、最大限の柔軟性を確保しながら仮想化のオーバーヘッドを削減することが可能
  • 強力で汎用性の高いデータベース・マシン:多数のアプリケーションのロードに対応可能
  • 物理サーバーから仮想マシンへの移行(P2V移行)を容易にする各種ツール:アプリケーションを含む物理サーバーの内容をキャプチャし、Oracle Solaris Zoneに再デプロイすることが可能
  • 広範囲のOracle Solarisリリースのサポート:レガシー・サーバーの統合を簡素化

この記事では、Oracle Solaris Zonesを使用した既存サーバーのSuperClusterへの統合に関するアドバイスやベスト・プラクティス、実践的な手順を説明します。オペレーティング・システム・レイヤーと仮想化レイヤーに着目し、P2V移行プロセスや、この移行を容易にする関連ツールにも焦点を当てます。

この記事は、SuperClusterについてある程度の理解があり、P2V移行の知識を得てそのような移行を実施できるかを評価したいシステム管理者、アーキテクト、プロジェクト・マネージャーを対象としています。

最初に検討すべき質問

SuperClusterは高い柔軟性を備え、仮想化および統合のための多数のオプションを提供します。以降の項では、現在の物理サーバーをSuperCluster上で統合するための最適な選択肢をすばやく識別するためのいくつかの質問を取り上げます。

現在使用しているサーバーでP2V統合を実現できるか。

Oracle SuperCluster T5-8は、Oracle Solarisリリース10およびリリース11をネイティブに実行します。これらのリリースを実行しているSPARCベースのサーバーについては、SuperCluster上でネイティブのOracle Solaris Zonesを使用して統合できます。Oracle Solarisリリース8およびリリース9を実行しているSPARCサーバーも、solaris8solaris9のブランド・ゾーンを使用して統合できます。

:ネイティブ・ゾーンは、ホストしている大域ゾーンと同じOracle Solarisリリースを実行します。パフォーマンス面から推奨される構成は次のとおりです。ネイティブ・ゾーンでは最新のOracle Solarisリリースを使用し、非ネイティブ・ゾーンでは最新のハードウェア・プラットフォームやプロセッサを利用できないような過去のOracle Solarisバイナリを実行します。ネイティブ・ゾーンは、Oracle Solaris 10ではnativeブランドを、Oracle Solaris 11ではsolarisブランドを使用します。

Oracle Solarisの各リリースに必要となるアップデート・リリースは次のとおりです。

  • Oracle Solaris 11 SRU 5.5以降
  • Oracle Solaris 10 Update 8以降(64ビット)
  • Oracle Solaris 9:アップデート・リリースに関する制約なし、64ビット必須。solaris9ブランド・ゾーンについて詳しくは、System Administration Guide: Oracle Solaris 9 Containersを参照してください。isainfo -bを使用すれば、統合対象サーバーのアドレス空間のビット数(32または64)を確認できます。
  • Oracle Solaris 8 2/04以降(64ビット)。これより前のアップデート・リリースを使用している場合は、libthreadを使用するアプリケーションで問題が発生することがあります。solaris8ブランド・ゾーンについて詳しくは、System Administration Guide: Oracle Solaris 8 Containersの第8章を参照してください。isainfo -bを使用すれば、統合対象サーバーのアドレス空間のビット数(32または64)を確認できます。

また、このページにリンクのあるOracle Solarisサポート・ライフ・サイクル・ポリシーを参照し、お使いのOracle Solarisリリースのサポート状況を確認してください。

SPARC以外のサーバー(x86サーバーなど)は、P2V移行を使用してSuperCluster上で統合できません。ただし、Java、Pythonなどの非ネイティブ・コードを使用するアプリケーションは、SPARC以外のサーバーからSuperClusterに移行できます。

:コンパイル型言語(C、C++、FORTRAN)を使用して開発され、SPARC以外のサーバー上で実行されるアプリケーションを統合するには、まずそのアプリケーションをSPARC上で再コンパイルする必要があります。したがって、ソース・コードを入手できる必要があります。

予定しているのは長期的移行か短期的移行か。

ビジネス・クリティカルなアプリケーションを実行しているサーバーを統合し、そのアプリケーションを今後数年にわたり将来のリリースにより更新したいと思っていますか。それとも、レガシー・アプリケーションを実行する古いサーバーを破棄する予定であり、アプリケーションは今後更新されないのでしょうか。

前者のシナリオ(ビジネス・クリティカルなアプリケーションを長期的に移行するシナリオ)の場合、ネイティブのOracle Solaris 10ゾーン(つまりnativeブランド・ゾーン)およびネイティブのOracle Solaris 11ゾーン(つまりsolarisブランド・ゾーン)の利用が推奨されます。これは、これらのゾーンがネイティブのパフォーマンスをもたらすためです。また、オラクルが提供するSuperClusterの四半期ごとのフルスタック・ダウンロード・パッチ(QFSDP)により維持管理されます。

Oracle Solaris 11大域ゾーン内で実行されるOracle Solaris 10ゾーンのような非ネイティブ・ゾーンは、定期的に更新される予定がなくパフォーマンスが重要視されないアプリケーションおよびオペレーティング・システムのみに使用してください(ただし、非ネイティブ・ゾーンを使用する場合でも、旧型のハードウェアからSuperClusterに移行することでパフォーマンスが向上します)。QFSDPは非ネイティブ・ゾーンには適用されません。非ネイティブ・ゾーンへのパッチ適用は運用担当者の責任で行ってください。これらの制約の範囲内において、非大域ゾーンは、Oracle Solarisリリース8およびリリース9を実行するレガシー・サーバーを統合するために必要となる柔軟性を備えています。

パフォーマンスと管理性はどれほど重要か。

Oracle SuperCluster T5-8では、ゾーンの格納場所として次の2つの選択肢があります。

  • オラクルのSun ZFS Storage 7320 Appliance(SuperClusterに搭載)
  • ローカルのハード・ディスク・ドライブ(HDD)

これらの選択肢から選択する際に考慮すべきおもな条件は、I/Oパフォーマンスと管理性の2つです。

I/Oパフォーマンス

統合するソース・サーバーでまず確認すべきことは、I/Oロードを生成するデータがルート・ファイル・システムに配置されているかどうかです。ルート・ファイル・システムに配置されていない場合(通常、データがSANストレージに配置されているケース)、このデータはP2V移行中にゾーンパスに送信されない可能性が高くなります。そのため、作成されるゾーンの場所はI/Oパフォーマンスにそれほど影響しません。そのような場合は、ゾーンをSun ZFS Storage 7320 Appliance上にインストールしてください。一方、データがルート・ファイル・システムに配置されている場合は、このデータがゾーンパスに送信されるため、ゾーンの場所がI/Oパフォーマンスに影響します。そのような場合に、多数のゾーンのゾーンパスがSun ZFS Storage 7320 Appliance上に存在するのであれば、I/O帯域幅を限られた数のゾーンのみに割り当てるために、ローカルのHDDを適切な代替手段として使用できます。

管理性

複数のSuperClusterドメイン間でゾーンを移行する場合は、Sun ZFS Storage 7320 Appliance上にゾーンをインストールすることが最適な選択肢です。各ゾーンに対して、Sun ZFS Storage 7320 ApplianceによってエクスポートされたiSCSI LUNから専用のZFSプール(zpool)を作成することで、移行が格段に容易になります。zpool exportzpool importを使用して、ソース・ドメインからターゲット・ドメインにzpoolを送信するだけで移行できるからです。この場合、データの移行やコピーは不要です。

:SuperClusterドメインは、Oracle VM Server for SPARC仮想マシン(論理ドメイン)と同一です。SuperClusterでは、ドメイン内にゾーンがホストされます。

また、ゾーンあたり1つのzpoolがデフォルト・ゾーンに該当します。Oracle Enterprise Manager Ops Centerでは、このデフォルト・ゾーンを使用してスキーマをプロビジョニングします。このzpoolをSun ZFS Storage 7320 Appliance上に配置した場合、Oracle Enterprise Manager Ops Centerを使用して複数のドメイン間の移行を実行できます。

さらに、Sun ZFS Storage 7320 Appliance上にインストールされたゾーンは、SuperClusterによる高可用性のメリットをただちに享受できます。SuperClusterに接続するストレージとネットワークは完全に冗長化されるためです。

Oracle Solaris Zones用のSuperClusterドメイン

P2V統合により作成されるOracle Solaris Zonesは、アプリケーション・ドメイン内にホストする必要があります。Sun ZFS Storage 7320 Applianceがゾーンのインストール先として推奨されますが、ローカルのHDDにゾーンをインストールする場合は、アプリケーション・ドメインに、ゾーン専用の追加のzpoolを作成するためのスペアHDDを構成する必要があります。オラクルのSPARC Tシリーズ・サーバー1台あたり1~2つのドメインを使用するSuperCluster構成では、アプリケーション・ドメインに十分なスペアHDDを構成できます。SPARC Tシリーズ・サーバー1台あたり3つ以上のドメインを使用する構成の場合は、追加のzpoolではなく/u01ファイル・システムを使用できます。

Oracle SuperCluster T5-8には一連の論理ドメイン(Oracle VM Server for SPARC仮想マシン)が搭載されます。論理ドメインは、SuperClusterの初期構成の実行時にSPARC T5-8サーバー上に構成されます。論理ドメインには次の2つのタイプがあります。

  • Oracle Database 11g Release 2専用のデータベース・ドメイン
  • 任意のソフトウェア(Oracle Database 11g Release 2以外のデータベースなど)専用のアプリケーション・ドメイン

P2V統合により作成されるOracle Solaris Zonesは、アプリケーション・ドメイン内にホストする必要があります。

:データベース・ドメインでは、P2Vゾーンはサポートされません。データベース側で期待されるパフォーマンスを達成するために、データベース・ドメイン内のコンピューティング・リソースはすべて、Oracle Database 11g Release 2専用のものになるためです。

統合対象のサーバーがOracle Solarisリリース8またはリリース9を実行している場合は、Oracle Solaris 10を起動するアプリケーション・ドメインが必要になります。統合対象のサーバーがOracle Solaris 11を実行している場合は、Oracle Solaris 11を起動するアプリケーション・ドメインが必要になります。統合対象のサーバーがOracle Solaris 10を実行している場合は、Oracle Solaris 10を起動するアプリケーション・ドメインの使用が推奨されますが、Oracle Solaris 11ドメインも有効な選択肢となります。

Sun ZFS Storage 7320 Appliance上にゾーンをインストールする場合は、この項の以降の説明をスキップしてもかまいません。

ローカルのHDDにゾーンをインストールする場合は、ゾーン専用の追加のZFSプールを作成するためのスペアHDDをドメインに構成する必要があります。このZFSプールは、冗長性を確保するためにミラー化する必要があります。SPARC Tシリーズのサーバー1台に3つ以上のドメインがホストされる場合は、この追加のZFSプールを作成するためのスペアHDDが一部のドメインで不足します。この場合、ドメインで利用可能な/u01ファイル・システムを使用してゾーンをインストールできます。

ネットワークの設定

Oracle Solaris 11を実行するアプリケーション・ドメインは、ゾーンのネットワーク構成に最高レベルの柔軟性をもたらします。仮想ネットワーク・インタフェースとInfiniBand(IB)インタフェースを自由に作成し、ゾーン専用として設定できます。各ゾーンを複数のVLANに接続できるため、データセンターのネットワーク・インフラストラクチャとシームレスに統合できます。各ゾーンを複数のIBパーティションに接続することもできます。各ゾーン内の各VLANおよびIBパーティションに対してIPネットワーク・マルチパス(IPMP)を構成して、ネットワークの冗長性を確保できます。

Oracle SuperCluster T5-8には次の3つのネットワークが搭載されます。

  • 10GbEクライアント・アクセス・ネットワーク:SuperClusterをデータセンターに接続します。統合対象のサーバーはこのネットワーク上に配置されます。
  • 管理ネットワーク(Oracle SuperCluster T5-8上の10GbE):管理タスク専用のネットワークです。
  • InfiniBandネットワーク:異なるSuperClusterドメインを相互に接続します。

ここでは、クライアント・アクセス・ネットワークへのゾーンの接続について取り上げます。必要になった場合、およびクライアント・アクセス・ネットワーク用の機能を使用する場合は、ゾーンをInfiniBandネットワークに接続することもできます。通常、Oracle Database 11g Release 2インスタンスを使用するアプリケーションをホストするゾーンは、InfiniBandに接続されます。

デフォルトでは、ゾーンは管理ネットワークに接続されます。VLANタギングを使用して、複数のゾーン間におけるネットワークベースの分離を強化することもできます。

IPネットワーク・マルチパスによるネットワークの冗長性

各アプリケーション・ドメインは、最小で2つのネットワーク・インタフェースを、ゾーンに使用できるクライアント・アクセス・ネットワークに接続した状態でプロビジョニングされます。

ネットワークの冗長性が必要な場合は、IPMPを使用できます。共有IPゾーンを使用する場合、IPMPをドメインの大域ゾーン内に設定することで他の複数のゾーンもそのメリットを得ることができます。排他的IPゾーンを使用する場合は、大域ゾーン内に設定するのと同様の方法で(Oracle Solarisリリース10および11の説明にあるとおりに)、IPMPを各ゾーン内に設定します。

:共有IPゾーンは、ネットワーク・インタフェースとIPスタックを共有します。複数のゾーン間の分離はIPスタック内で実装されます。このタイプのゾーンは、ゾーンに対して使用できるネットワーク・インタフェースが不足している場合に便利です。共有IPゾーンを使用する場合、ネットワーク構成は大域ゾーン内で実現されます。一方、排他的IPゾーンは、ネットワーク・インタフェースおよび専用のIPスタックに排他的にアクセスします。このタイプのゾーンは、複数のゾーン間で高いレベルでネットワークを分離する必要がある場合に推奨されます。排他的IPスタックの使用が必須であるアプリケーションも存在します。

Oracle Solaris 10を実行するアプリケーション・ドメイン内にホストされた排他的IPゾーンにIPMPを構成するには、大域ゾーンや他のゾーンで使用されていないネットワーク・インタフェース(NIC)が2つ必要です。しかし、ドメインあたりのNIC数が2つに制限されている場合があります。そのような場合や、同じドメイン内で多数のゾーンを実行する必要がある場合は、VLANタギングを使用して大域ゾーン内にさらに多くのNICインスタンスを作成できます。そのような追加のインスタンスは、排他的IPゾーン内で使用できます。Oracle Solaris 10で排他的IPゾーンによりVLANタギングを使用する方法について詳しくは、次のブログ記事を参照してください。Solaris 10 Zones and Networking—Common Considerations

Oracle Solaris 11を実行するアプリケーション・ドメイン内でホストされる排他的IPゾーンにIPMPを構成する場合は、ネットワーク・インタフェースに対する制約が少なくなります。NICがすでに使用中である場合やNICを共有する必要がある場合に、Oracle Solaris仮想ネットワーク・インタフェース(VNIC)を作成して、それらのVNICを排他的IPゾーンで使用することが可能です。VNICはNICの上層に作成されます。また、NICを停止せずにアプリケーション・ドメインからVNICを作成できます。制御ドメインへのアクセスは必要ありません。

Oracle Solaris 10を実行するアプリケーション・ドメインからは、dladm show-linkを使用してNICの一覧を表示できます。

# dladm show-link
vnet0           type: non-vlan  mtu:1500       device: vnet0
ixgbe0          type: non-vlan  mtu:1500       device: ixgbe0
ixgbe1          type: non-vlan  mtu:1500       device: ixgbe1
ibd2            type: non-vlan  mtu:65520      device: ibd2
ibd0            type: non-vlan  mtu:65520      device: ibd0
ibd1            type: non-vlan  mtu:65520      device: ibd1

この一覧により、1つのvnet(vnet0)、2つのNIC(ixgbe0ixgbe1)、3つのInfiniBandインタフェースをドメイン内で利用できることが分かります。大域ゾーンで使用されていないNICは、ifconfig -aの実行結果に出力されません(リスト1を参照)。

# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000

ixgbe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
        inet 10.129.184.66 netmask ffffff00 broadcast 10.129.184.255
        ether 0:1b:21:c8:5e:b0
ixgbe1: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 7
        inet 0.0.0.0 netmask 0
        ether 0:1b:21:c8:5e:b1
vnet0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 8
        inet 10.129.183.119 netmask ffffff00 broadcast 10.129.183.255
        ether 0:14:4f:f8:4e:3

リスト1

VLANの設定

Oracle Solaris 11を実行するアプリケーション・ドメイン内での、10GbEクライアント・アクセス・ネットワークに対するVLANの設定は、Oracle Solarisリリース10とリリース11の両方のゾーンで簡単に実行できます。排他的IPゾーンを使用し、大域ゾーン内の必須の10GbE NICの上層に仮想ネットワーク・インタフェース(VNIC)を作成します。そのためには、dladm create-vnicコマンドを使用し、vlan-id属性を設定するための-vオプションを指定します。コマンドの実行後は、VNIC経由でゾーンを出るすべてのパケットにvlan-idのタグが付けられます。また、VNICの作成後すぐに大域ゾーン内で仮想スイッチがインスタンス化され、パケット・フィルタリングが実行されるようになります。そのため、vlan-idのタグが付いたパケットのみが、VNICを経由してゾーンに転送されます。また、仮想スイッチによって、同じアプリケーション・ドメイン内で実行される2つのゾーンが異なるVLANに接続している場合は、相互に通信できないことが保証されます。

同様に、Oracle Solaris 10を実行するアプリケーション・ドメインの場合は、VLANタギングを有効にしたインタフェースが大域ゾーン内に作成され、排他的IPゾーンに割り当てられます。Oracle Solaris 10の場合について詳しくは、このブログ記事を参照してください。

オラクルのライセンス

オラクルは、制限付きOracle Solaris Zonesをライセンス可能エンティティと認識しており、これをハード・パーティショニング・ライセンスと呼んでいます。つまり、Oracleソフトウェア・ライセンスのコストを最適化するために、P2V移行プロセスの実行中に作成されるゾーンに制限をかけることができます。

オラクルが設定しているライセンス要件に合ったゾーンを作成するには、最初に、必要な数のコアを含むリソース・プールを作成し、ゾーンをこのリソース・プールにバインドする必要があります。

まず、licensePool.cmdファイルを作成して次のように編集します。

create pset license-pset ( uint pset.min = 16; uint pset.max = 16 )
create pool license-pool
associate pool license-pool ( pset license-pset )

1行目で、プロセッサ設定を16個の仮想CPUとして定義しています。Oracle SuperCluster T5-8では、コアあたり8つの仮想CPUが搭載されるため、このプロセッサ設定は2つのコアに相当します。その結果、ライセンスの対象となる実際のコア数は2になります。注意すべき点として、プロセッサ設定内の仮想CPU数はかならず8の倍数にしてください。

ファイルを編集したら、license-poolプールを作成します。

# pooladm -s
# poolcfg -f licensePool.cmd
# pooladm -c

pooladmを使用して、新しいリソース・プール構成を確認できます(リスト2を参照)。

# pooladm
# ...
# pool license-pool
                int     pool.sys_id 2
                boolean pool.active true
                boolean pool.default false
                int     pool.importance 1
                string  pool.comment
                pset    license-pset

        pset license-pset
                int     pset.sys_id 1
                boolean pset.default false
                uint    pset.min 16
                uint    pset.max 16
                string  pset.units population
                uint    pset.load 31
                uint    pset.size 16
                string  pset.comment
...

リスト2

zonecfgコマンドを使用してこのゾーン構成を変更し、ゾーンにpool=license-poolという属性を追加します。これで、このゾーンがlicense-poolコアを使用するようになります。

最後に、ゾーンを再起動します。この後、ゾーンに接続して、psrinfoコマンドを使用して、認識されるCPU数を確認できます。

多数のゾーンでlicense-poolコアを使用でき、それでもライセンス・コストは2つのコアに基づいたまま増加しません。license-poolに関連付けられたすべてのゾーンが2つのコアを共有します。

段階的なP2V移行

ここでは、SuperClusterへのPSV移行のおもな手順をひととおり説明します。例では、Oracle Solaris 10サーバーを、Oracle Solaris 10を実行するアプリケーション・ドメイン内のOracle Solaris 10ゾーンに統合します。

:SuperClusterの文脈から離れたP2V移行に関する一般的な情報については、Oracle Solaris管理ガイドを参照してください。

ソース・サーバーでの健全性検査の実行

zonep2vchkは、PSV移行を実行する前にソース・サーバーを評価するためのツールです。ソース・サーバーと、P2V移行プロセスの結果として作成されるターゲット・ゾーンとの変更点について、適度な概要が表示されます。このツールは、潜在的な問題を識別し、移行に先だって修正を実施するために使用できます。

zonep2vchkはOracle Solaris 11に搭載されています。スクリプトであることから、直接コピーしてOracle Solaris 10システム上で実行できます。

zonep2vchkは、Oracle Solarisリリース8またはリリース9では実行できません。

まず、zonep2vchkに単一の-Tオプションを指定して実行してください。このオプションには、リスト3のように、ゾーンをホストするドメイン内のOracle Solarisリリース(この例の場合はOracle Solaris 10)を指定します。このモードでは、サーバー上で実行中のサービスのうち、ゾーンでは利用できないサービスの一覧が表示されます。また、移行の対象とならない既存のゾーンと追加のzpool、Oracle Solaris 10ゾーン内で共有できないNFS共有ファイル・システムを識別でき、その他の多くの検査も実行されます。

# ./zonep2vchk -T S10

  - Source System: t5240-250-01
      Solaris Version:Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
      Solaris Kernel:5.10 Generic_147440-01
      Platform:        sun4v SUNW,T5240

  - Target System:
      Solaris_Version:Solaris 10
      Zone Brand:      native (default)
      IP type:         shared

--Executing basic checks

  - The system is sharing file systems with NFS. This is not possible in
    the destination zone. The shares should be evaluated to determine if
    they are necessary. If so, this system may not be suitable for
    consolidation into a zone, or an alternate approach for supporting the
    shares will need to be used, such as sharing via the global zone or
    another host. Use "zonep2vchk -P" to get a list of the shared
    filesystems.

  - The following SMF services will not work in a zone:

        svc:/network/iscsi/initiator:default
        svc:/network/nfs/server:default
        svc:/system/iscsitgt:default

  - The following zones will be unusable. Each zone should be migrated
    separately to the target host using detach and attach. See zoneadm(1M),
    solaris(5) and solaris10(5):
        Zone                                 State
        s10zone                              running

  - The following SMF services require ip-type "exclusive" to work in
    a zone. If they are needed to support communication after migrating
    to a shared-IP zone, configure them in the destination system's global
    zone instead:

        svc:/network/ipsec/ipsecalgs:default
        svc:/network/ipsec/policy:default
        svc:/network/routing-setup:default

  - The system is configured with the following non-root ZFS pools.
    Pools cannot be configured inside a zone, but a zone can be configured
    to use a pool that was set up in the global zone:

        cpool

  - When migrating to an exclusive-IP zone, the target system must have an
    available physical interface for each of the following source system
    interfaces:

        nxge0

  - When migrating to an exclusive-IP zone, interface name changes may
    impact the following configuration files:

        /etc/hostname.nxge0

  Basic checks compete, 11 issue(s) detected

リスト3

-rオプションを指定したzonep2vchkでは、実行時検査が行われ、ゾーン内で利用できない権限を使用しているプログラムが検出されます。リスト4の例では、実行時検査が5分間だけ実行されます。サーバーで本番アプリケーションをホストするときには、長期的な検査を実行することが推奨されます。

# ./zonep2vchk -r 5m -T S10

  - Source System: t5240-250-01
      Solaris Version:Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
      Solaris Kernel:5.10 Generic_147440-01
      Platform:        sun4v SUNW,T5240

  - Target System:
      Solaris_Version:Solaris 10
      Zone Brand:      native (default)
      IP type:         shared

--Executing run-time checks for 5m

  - The following programs were found using privileges that cannot be added
    to a zone. The use of these privileges may be related to the program
    command line options or configuration.

        Program                              Disallowed Privilege

        /usr/lib/fm/fmd/fmd                  sys_config

  Run-time checks complete, 1 issue(s) detected

リスト4

-sオプションを指定したzonep2vchkでは、コマンドラインで指定したファイル・システムまたはディレクトリの静的バイナリ分析が実行されます。静的にリンクされているバイナリが検出されます。そのようなバイナリはゾーン内では実行できません。リスト5の例では、ルート・ディレクトリに対して検査を実行します。ただし、ソース・サーバーがアプリケーションをホストしている場合は、アプリケーションのホーム・ディレクトリを指定する方が合理的です。

# ./zonep2vchk -s /

  - Source System: t5240-250-01
      Solaris Version:Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
      Solaris Kernel:5.10 Generic_147440-01
      Platform:        sun4v SUNW,T5240

  - Target System:
      Solaris_Version:Solaris 10
      Zone Brand:      native (default)
      IP type:         shared

--Executing static binary checks
  Static binary checks compete, 0 issue(s) detected

リスト5

最後に、-cを指定したzonep2vchkでは、ソース・サーバー構成に基づいてテンプレート・ファイルが生成されます。SuperClusterでのゾーンの構成時にこのテンプレート・ファイルを使用できます。

# ./zonep2vchk -c
create -b
set zonepath=/zones/t5240-250-01
add attr
        set name="zonep2vchk-info"
        set type=string
        set value="p2v of host t5240-250-01"
        end
set ip-type=shared
# 元のホストのhostidを維持するには、以下のコメントを解除してください。
# set hostid=853c66cc
# 最大lwpsはmax_uproc/v_procに基づきます。
set max-lwps=40000
add attr
        set name=num-cpus
        set type=string
        set value="original system had 128 cpus"
        end
# 専用または制限付きのCPUの1つのみが使用されます。
# CPU制限を使用するには、以下のコメントを解除してください。
# add capped-cpu
#       set ncpus=128.0
#       end
# 専用CPUを使用するには、以下のコメントを解除してください。
# add dedicated-cpu
#       set ncpus=128
#       end
# メモリ制限を使用するには、以下のコメントを解除してください。
# 物理メモリとスワップ・デバイスのサイズを加算した値を使用します。
# add capped-memory
#       set physical=65312M
#       set swap=69426M
#       end
# 元のnxge0インタフェース構成:
#    静的に定義されたIPアドレス:10.140.250.120 (t5240-250-01)
#    工場出荷時に割り当てられたMACアドレス:0:21:28:3c:66:cc
add net
        set address=t5240-250-01
        set physical=change-me
        end
exit

リスト6

ソース・システムのFLARイメージの作成

この手順では、1つのフラッシュ・アーカイブ(FLAR)ファイル内にソース・サーバーのデータを格納します。この手順は、次のコマンド1つで実行できます。

# /usr/sbin/flarcreate -S -n s10P2V -L cpio /var/tmp/s10P2V.flar

このflarcreateコマンドにより、s10server.flarというイメージ・ファイルが作成されます。-L cpioオプションを指定すると、アーカイブに対してCPIO形式が使用されます。CPIO形式は、ソース・システムにZFSルート・ファイル・システムが存在する場合に使用してください。-Sオプションにより、ディスク領域の検査手順がスキップされ、処理時間が短縮されます。-nでは、FLARイメージ・ファイルの内部的な名前を指定します。また、-xオプションを使用して、特定のファイル、ディレクトリ、またはZFSプールをFLARイメージ・ファイルから除外できます。

flarcreateはOracle Solaris 11では利用できません。FLARイメージ・ファイルの代わりに、大域ゾーンのrpoolからのZFSストリームを使用します。詳しくは、こちらを参照してください。

ソース・サーバーに複数のブート環境(BE)が存在する場合、FLARイメージ・ファイルに格納できるのはアクティブなBEのみです。Oracle Solaris 10ネイティブ・ゾーンでは、異なる複数のBEを表示できますが、使用できるBEはアクティブなBEの1つのみです。Oracle Solaris10ブランド・ゾーン(Oracle Solaris 11大域ゾーン内で実行)では、ライブアップグレード関連のコマンドは使用できず、異なる複数のBEを表示することはできません。P2V移行の前に、できる限り多くのBEをソース・サーバーから削除してください。

これで、FLARイメージ・ファイルをSuperClusterにコピーする準備が整いました。

ゾーン用のZFSプールの作成

この手順を実行する前に、ゾーンのインストール先をローカルのHDDとするかSun ZFS Storage 7320 Applianceとするかについて決定する必要があります。

ローカルのHDD上のZFSプール

ローカルのHDDにゾーンをインストールする場合、SPARC Tシリーズ・サーバー1台あたり3つ以上のドメインがSuperCluster構成に含まれているかを確認します。3つ以上のドメインがある場合は、/u01ファイル・システムが、ローカルのHDDにゾーンをインストールするための選択肢となります。

次の例は、SPARC Tシリーズ・サーバー1台あたり1つのデータベース・ドメインと1つのアプリケーション・ドメインが存在する構成に基づいています。

まず、formatを使用してドメイン内に存在するディスクを識別します(リスト7を参照)。

# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c1t5000C500429EFABFd0 <SUN600G cyl 64986 alt 2 hd 27 sec 668>  solaris
          /scsi_vhci/disk@g5000c500429efabf
       1. c1t5000C500429F6D87d0 <SUN600G cyl 64986 alt 2 hd 27 sec 668>  solaris
          /scsi_vhci/disk@g5000c500429f6d87
       2. c1t50015179596885CBd0 <ATA-INTELSSDSA2BZ30-0362 cyl 35769 alt 2 hd 128 sec 128>
          solaris  /scsi_vhci/disk@g50015179596885cb
       3. c1t50015179596667E2d0 <ATA-INTEL SSDSA2BZ30-0362-279.46GB>
          /scsi_vhci/disk@g50015179596667e2

リスト7

この例では、2台のHDDと2台のSSDがあります。それぞれのHDDは2つのスライス(s0s1)に分割されています。s0スライスはすでにrpoolによって使用されています。この点は、zpool statusを使用して確認できます(リスト8を参照)。

# zpool status BIrpool-1
pool:BIrpool-1
state:ONLINE
scan: resilvered 8.93G in 0h2m with 0 errors on Thu May 17 17:02:12 2012
config:

     NAME                         STATE     READ WRITE CKSUM
     BIrpool-1                    ONLINE       0     0     0
     mirror-0                   ONLINE       0     0     0
     c1t5000C500429F6D87d0s0  ONLINE       0     0     0
     c1t5000C500429EFABFd0s0  ONLINE       0     0     0

リスト8

2つのs1スライスを使用して、ゾーン専用のs10p2vpoolプールを作成できます。

# zpool create s10p2vpool mirror c1t5000C500429F6D87d0s1 c1t5000C500429EFABFd0s1

:SuperClusterがサーバー・ノードあたり3つ以上のドメインにより構成されている場合、zpool createコマンドが強制終了し、デバイスがビジー状態のためスライスの1つを開くことができなかったという内容のメッセージが表示されることがあります。可能性としては、そのスライスがドメインの仮想ディスク・サーバーによって共有されています。この状況は、制御ドメインに接続して、アプリケーション・ドメイン上でldm list-domain -lを実行することで確認できます。出力のVDSセクションにビジー状態のデバイスが表示されます。この解決策としては、別のスライスを使用してZFSプールを作成します。この例では、SSDを使用しています。

Sun ZFS Storage 7320 Appliance上のZFSプール

Sun ZFS Storage 7320 Appliance上にプールを作成するには、次の手順を実行します。

  1. Sun ZFS Storage 7320 Applianceのユーザー・インタフェースを使用して、iSCSI LUNを作成し、関連付けられたターゲット番号を取得します。ターゲットを取得するには、ConfigurationSANタブで「ISCSI Targets」を選択します。
  2. ゾーンをホストするドメイン(つまり大域ゾーン)内にこのiSCSI LUNをマウントします。

    1. まず、静的なiSCSI構成を追加します。

      # iscsiadm add static-config
        iqn.1986-03.com.sun:02:847ad5ff-eff5-4bd7-8310-999756b3d568,192.168.30.5:3260
      

      コマンド説明:

      • iqn.1986-03.com.sun:...:LUNに関連付けられたターゲット番号(手順1で取得したもの)
      • 192.168.30.5:InfiniBandネットワーク上のSun ZFS Storage 7320 ApplianceのIPアドレス
      • 3260:iSCSIの標準ポート
    2. 次に、静的な検出を有効化します。

      # iscsiadm modify discovery -s enable
      
  3. この時点で、LUNがマウントされます。iscsiadm list-targetを使用して、このLUNに関連付けられたデバイス名を取得します。

    # iscsiadm list target -S iqn.1986-03.com.sun:02:78af61c2-953
    Target: iqn.1986-03.com.sun:02:847ad5ff-eff5-4bd7-8310-999756b3d568
            Alias:-
            TPGT:1
            ISID:4000002a0000
            Connections:1
            LUN:0
                 Vendor:SUN     
                 Product:COMSTAR         
                 OS Device Name:/dev/rdsk/c0t600144F000212834B1BE50A60A010001d0s2
    
  4. このデバイス名を使用して、ZFSプールを作成します。

    # zpool create s10p2vpool c0t600144F000212834B1BE50A60A010001d0
    

ゾーンの作成と起動

プールを作成したら、プール上にゾーンパス用のZFSファイル・システムを作成します。実際にゾーンをインストールする前に、ZFS圧縮を有効化します。最適なパフォーマンスを得るために、ZFS recordsizeの調整も検討します("パフォーマンス・チューニング"の項を参照)。

# zfs create s10p2vpool/s10P2V
# zfs set compression=on s10p2vpool/s10P2V
# chmod 700 /s10p2vpool/s10P2V/

zonep2vchk -cにより作成した構成ファイルを指定してzonecfgを実行し、ゾーンを構成します。この構成ファイル内では、zonepath/s10p2vpool/s10P2Vに設定され、ip-typeが排他的として設定され、net physicalixgbe1に設定されています。

# zonecfg -z s10P2V -f s10P2V.cfg

ゾーンを構成したら、zoneadmコマンドとFLARイメージ・ファイルを使用してゾーンをインストールします。ソース・サーバーと同じOS構成(同じIPアドレスなど)を使用する場合は、-pオプションを使用します。この操作によってアドレスの競合が発生する可能性がある点に注意してください。ソース・サーバーをシャットダウンするか、ゾーンを起動する前にソース・サーバーのIPアドレスを変更する必要があります。別の構成を使用する場合は、代わりに-uオプションを使用します。このオプションを指定すると、インストール時にゾーンが構成解除されます。

# zoneadm -z s10P2V install -a /s10P2V.flar -u
cannot create ZFS dataset nfspool/s10P2V: dataset already exists
      Log File:/var/tmp/s10P2V.install_log.AzaGfB
    Installing:This may take several minutes...
Postprocessing:This may take a while...
   Postprocess:Updating the zone software to match the global zone...
   Postprocess:Zone software update complete
   Postprocess:Updating the image to run within a zone

        Result:Installation completed successfully.
      Log File:/nfspool/s10P2V/root/var/log/s10P2V.install13814.log

この時点で、ゾーンを起動する準備が整いましたが、まだゾーンのOracle Solarisインスタンスを構成していません。この状態でゾーンを起動する場合は、構成パラメータを対話的に入力するために、zlogin -Cを使用してコンソールに接続します。または、ゾーンパスにsysidcfgファイルをコピーして、対話的な構成を避けることもできます。

# cp sysidcfg /nfspool/s10P2V/root/etc/sysidcfg
# zoneadm -z s10P2V boot

この後、ゾーンに接続できます。

# zlogin s10P2V

パフォーマンス・チューニング

ここでは、P2V移行によって作成されたゾーンのI/Oパフォーマンスのチューニングについて説明します。CPUやネットワークの観点からは、ゾーンは他のOracle Solarisイメージと同じように振る舞うため、実行すべきゾーン固有のチューニングはありません。しかし、I/Oの観点では、ゾーンはファイル・システム上に存在するため、ファイル・システムをチューニングすることでパフォーマンスが向上します。

SuperClusterへのP2V移行の場合、もっとも重要なI/Oパフォーマンス・パラメータは、ゾーンパスのZFS recordsizecompressionです。さらに、ゾーンがSun ZFS Storage 7320 Applianceに配置されている場合は、NFS rsizewsizeも非常に重要です。

固定長のファイル・アクセスを実行するデータベースやアプリケーションをソース・サーバーがホストしている場合は、ZFS recordsizeがこのサイズに合うようにチューニングする必要があります。たとえば、レコード・サイズが4kのデータベースをホストしている場合は、ZFS recordsizeを4kに設定します。

ゾーンパスの配置先がローカルのHDDであるかSun ZFS Storage 7320 Applianceであるかにかかわらず、ZFS圧縮によって、同期的なI/O操作のパフォーマンスが向上します。また、ゾーンパスがSun ZFS Storage 7320 Appliance上にある場合は、非同期的なI/O操作も向上します。これらのタイプのワークロードでは、ゾーンパスのcompressiononに設定することが推奨されます。ゾーンパスがローカルのHDD上にある場合の非同期的なI/O操作については、パフォーマンスの向上はそれほど重要ではありません。

例:Oracle Database 10gを実行するOracle Solaris 8サーバーの統合

ここでは、Oracle Database 10.2.0.5を実行するOracle Solaris 8サーバーからOracle Solaris 10を実行するアプリケーション・ドメインにホストされるOracle Solaris 8へのP2V移行について説明します。データベースのデータはファイバ・チャネル経由で接続された接続ストレージに配置されています。このストレージ上にはOracle Automatic Storage Managementファイル・システムが作成されています。

ソース・システムで、FLARイメージ・ファイルの作成前に、oracleユーザーとしてデータベース・リスナーとOracle Automatic Storage Managementインスタンスを停止します(リスト9を参照)。

$ sqlplus "/as sysdba"

SQL*Plus:Release 10.2.0.5.0 - Production on Sun Aug 26 13:19:48 2012
Copyright (c) 1982, 2010, Oracle.All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown immediate

$ export ORACLE_SID=+ASM
$ sqlplus "/as sysdba"

SQL*Plus:Release 10.2.0.5.0 - Production on Sun Aug 26 13:21:38 2012
Copyright (c) 1982, 2010, Oracle.All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown
ASM diskgroups dismounted
ASM instance shutdown

$ lsnrctl stop

LSNRCTL for Solaris:Version 10.2.0.5.0 - Production on 26-AUG-2012 13:23:49
Copyright (c) 1991, 2010, Oracle.All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
The command completed successfully

リスト9

データベースとOracle Automatic Storage Managementが停止したら、rootとしてFLARイメージ・ファイルを作成し、アプリケーション・ドメインにコピーします。次の例では、-Sはディスク領域検査をスキップすること、およびアーカイブ・サイズをアーカイブに書き込まないことを示します。この結果、アーカイブ作成時間が大幅に短縮されます。また、-nオプションにはイメージ名を、-Lオプションにはアーカイブ形式を指定します。

# flarcreate -S -n s8-system -L cpio /var/tmp/s8-system.flar

この時点で、SANストレージを移管して、SPARC Tシリーズ・サーバーに接続します。次に、制御ドメインから、LUN(/dev/dsk/c5t40d0s6)をアプリケーション・ドメインs10u10-EIS2-1で利用できるようにします。

# ldm add-vdsdev /dev/dsk/c5t40d0s6 oradata@primary-vds0
# ldm add-vdisk oradata oradata@primary-vds0 s10u10-EIS2-1

:LUNはサーバーごとに異なる名前で表示される可能性があります。

アプリケーション・ドメインで、このLUNが認識されます。

# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
       ...
       1. c0d2 <SUN-DiskSlice-408GB cyl 52483 alt 2 hd 64 sec 255>
          /virtual-devices@100/channel-devices@200/disk@2

これで、ゾーンを作成できるようになりました。

:ゾーンの作成前に、Oracle Solaris Legacy Containersソフトウェアがドメインにインストールされていることを確認してください。

zonecfgを使用して、solaris8ブランド・ゾーン(s8-10gr2)を構成します。リスト10に、構成完了後のzonecfg -z s8-10gr2 infoの出力を示します。

zonename: s8-10gr2
zonepath:/cpool/s8-10gr2
brand: solaris8
autoboot: true
bootargs:
pool:
limitpriv: default,proc_priocntl,proc_lock_memory
scheduling-class:FSS
ip-type: exclusive
hostid:
net:
        address not specified
        physical: ixgbe1
        defrouter not specified
device
        match:/dev/rdsk/c0d2s0
attr:
        name: machine
        type: string
        value: sun4u

リスト10

引き続きアプリケーション・ドメインで、zoneadmを使用してこのゾーンをインストールして起動します。-pを指定することで、Oracle Solaris 8イメージの構成が維持されます。また、-aにアーカイブの場所を指定します。

# zoneadm -z s8-10gr2 install -p -a /var/temp/s8-system.flar
...
# zoneadm -z s8-10gr2 boot

これでゾーンが起動され、zlogin s8-10gr2を使用してゾーンに接続できるようになりました。rootとして、RAWデバイスの所有権を変更します。また、oracleとして、Oracle Automatic Storage Managementとデータベースを起動します(リスト11を参照)。

# chown oracle:dba /dev/rdsk/c0d2s0
# su - oracle
$ lsnrctl start
...

$ export ORACLE_SID=+ASM
$ sqlplus / as sysdba

SQL*Plus:Release 10.2.0.5.0 - Production on Sun Aug 26 14:36:44 2012
Copyright (c) 1982, 2010, Oracle.All Rights Reserved.
Connected to an idle instance.

SQL> startup
ASM instance started

Total System Global Area  130023424 bytes
Fixed Size                  2050360 bytes
Variable Size             102807240 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

$ export ORACLE_SID=ORA10
$ sqlplus / as sysdba

SQL*Plus:Release 10.2.0.5.0 - Production on Sun Aug 26 14:37:13 2012
Copyright (c) 1982, 2010, Oracle.All Rights Reserved.
Connected to an idle instance.

SQL> startup
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size                  2052448 bytes
Variable Size             385879712 bytes
Database Buffers         1207959552 bytes
Redo Buffers               14721024 bytes
Database mounted.
Database opened.

リスト11

まとめ

Oracle Solaris ZonesはOracle SuperCluster T5-8に完全にサポートされ統合されます。また、Oracle Solarisに搭載されたP2V移行ツールを使用すれば、Oracle SuperCluster T5-8上の仮想マシンへの物理サーバーの統合が格段に容易になります。

エンジニアド・システムであるSuperClusterには、構成の観点で数多くの柔軟性が備わっています。たとえば、Oracle Solaris ZonesはP2V移行での最適な媒体となります。Oracle Solaris Zonesは、ネットワークの分離を含む強力な分離を実現します。また、プラットフォームのライセンス・コストを最適化するために使用できます。それと同時に、Oracle Solaris Zonesを使用すれば、仮想化のオーバーヘッドが最小限に抑えられます。

ネイティブのOracle Solaris Zonesに対しては、SuperClusterの四半期ごとのフルスタック・ダウンロード可能パッチによるパッチ適用とアップデートが可能です。

SuperClusterに搭載されるオラクルのSun ZFS Storage 7320 Applianceは、Oracle Solaris Zonesに大規模な冗長ストレージを提供します。この共有ストレージにインストールしたゾーンは、SuperClusterの異なる複数のドメインおよびコンピューティング・ノード間で迅速に移行できます。Oracle Solaris Zonesは、10GbEクライアント・アクセス・ネットワークおよびInfiniBand I/Oファブリックに接続できます。IPネットワーク・マルチパスによってネットワークの冗長性を確保でき、また、VLANを使用して、既存のデータセンター・ネットワーク内でシームレスな統合を実現できます。

Oracle SuperCluster T5-8のスケーラビリティに優れたコンピューティング・リソースを使用することで、多数のOracle Solaris Zonesをこのプラットフォーム上で実行できます。また、強力なデータベースによって、同時に実行される多数のアプリケーションのロードを維持できます。

これらの統合機能があるため、Oracle SuperCluster T5-8はサーバー統合に最適なプラットフォームと言えます。

関連項目

著者について

Thierry ManféはオラクルおよびSun Microsystemsに15年以上勤めてきました。現在はOracle SuperCluster EngineeringグループのPrincipal Engineerです。

リビジョン1.0、2013/09/11

オラクルの最新情報をフォロー:
ブログ | Facebook | Twitter | YouTube