5 EDVとのExascaleブロック・ストレージの使用

このトピックでは、Exascaleブロック・ストレージをExascaleダイレクト・ボリューム(EDV)とともに使用する手順の概要を示します。

Exascaleブロック・ストアは、Exascaleストレージに基づいて任意のサイズのRAWブロック・ボリュームを作成および管理する機能を提供します。

EDVは、クライアントがExadata RDMAネットワーク・ファブリック内のストレージ・ボリュームを使用するユースケースにお薦めします。次に例を示します:

  • EDVを使用すると、Exadataコンピュート・ノード上のOracle Advanced Cluster File System (ACFS)またはローカルLinuxファイル・システム(XFS、EXT4など)をサポートできます。

  • EDV RAWデバイスを使用すると、Exascaleでネイティブにサポートされていない以前のOracle Databaseバージョンをサポートできます。たとえば、EDV RAWデバイスに基づいてOracle ASMディスク・グループを作成し、そのディスク・グループを使用してOracle Databaseデータ・ファイルを含めることができます。あるいは、EDVボリューム上にファイル・システムを作成し、それを使用してOracle Databaseソフトウェアおよびデータ・ファイルを含めることができます。

Exascaleブロック・ストレージをEDVとともに使用する前に、次の点に注意してください:

  • ブロック・ストア・マネージャ(BSM)およびブロック・ストア・ワーカー(BSW)の各サービスは、Exascaleクラスタで実行されている必要があります。

    Exascaleクラスタで実行されているExascaleストレージ・サービスに関する情報を表示するには、ESCLI lsserviceコマンドを使用します。次に例を示します:
    @> lsservice --detail
  • Exascaleダイレクト・ボリューム(EDV)サービスは、EDVアタッチメントをホストする各Exadataコンピュート・ノードで実行されている必要があります。クラスタ全体のアタッチメントを使用する予定の場合、EDVサービスは、Oracle Grid Infrastructure (GI)クラスタのすべてのノードで実行されている必要があります。

    クライアント側Exascaleサービス(Exascaleノード・プロキシ(ESNP)やExascaleダイレクト・ボリューム(EDV)など)に関する情報を表示するには、次のようにDBMCLI LIST DBSERVERコマンドを使用します:
    DBMCLI> list dbserver detail
    コマンド出力には、Exadataコンピュート・ノードで実行されているすべてのクライアント側Exascaleサービスに関するステータス情報が表示されます。コマンドは、各コンピュート・ノードで個別に実行する必要があります。
  • Oracle Exadata Deployment Assistant (OEDA)を使用した初期システム・デプロイメント時に、Exascale Direct Volume (EDV)サービスが各Exadataコンピュート・ノード(ベア・メタルまたはVM)に構成され、Oracle Grid Infrastructure (GI)クラスタを管理するExascaleユーザーの権限で実行されます。EDVアタッチメントを作成するには、EDVサービスにリンクされたExascaleユーザーを使用する必要があります。

    GIクラスタがOracle OSユーザー・アカウントを1つ含む非ロール別ユーザー構成を使用する場合、関連付けられたExascaleユーザーはEDVサービスに関連付けられます。GIクラスタがGrid OSユーザー・アカウントおよびOracle OSユーザー・アカウントを含むロール別構成を使用する場合、EDVサービスはGrid OSアカウントに関連付けられたExascaleユーザーにリンクされます。

    EDVサービスにリンクされたExascaleユーザーを検出するには、ESCLI lsinitiatorコマンドを--detailオプションとともに使用し、user属性を調べます。

最初に、Exascaleブロック・ボリュームおよびEDVアタッチメントを作成できます。

次に例を示します:

@>mkvault my-vault
Vault @my-vault created.

@>mkvolume 1g --attributes name=edv1 --vault my-vault
Created volume with id vol0002_7eb2b5cc5d1a47f09abed0fa83514a36

@>lsvolume vol0002_7eb2b5cc5d1a47f09abed0fa83514a36 --detail
id                                   vol0002_7eb2b5cc5d1a47f09abed0fa83514a36
name                                 edv1
bandwidthProvisioned                 unlimited
contentType                          DATA
creationTime                         2025-06-06T05:06:46+00:00
filePath                             @my-vault/vol.e2173df2021a4368bbf986483f8332b8
iopsProvisioned                      unlimited
mediaType                            HC
numAttachments                       0
owners                               exa01
redundancy                           high
size                                 1G
state                                AVAILABLE
vault                                @my-vault

@>lsinitiator --detail
id                                   e7e0db8c-9a2a-0279-e7e0-db8c9a2a0279
edvBaseDriverVersion                 25.2.0.0.0.250602
edvEffectiveDriverVersion            25.2.0.0.0.250602
giClusterId                          deadbeef-badc-0fee-dead-beefbadc0fee
giClusterName                        edvTestCluster
hostName                             exa01
lastHeartbeat                        2025-06-06T05:08:20+00:00
registerTime                         2025-06-03T07:41:10+00:00
state                                ONLINE
user                                 exa01
version                              25.2.0.0.0.250602

@>mkvolumeattachment vol0002_7eb2b5cc5d1a47f09abed0fa83514a36 my-edv1 --attributes giClusterId=deadbeef-badc-0fee-dead-beefbadc0fee
Created edv attachment with id att0001_9deed3d3f7f944838f5767151d9f06de

@>lsvolumeattachment att0001_9deed3d3f7f944838f5767151d9f06de --detail
id                                   att0001_9deed3d3f7f944838f5767151d9f06de
attachTime                           2025-06-06T05:11:20+00:00
deviceName                           my-edv1
devicePath                           /dev/exc/my-edv1
giClusterId                          deadbeef-badc-0fee-dead-beefbadc0fee
giClusterName                        edvTestCluster
hostName
initiator
kernelDeviceName                     exc-dev1
logicalSectorSize                    512
volume                               vol0002_7eb2b5cc5d1a47f09abed0fa83514a36
volumeSnapshot

@>

EDVアタッチメントは、ボリュームと、アタッチメントをホストするExadataコンピュート・ノード上にあるEDVデバイス・ファイルとの間のアソシエーションを作成します。EDVアタッチメントをホストするノードは、EDVイニシエータとも呼ばれます。クラスタ全体のアタッチメントを作成すると、Oracle Grid Infrastructure (GI)クラスタのすべてのノードにEDVデバイス・ファイルが作成されます。ノード固有のアタッチメントを作成すると、対応するEDVデバイスはそのノードにのみ作成されます。

この例では、EDVアタッチメントはクラスタ全体のアタッチメントです。EDVデバイス名はmy-edv1であるため、対応するデバイス・ファイルは各クラスタ・ノードの/dev/exc/my-edv1にあります。ボリュームの作成中に、ボリューム識別子(vol0002_7eb2b5cc5d1a47f09abed0fa83514a36)がユーザーに報告されました。ボリューム識別子は、ESCLI lsvolumeコマンドを使用して検出することもできます。GIクラスタ識別子(deadbeef-badc-0fee-dead-beefbadc0fee)は、ESCLI lsinitiatorコマンドを使用して検出されました。

あるいは、ノード固有のアタッチメントの場合、GIクラスタ識別子ではなくノード固有のEDVイニシエータ識別子を指定する必要があります。次に例を示します:


@>lsinitiator --detail
id                                   e7e0db8c-9a2a-0279-e7e0-db8c9a2a0279
edvBaseDriverVersion                 25.2.0.0.0.250602
edvEffectiveDriverVersion            25.2.0.0.0.250602
giClusterId                          deadbeef-badc-0fee-dead-beefbadc0fee
giClusterName                        edvTestCluster
hostName                             exa01
lastHeartbeat                        2025-06-06T05:21:18+00:00
registerTime                         2025-06-03T07:41:10+00:00
state                                ONLINE
user                                 exa01
version                              25.2.0.0.0.250602

@>mkvolumeattachment vol0002_7eb2b5cc5d1a47f09abed0fa83514a36 my-edv1 --attributes initiator=e7e0db8c-9a2a-0279-e7e0-db8c9a2a0279
Created edv attachment with id att0001_4118794cebae49d6836139b34df08b6b

@>lsvolumeattachment att0001_4118794cebae49d6836139b34df08b6b --detail
id                                   att0001_4118794cebae49d6836139b34df08b6b
attachTime                           2025-06-06T05:22:47+00:00
deviceName                           my-edv1
devicePath                           /dev/exc/my-edv1
giClusterId
giClusterName
hostName                             exa01
initiator                            e7e0db8c-9a2a-0279-e7e0-db8c9a2a0279
kernelDeviceName                     exc-dev1
logicalSectorSize                    512
volume                               vol0002_7eb2b5cc5d1a47f09abed0fa83514a36
volumeSnapshot

@>

アタッチ後、EDVデバイスは、アタッチメントをホストするExadataコンピュート・ノードまたはGIクラスタで使用できます。

たとえば、次のコマンド・シーケンスを使用して、前述の例で定義されたEDVデバイス(/dev/exc/my-edv1)を使用してACFSファイル・システムを作成およびマウントできます:

# # Confirmation of the EDV device at /dev/exc/my-edv1.
# lsblk /dev/exc/my-edv1
NAME     MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
exc-dev1 251:1    0   1G  0 disk
# # Note the default ownership and permissions for the EDV device.
# ls -l /dev/exc/my-edv1
brw-rw---- 2 root disk 251, 1 Jun  6 05:11 /dev/exc/my-edv1
# # Now use the device to support ACFS.
# mkfs -t acfs /dev/exc/my-edv1
mkfs.acfs: version                   = 23.0.0.0.0
mkfs.acfs: ACFS compatibility        = 23.0.0.0.0
mkfs.acfs: on-disk version           = 53.0
mkfs.acfs: volume                    = /dev/exc/my-edv1
mkfs.acfs: volume size               = 1073741824  (   1.00 GB )
mkfs.acfs: file system size          = 1073741824  (   1.00 GB )
mkfs.acfs: Format complete.
# mkdir /mnt/my-acfs1
# mount /dev/exc/my-edv1 /mnt/my-acfs1
# df /mnt/my-acfs1
Filesystem       1K-blocks   Used Available Use% Mounted on
/dev/exc/my-edv1   1048576 318180    730396  31% /mnt/my-acfs1
#
# # Mount the file system on other cluster nodes as required.

ノート:

  • 各EDVアタッチメントには、/dev/exc-devNにカーネル・デバイス・ファイルもあります(Nは、デバイスのマイナー番号です)。カーネル・デバイス名はEDVアタッチメントの属性として含まれ、ESCLI lsvolumeattachmentコマンドを使用して確認できます。

    iostatなどのほとんどのLinuxツールでは/dev/exc-devNのカーネル・デバイス・ファイルが表示され、Exascaleコマンドではユーザー命名のデバイス・ファイル(/dev/exc/の下)が使用されることに注意してください。

    カーネル・デバイス・ファイルとユーザー命名デバイス・ファイルの関係もudevデータベースに記録され、次のLinuxコマンドを使用して確認できます:

    # udevadm info device-file

    udevadmコマンドでは、device-file値に対して、カーネル・デバイス・ファイル(/dev/exc-devN)またはユーザー命名デバイス・ファイル(/dev/exc/の下)を指定できます。

  • デフォルトでは、EDVデバイス・ファイルへの読取り/書込みアクセスは、rootオペレーティング・システム・ユーザーおよびdiskグループのメンバーのみが利用できます。ユースケースによっては、EDVデバイス・ファイルを使用する前に、ファイルに対する権限の変更が必要になる場合があります。

    たとえば、/dev/exc/my-volのEDVデバイス・ファイルをoracleユーザーおよびdbaグループによって読取り/書込み可能にするには、次のようなudevルールを使用して構成できます:

    # cat /etc/udev/rules.d/57-edv-user.rules
    KERNEL=="exc-*", ENV{EXC_ALIAS}=="my-vol", OWNER="oracle", GROUP="dba", MODE="0660"
  • EDVデバイスに関連するudevルールの管理を容易にするために、各EDVクライアント・ノードは、要件を満たすように変更できる/etc/udev/rules.d/57-edv-user.rulesのテンプレートudevルール・ファイルを使用して構成されます。既存のudevルールを維持するために、EDVクライアント・ソフトウェアが更新されるたびに、/etc/udev/rules.d/57-edv-user.rulesは保持されます。

  • 各EDVクライアント・ノードは、同時に最大3000個のアタッチメントのサポートが可能です。この制限には、サーバーに関連するすべてのクラスタ・アタッチメントの合計と、サーバーに固有のローカル・アタッチメントが含まれます。

EDV上のACFSファイル・システムは、ACFS HANFSを使用して、Exadata RDMAネットワーク・ファブリックの外部のクライアントにエクスポートすることもできます。ACFSの詳細は、『Oracle Advanced Cluster File System管理者ガイド』を参照してください。

EDVデバイスは、RAWデバイスとして使用することも、XFS、EXT4などの他のLinuxファイル・システムと組み合せて使用することもできます。