Thierry Manfé著(協力:Orgad Kimchi、Maria Frendberg、Mike Gerdts)
2013年9月公開
|
仮想化によって多数の物理サーバーを1つのプラットフォーム上に統合することを検討する企業が増加しています。汎用エンジニアド・システムであるOracle SuperClusterには次のような特徴があります。これらは、統合のニーズに対応するためには必須となる特徴です。
この記事では、Oracle Solaris Zonesを使用した既存サーバーのSuperClusterへの統合に関するアドバイスやベスト・プラクティス、実践的な手順を説明します。オペレーティング・システム・レイヤーと仮想化レイヤーに着目し、P2V移行プロセスや、この移行を容易にする関連ツールにも焦点を当てます。
この記事は、SuperClusterについてある程度の理解があり、P2V移行の知識を得てそのような移行を実施できるかを評価したいシステム管理者、アーキテクト、プロジェクト・マネージャーを対象としています。
SuperClusterは高い柔軟性を備え、仮想化および統合のための多数のオプションを提供します。以降の項では、現在の物理サーバーをSuperCluster上で統合するための最適な選択肢をすばやく識別するためのいくつかの質問を取り上げます。
Oracle SuperCluster T5-8は、Oracle Solarisリリース10およびリリース11をネイティブに実行します。これらのリリースを実行しているSPARCベースのサーバーについては、SuperCluster上でネイティブのOracle Solaris Zonesを使用して統合できます。Oracle Solarisリリース8およびリリース9を実行しているSPARCサーバーも、solaris8
とsolaris9
のブランド・ゾーンを使用して統合できます。
注:ネイティブ・ゾーンは、ホストしている大域ゾーンと同じOracle Solarisリリースを実行します。パフォーマンス面から推奨される構成は次のとおりです。ネイティブ・ゾーンでは最新のOracle Solarisリリースを使用し、非ネイティブ・ゾーンでは最新のハードウェア・プラットフォームやプロセッサを利用できないような過去のOracle Solarisバイナリを実行します。ネイティブ・ゾーンは、Oracle Solaris 10ではnative
ブランドを、Oracle Solaris 11ではsolaris
ブランドを使用します。
Oracle Solarisの各リリースに必要となるアップデート・リリースは次のとおりです。
solaris9
ブランド・ゾーンについて詳しくは、System Administration Guide: Oracle Solaris 9 Containersを参照してください。isainfo -b
を使用すれば、統合対象サーバーのアドレス空間のビット数(32または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つの選択肢があります。
これらの選択肢から選択する際に考慮すべきおもな条件は、I/Oパフォーマンスと管理性の2つです。
統合するソース・サーバーでまず確認すべきことは、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 export
とzpool 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に接続するストレージとネットワークは完全に冗長化されるためです。
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つのタイプがあります。
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つのネットワークが搭載されます。
ここでは、クライアント・アクセス・ネットワークへのゾーンの接続について取り上げます。必要になった場合、およびクライアント・アクセス・ネットワーク用の機能を使用する場合は、ゾーンをInfiniBandネットワークに接続することもできます。通常、Oracle Database 11g Release 2インスタンスを使用するアプリケーションをホストするゾーンは、InfiniBandに接続されます。
デフォルトでは、ゾーンは管理ネットワークに接続されます。VLANタギングを使用して、複数のゾーン間におけるネットワークベースの分離を強化することもできます。
各アプリケーション・ドメインは、最小で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(ixgbe0
とixgbe1
)、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
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つのコアを共有します。
ここでは、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
この手順では、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にコピーする準備が整いました。
この手順を実行する前に、ゾーンのインストール先をローカルのHDDとするかSun ZFS Storage 7320 Applianceとするかについて決定する必要があります。
ローカルの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つのスライス(s0
とs1
)に分割されています。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上にプールを作成するには、次の手順を実行します。
# 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の標準ポート# iscsiadm modify discovery -s enable
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
# 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 physical
がixgbe1
に設定されています。
# 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 recordsize
とcompression
です。さらに、ゾーンがSun ZFS Storage 7320 Applianceに配置されている場合は、NFS rsize
とwsize
も非常に重要です。
固定長のファイル・アクセスを実行するデータベースやアプリケーションをソース・サーバーがホストしている場合は、ZFS recordsize
がこのサイズに合うようにチューニングする必要があります。たとえば、レコード・サイズが4kのデータベースをホストしている場合は、ZFS recordsize
を4kに設定します。
ゾーンパスの配置先がローカルのHDDであるかSun ZFS Storage 7320 Applianceであるかにかかわらず、ZFS圧縮によって、同期的なI/O操作のパフォーマンスが向上します。また、ゾーンパスがSun ZFS Storage 7320 Appliance上にある場合は、非同期的なI/O操作も向上します。これらのタイプのワークロードでは、ゾーンパスのcompression
をon
に設定することが推奨されます。ゾーンパスがローカルのHDD上にある場合の非同期的なI/O操作については、パフォーマンスの向上はそれほど重要ではありません。
ここでは、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 |