※本ページは、”Exascale Storage Fundamentals“の翻訳です。

(訳注:本記事はオンプレミス環境のExascaleでの内容になります。Exadata Cloud 環境の Exascale 環境には適用されません。)


Exascaleは、マルチテナンシ、リソース・プーリング、エラスティック・データベース・インフラストラクチャと、データ・インテリジェントなExadataストレージ、リモート・ダイレクト・メモリー・アクセス(RDMA)のパフォーマンスを組み合せた次世代のストレージ管理です。この記事シリーズは、Exascaleの基礎を紹介することで、すぐに開始できるようにすることを目的としています。この記事では、物理ディスクからデータベースファイルまで、ExadataストレージがExascaleによってどのように管理されているかをデモンストレーションを通して示します。

最下位レイヤーであるストレージ・サーバー内の物理ドライブのストレージ・メディアから始めましょう。物理ドライブは、グリッド・ディスクまたはプール・ディスクとしてパーティション化され、フォーマットされます。ストレージ・プールは、同じストレージ・サーバー・タイプ(HCまたはEF)のプール・ディスクのコレクションです。Exascaleボールトはメタデータで、データベースまたは仮想マシンで利用されるストレージ・プール、フラッシュ・キャッシュ、RDMAメモリー、フラッシュ・ログをどのように使用するかに関するルールと割当ての集合であす。テンプレートは、各データベース・ファイルのタイプ毎に冗長性とストレージ・メディア・タイプ、ブロックをディスクに書き込むために使用するパフォーマンス・プロファイルを決定します。

Oracle Exadata Data Storage Components

ストレージ・メディア

ExascaleストレージはExadataストレージ・サーバーによって提供され、各ストレージ・デバイスはメディア・タイプに従って分類されます。サポートされているメディア・タイプは次のとおりです。

  • High Capacity (HC)– ハードディスクドライブ(HDD)を使用する大容量ストレージメディアを識別
  • Extreme Flash (EF)– 容量最適化フラッシュ・デバイスを使用する極端なフラッシュ・ストレージ・メディアを識別

ストレージ・サーバーのセル・ディスクを作成すると、Exadataシステム・ソフトウェアで使用する物理ディスクが予約されます。セル・ディスクは、物理ディスクと1対1の関係にあります。グリッド・ディスクまたはプール・ディスクを作成すると、ASMまたはExascaleで使用されるセル・ディスクの一部またはすべてが予約されます。グリッド・ディスクはASMディスク・グループに追加できます。プール・ディスクは、Exascaleストレージ・プールに追加できます。

プール・ディスク

Exascaleは、プール・ディスクとストレージ・プールを使用して、Exadataストレージ・サーバーによって提供される物理ストレージを編成します。プール・ディスクは、Exascaleで使用するために予約されているストレージ・サーバーのディスク割当てです。escliのlsgriddiskコマンドは、作成された、ExascaleクラスタからアクセスできるすべてのExadataグリッド・ディスクとプール・ディスクを表示します。この例では、プールディスクにはpoolの接頭辞のラベルが付けられています。DATA、RECOという接頭辞が付いたグリッド・ディスクもあります。これは、このストレージ・サーバーがASMディスク・グループでも使用されていることを示します。

@>lsgriddisk
size           diskType cellDisk               status name
3298534883328  HardDisk CD_00_cell01 active DATAC1_CD_00_cell01
3298534883328  HardDisk CD_01_cell01 active DATAC1_CD_01_cell01
...
2199023255552  HardDisk CD_00_cell01 active RECOC1_CD_00_cell01
2199023255552  HardDisk CD_01_cell01 active RECOC1_CD_01_cell01
...
14300596928512 HardDisk CD_00_cell01 active pool1_CD_00_cell01
14300596928512 HardDisk CD_01_cell01 active pool1_CD_01_cell01
...

Exascaleストレージ・プールに属するグリッド・ディスクのみを表示する場合は、問合せにフィルタ( –filter )を追加できます。ASMグリッド・ディスクでは、storagePool属性に値がありません。

@>lsgriddisk --filter storagePool
size           diskType cellDisk               status name
14300596928512 HardDisk CD_00_cell01 active pool1_CD_00_cell01
14300596928512 HardDisk CD_01_cell01 active pool1_CD_01_cell01
...

 

–detailパラメータを使用してプール・ディスクの詳細を表示すると、プール・ディスクとグリッド・ディスクの両方に共通する追加情報が表示されます。

@>lsgriddisk --detail --filter name="pool1_CD_00_cell01"
id                                   pool1_CD_00_cell01@cell01
name                                 pool1_CD_00_cell01
cachedBy                             FD_02_cell01
cachingPolicy                        default
cell                                 cell01
cellDisk                             CD_00_cell01
creationTime                         1970-01-01T00:00:00-00:00
diskType                             HardDisk
poolDiskStatus                       online
size                                 14300596928512
spaceUsed                            42147774464
status                               active
storagePool                          pool1
uuid                                 e09863fc-279a-48c3-924f-5a1a7eeeaf00

escliコマンドのlspooldiskコマンドは、lsgriddiskコマンドと同様の情報を表示しますが、プール・ディスクとして割り当てられたストレージ・パーティションのみを表示します。

@>lspooldisk --detail --count 1
id                                   148
name                                 cell01_.28_5042_8/pool1_CD_00_cell01
cellId                               73
gdName                               pool1_CD_00_cell01
healthy                              true
incarnation                          13
size                                 13.006317138671875T
state                                Uninitialized
status                               ONLINE
storagePool                          pool1

 

ストレージ・プール

ストレージ・プールは、Exascaleボールトと、ファイルの永続物理ストレージを提供するプール・ディスクの集合体です。各ストレージ・プールは、1つのストレージ・タイプのストレージ・メディア(High Capacity (HC)またはExtreme Flash (EF)のいずれか)のみを使用するプール・ディスクのコレクションです。ストレージメディアタイプが混在するプールディスクを使用してストレージプールを定義することはできません。

Exascaleクラスタには、1つ以上のストレージ・プールがあります。ストレージ・プールには、様々な世代のExadataストレージ・サーバー・ハードウェアに存在するプール・ディスクを含めることができます。これにより、新しい世代のExadataハードウェアに簡単に拡張できます。

escliコマンドのlsstoragepoolコマンドは、ストレージ・プールに関するかなりの詳細を表示します。この例では、Exascaleクラスタ内にpool1というストレージ・プールが1つのみ存在します。cellsCount属性およびdisksCount属性は、5つの異なるストレージ・サーバーがあり、その中に合計60個のグリッド・ディスクがこのストレージ・プールに割り当てられていることを示しています。mediaType属性は、このストレージ・プールが大容量(HC)ストレージ・ディスクで構成されていることを示します。

 

@>lsstoragepool --detail
id                                   pool1
name                                 pool1
cellOfflineTimerInMins               1440
cellsCount                           5
diskOfflineTimerInMins               120
disksCount                           60
flashCacheProvisionableSize          86.94542255174383171834051609039306640625T
flashCacheProvisionedSize            0
guid                                 4081be6e-e54f134d-dd230bf-d6722bd5
highDataStatus                       available
highRecoStatus                       available
inReconfig                           false
iopsProvisionable                    3520560
iopsProvisioned                      0
iopsRaw                              3520560
mediaType                            HC
normalDataStatus                     available
normalRecoStatus                     available
spaceProvisionable                   780.3790283203125T
spaceProvisioned                     50T
spaceRaw                             780.3790283203125T
spaceUsed                            2.572264492511749267578125T
sysDataStorePresent                  true
sysDataStoreShardsCount              20
xrmemCacheProvisionableSize          4.4261037441538064740598201751708984375T
xrmemCacheProvisionedSize            0

ファイル

Exascaleは、Oracle Database、Oracle Grid Infrastructureに関連付けられたファイルを直接格納および管理するように最適化されています。Exascaleは、管理しているファイルのタイプを自動的に理解します。ファイル・タイプに関連付けられたテンプレートを使用することで、Exascaleは適切なファイル・ストレージ属性を自動的に適用します。このプロセスは、ファイルを格納するストレージプールを間接的に判断します。ASMとは異なり、Exascaleでは、異なる冗長性、パフォーマンス、ディスク配置特性を必要とするファイルのディスク・グループなどの個別の記憶域エンティティは必要ありません。たとえば、データファイルには、高冗長性の特性、大容量ディスク・ストレージへの配置、オンライン・ログ・ファイルから個別の物理ドライブに配置されるエクステントを割り当てることができます。オンライン・ログ・ファイルには、高冗長性の特性、容量最適化フラッシュ・ストレージへの配置、データファイルとは別の物理ドライブに配置されるエクステントを割り当てることができます。これらのファイルはどちらも同じ論理ストレージ・コンテナ(Exascale ボールト)に作成でき、エクステントがストレージに書き込まれる場所と読み取る方法はExascaleによって処理されます。

Exascale ボールト

Exascaleボールトは、ストレージ・サーバーによって提供されるストレージ・リソースをグループ化および制限する論理コンテナです。管理者およびOracle Databaseにとって、Exascaleボールトはファイルを含む最上位ディレクトリのように表示されます。完全修飾Exascaleファイル・パスは、常にアンパサンド(@)文字とボールト名で始まり、その後に残りのファイル・パス(@MYVAULT/myexample/myfilenameなど)が続きます。

Exascaleボールト(およびそのボールトにアクセスできるすべてのデータベース/VM)は、デフォルトで、クラスタ内のすべてのストレージ・プール内のすべてのストレージ・リソースを使用できます。たとえば、次の例のExascaleクラスタには、HCストレージ・プールとEFストレージ・プールの両方があります。属性なしでMYVAULT_ALLボールトを作成すると、両方のストレージ・プールのすべての容量およびパフォーマンス・リソースにアクセスできます。

 

@>mkvault MYVAULT_ALL
Vault @MYVAULT_ALL created.
 
@>lsvault --detail MYVAULT_ALL
id                                   MYVAULT_ALL
flashCacheProv                       unlimited
flashLogProv                         true
iopsProvEF                           unlimited
iopsProvHC                           unlimited
spaceProvEF                          unlimited
spaceProvHC                          unlimited
xrmemCacheProvEF                     unlimited
xrmemCacheProvHC                     unlimited

escliコマンドのmkvault MYVAULT_HC_UNLIMITED –attributes spaceProvHC=unlimitedは、spaceProvHC属性を追加することで、Exascaleボールトからアクセス可能なストレージ・リソースのタイプと量を制限します。Vault属性は、ストレージ・プールごとに明示的です。つまり、mkvaultコマンドに属性を追加すると、ボールトはそれらのストレージ・プール・リソースのみに制限されます。MYVAULT_HC_UNLIMITEDボールトは、spaceProvHC=unlimited属性を追加することで、HCストレージ・プールの容量とパフォーマンス・リソースにのみ無制限にアクセスできます。または、mkvault MYVAULT_HC_UNLIMITED –attributes spaceProvEF=0、iopsProvEF=0コマンドでも同じ結果が得られます。

@>mkvault MYVAULT_HC_UNLIMITED --attributes spaceProvHC=unlimited
Vault @MYVAULT_HC_UNLIMITED created.
 
@>lsvault --detail MYVAULT_HC_UNLIMITED
id                                   MYVAULT_HC_UNLIMITED
flashCacheProv                       unlimited
flashLogProv                         true
iopsProvEF                           0
iopsProvHC                           unlimited
spaceProvEF                          0
spaceProvHC                          unlimited
xrmemCacheProvEF                     0
xrmemCacheProvHC                     unlimited

 

属性を追加すると、Exascaleボールトで使用可能なストレージ・リソースがさらに制限されます。

@>mkvault MYVAULT_HC_LIMITED --attributes spaceProvHC=1T,iopsProvHC=1000000,flashCacheProv=500G,xrmemCacheProvHC=500G
Vault @MYVAULT_HC_LIMITED created.
 
@>lsvault --detail MYVAULT_HC_LIMITED
id                                   MYVAULT_HC_LIMITED
flashCacheProv                       500G
flashLogProv                         true
iopsProvEF                           0
iopsProvHC                           1000000
spaceProvEF                          0
spaceProvHC                          1T
xrmemCacheProvEF                     0
xrmemCacheProvHC                     500G

テンプレート

Exascaleテンプレートは、ファイル・ストレージ属性設定の名前付きコレクションです。Exascaleでファイルが作成されると、そのファイル・タイプに関連付けられたテンプレートによって、ファイルの格納方法と管理方法が決まります。

テンプレートは次の2つのレベルで定義されます。

クラスタ・テンプレートはクラスタ・レベルで定義されます。クラスタ・テンプレートは、それをオーバーライドするボールト・レベルのテンプレートが存在しない場合に使用されます。
ボールト・テンプレートはボールトレベルで定義されます。ボールト・テンプレートは、対応するクラスタ・テンプレートをオーバーライドするボールト固有の属性を定義します。
テンプレートでは、冗長性、メディア・タイプ、コンテンツ・タイプを定義します。次に、見慣れたファイル・タイプ・テンプレートの一部を示します。

 

@>lstemplate --cluster
redundancy mediaType contentType name
high       HC        RECO        ARCHIVELOG
high       HC        DATA        DATAFILE
high       HC        DATA        ONLINELOG
high       HC        DATA        PARAMETERFILE
high       HC        DATA        PASSWORD
...

ボールトが作成されると、クラスタ・テンプレートが使用されますが、ボールト・テンプレートを作成することで、ボールト・レベルで各テンプレートをオーバーライドできます。たとえば、データファイルがEF記憶域に格納されるように、MYVAULT_HC_AND_EF_UNLIMITEDボールトのDATAFILEテンプレートをオーバーライドできます。

@>mktemplate --vault MYVAULT_HC_AND_EF_UNLIMITED --file-type DATAFILE --media-type EF --redundancy high --content-type DATA
Template created: MYVAULT_HC_AND_EF_UNLIMITED/DATAFILE

 

クラスタ・レベル・テンプレートをオーバーライドするボールト・レベルのDATAFILEテンプレートが1つあることがわかります。

@>lstemplate --vault-level-only --vault MYVAULT_HC_AND_EF_UNLIMITED
redundancy mediaType contentType name
high       EF        DATA        DATAFILE

 

表領域がMYVAULT_HC_UNLIMITEDボールトに作成されると、そのデータファイルはクラスタ・レベルのDATAFILEテンプレートに従って格納され、データファイルはHCストレージ・プールに格納されます。表領域がMYVAULT_HC_AND_EF_UNLIMITEDボールトに作成されると、そのデータファイルはボールト・レベルのDATAFILEテンプレートに従って格納され、データファイルはEFストレージ・プールに格納されます。

@>ls @MYVAULT_HC_UNLIMITED/ --attributes id,contentType,fileType,mediaType
id                                                      contentType fileType mediaType
@MYVAULT_HC_UNLIMITED/.../DATAFILE/MYTBSHC.OMF.776DDAB1 DATA        DATAFILE HC
@MYVAULT_HC_UNLIMITED/.../DATAFILE/MYTBSHC.OMF.074E62A8 DATA        DATAFILE HC
@MYVAULT_HC_UNLIMITED/.../DATAFILE/MYTBSHC.OMF.0331B5F7 DATA        DATAFILE HC
 
@>ls @MYVAULT_HC_AND_EF_UNLIMITED/ --attributes id,contentType,fileType,mediaType
id                                                      contentType fileType mediaType
@MYVAULT_HC_AND_EF_UNLIMITED/.../DATAFILE/MYTBSEF.OMF.6B04ABFE DATA        DATAFILE EF
@MYVAULT_HC_AND_EF_UNLIMITED/.../DATAFILE/MYTBSEF.OMF.3A3B1E63 DATA        DATAFILE EF
@MYVAULT_HC_AND_EF_UNLIMITED/.../DATAFILE/MYTBSEF.OMF.0D42E7F8 DATA        DATAFILE EF

 

次のステップ

Exadata Exascaleは、コンテナ・データベース(CDB)、スマート・スキャン、Real Application Clusters (RAC)、Exadata自体など、以前から利用可能な画期的なイノベーションと同様に、データベースのパフォーマンスとスケーラビリティにアプローチするための強力な新しい方法を導入しています。Exascaleは豊富な新機能を提供し、最適化と効率化のためのエキサイティングな可能性を開きます。この一連のExascale記事は、あなたの旅をスムーズにするために設計されており、Exascaleテクノロジの潜在能力を迅速に活用するのに役立ちます。

Exadata Exascaleシリーズ