Oracleデータベースの導入で考慮すべき要素
パブリッククラウドには、コンピューティングとストレージに多数の選択肢があり、適切なタイプのコンピューティングインスタンスとストレージエンジンを使用することで、データベースの導入を開始できます。また、Oracleデータベース用に最適化されたコンピューティングとストレージの構成も選択する必要があります。
以降のセクションでは、Azure NetApp Files ストレージを使用してAzure仮想マシンインスタンス上のAzureパブリッククラウドにOracleデータベースを導入する場合の主な考慮事項について説明します。
VMのタイプとサイジング
パブリッククラウドのリレーショナルデータベースのパフォーマンスを最適化するには、適切なVMタイプとサイズを選択することが重要です。Azure仮想マシンは、Oracleデータベースワークロードのホストに使用できるさまざまなコンピューティングインスタンスを提供します。Microsoftのドキュメントを参照してください "Azureの仮想マシンのサイズ" を参照してください。一般に、Oracleデータベースの導入には汎用のAzure仮想マシンを使用することを推奨します。大規模なOracleデータベースを導入する場合は、メモリ向けに最適化されたAzure VMが適しています。使用可能なRAMが増えれば、Oracle SGAまたはスマートフラッシュキャッシュのサイズを増やして、物理I/Oを削減するように設定することも、データベースのパフォーマンスを向上させることもできます。
Azure NetApp Files は、Azure仮想マシンに接続されたNFSマウントとして機能します。これにより、スループットが向上し、ローカルストレージでストレージ向けに最適化されたVMのスループット制限を克服できます。したがって、Azure NetApp Files 上でOracleを実行すると、ライセンス可能なOracle CPUコア数とライセンスコストを削減できます。を参照してください "TR-4780:『Oracle Databases on Microsoft Azure』"、セクション7 - Oracleライセンスの仕組み
その他に考慮すべき要素は次のとおりです。
-
ワークロードの特性に基づいて、正しいvCPUとRAMの組み合わせを選択してください。VMのRAMサイズが大きくなると、vCPUコア数も増加します。Oracleのライセンス料はvCPUコア数に基づいて課金されるため、ある時点でバランスを取る必要があります。
-
VMにスワップスペースを追加する。デフォルトのAzure VM環境ではスワップスペースは作成されませんが、これはデータベースには最適な方法ではありません。
Azure NetApp Files のパフォーマンス
Azure NetApp Files ボリュームは容量プールから割り当てられます。Azure NetApp Files ストレージアカウントでプロビジョニングする必要があります。各容量プールは次のように割り当てられます。
-
全体的なパフォーマンス機能を定義するサービスレベルへの階層化。
-
その容量プール用に最初にプロビジョニングされたストレージ容量または階層化。プロビジョニングされたスペースあたりの全体的な最大スループットを定義するサービス品質(QoS)レベル。
サービスレベルと初期プロビジョニングされるストレージ容量によって、特定のOracleデータベースボリュームのパフォーマンスレベルが決まります。
1. Azure NetApp Files のサービスレベル
Azure NetApp Files は、Ultra、Premium、Standardの3つのサービスレベルをサポートします。
-
* Ultraストレージ。*この階層は、割り当てられたボリュームクォータ1TiBあたり最大128MiBpsのスループットを提供します。
-
* Premiumストレージ。*この階層は、割り当てられたボリュームクォータ1TiBあたり最大64MiBpsのスループットを提供します。
-
*標準ストレージ。*この階層は、割り当てられたボリュームクォータの1TiBあたり最大16MiBpsのスループットを提供します。
2.容量プールとサービス品質
必要な各サービスレベルには、プロビジョニングされた容量に関連するコストがあり、プロビジョニングされたスペースの全体的な最大スループットを定義するサービス品質(QoS)レベルが含まれています。
たとえば、サービスレベルがPremiumの10TiBのプロビジョニング済みシングル容量プールは、この容量プール内のすべてのボリュームの合計スループットを10倍64MBpsにするため、640、000(16K)IOPSで40、000(8K)IOPSになります。
プールの最小サイズは4TiBです。ストレージのニーズとコストを管理するためにワークロードの要件が変化した場合は、1TiB単位で容量プールのサイズを変更できます。
3.データベース・ボリュームでのサービス・レベルを計算します
Oracleデータベースボリュームのスループットの制限は、ボリュームが属する容量プールのサービスレベルとボリュームに割り当てられたクォータの各要素の組み合わせによって決まります。
次の図に、Oracleデータベースボリュームのスループット制限の計算方法を示します。
例1では、Premiumストレージ階層で2TiBのクォータが割り当てられた大容量プールのボリュームのスループット制限は、128MiBps(2TiB×64MiBps)になります。このシナリオは、容量プールのサイズや実際のボリューム消費量に関係なく適用されます。
例2では、Premiumストレージ階層から100GiBのクォータが割り当てられた大容量プールのボリュームに、スループットの制限が6.25MiBps(0.09765625TiB * 64MiBps)に割り当てられます。このシナリオは、容量プールのサイズや実際のボリューム消費量に関係なく適用されます。
最小ボリュームサイズは100GiBです。
ストレージのレイアウトと設定
次のストレージレイアウトを推奨します。
-
小規模データベースでは、すべてのOracleファイルに対して単一ボリュームのレイアウトを使用します。
-
大規模なデータベースの場合、ボリュームのレイアウトとしてOracleデータ用と重複する制御ファイル用、Oracleアクティブログ、アーカイブログ、および制御ファイル用のボリュームを1つずつ複数使用することを推奨します。データベースを新しいホストに再配置して迅速にリストアできるように、ローカルドライブではなくOracleバイナリにボリュームを割り当てることを強く推奨します。
NFS の設定
最も一般的なオペレーティングシステムであるLinuxには、ネイティブのNFS機能が含まれています。Oracleは、Oracleにネイティブに統合されたDirect NFS(dNFS)クライアントを提供しています。Oracle dNFSはOSキャッシュをバイパスし、並列処理を可能にしてデータベースのパフォーマンスを向上させます。Oracleでは20年以上NFSv3がサポートされており、NFSv4はOracle 12.1.0.2以降でサポートされています。
Oracle 11g以降で使用可能なdNFSを使用したAzure Virtual Machineで実行されるOracleデータベースは、ネイティブのNFSクライアントよりも大幅に多くのI/Oを処理できます。NetApp Automation Toolkitを使用したOracleの自動導入で、NFSv3ではdNFSが自動的に設定されます。
次の図は、Oracle dNFSを使用したAzure NetApp Files のSLOBベンチマークを示しています。
その他の考慮事項:
-
TCPスロットテーブルは、ホストバスアダプタ(HBA)キュー深度に相当するNFS環境の機能で、一度に未処理となることのできるNFS処理の数を制御します。デフォルト値は通常16ですが、最適なパフォーマンスを得るには小さすぎます。逆に、新しいLinuxカーネルでTCPスロットテーブルの上限をNFSサーバが要求でいっぱいになるレベルに自動的に引き上げることができるため、問題が発生します。
パフォーマンスを最適化し、パフォーマンスの問題を回避するには、TCPスロットテーブルを制御するカーネルパラメータを128に調整します。
sysctl -a | grep tcp.*.slot_table
-
次の表に、Linux NFSv3の単一インスタンスに対する推奨されるNFSマウントオプションを示します。
dNFSを使用する前に、Oracleドキュメント1495104.1に記載されているパッチがインストールされていることを確認してください。NFSv3とNFSv4のネットアップサポートマトリックスには、特定のオペレーティングシステムは含まれていません。RFCに準拠するすべてのOSがサポートされます。オンラインのIMT でNFSv3またはNFSv4のサポートを検索する場合は、一致するOSが表示されないため、特定のOSを選択しないでください。すべてのOSは、一般ポリシーで暗黙的にサポートされています。 |