5.1 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ダイレクト・ボリューム(EDV)サービスは、EDVアタッチメントをホストする各Exadataコンピュート・ノードで実行されている必要があります。クラスタ全体のアタッチメントを使用する予定の場合、EDVサービスは、Oracle Grid Infrastructure (GI)クラスタのすべてのノードで実行されている必要があります。

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

次に例を示します:

@>mkvault myvault
Vault @myvault created.

@>mkvolume 1g --attributes name=edv1 --vault myvault
Created volume with id 2:72ebb8a56fba4e97b4716c25981702cb

@>lsvolume 2:72ebb8a56fba4e97b4716c25981702cb --detail
id                                   2:72ebb8a56fba4e97b4716c25981702cb
name                                 edv1
blockSizeIOPS                        8192
contentType                          DATA
creationTime                         2023-10-16T04:46:07+00:00
filePath                             @myvault/vol.5ceabbae36d04e31bc79f9c34658c22e
mediaType                            HC
numAttachments                       0
iopsProvisioned                      unlimited
bandwidthProvisioned                 unlimited
redundancyType                       none
size                                 1G
state                                AVAILABLE
user                                 exa01
vault                                @myvault
vipId                                111:02ae5dee-55a6-4dab-beb6-69a1b5525d60

@>lsinitiator --detail
id                                   e7e0db8c-9a2a-0279-e7e0-db8c9a2a0279
edvBaseDriverVersion                 23.1.90.0.0.231015
edvEffectiveDriverVersion            23.1.90.0.0.231015
giClusterId                          deadbeef-badc-0fee-dead-beefbadc0fee
giClusterName                        edvTestCluster
hostName                             exa01
lastHeartbeat                        2023-10-16T04:45:33+00:00
registerTime                         2023-10-16T04:41:18+00:00
state                                ONLINE
version                              23.1.90.0.0.231015

@>mkvolumeattachment 2:72ebb8a56fba4e97b4716c25981702cb myedv1 --attributes giClusterId=deadbeef-badc-0fee-dead-beefbadc0fee
Created edv attachment with id 1:cc9435ab951a49119dbb7e249a0b0219

@>lsvolumeattachment 1:cc9435ab951a49119dbb7e249a0b0219 --detail
id                                   1:cc9435ab951a49119dbb7e249a0b0219
attachTime                           2023-10-16T04:47:41+00:00
kernelDeviceName                     exc-dev1
deviceName                           myedv1
devicePath                           /dev/exc/myedv1
giClusterId                          deadbeef-badc-0fee-dead-beefbadc0fee
giClusterName                        edvTestCluster
hostName
initiator
logicalSectorSize                    512
volume                               2:72ebb8a56fba4e97b4716c25981702cb
volumeSnapshot

@>

EDVアタッチメントは、ボリュームと、アタッチメントをホストするExadataコンピュート・ノード上にあるEDVデバイス・ファイルとの間のアソシエーションを作成します。EDVアタッチメントをホストするノードは、EDVイニシエータとも呼ばれます。

ACFSなどのクラスタ・ファイル・システムをサポートするためにクラスタ全体のアタッチメントを作成すると、Oracle Grid Infrastructure (GI)クラスタのすべてのノードにEDVデバイス・ファイルが作成されます。ノード固有のアタッチメントを作成すると、対応するEDVデバイスはそのノードにのみ作成されます。

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

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


@>lsinitiator --detail
id                                   e7e0db8c-9a2a-0279-e7e0-db8c9a2a0279
edvBaseDriverVersion                 23.1.90.0.0.231015
edvEffectiveDriverVersion            23.1.90.0.0.231015
giClusterId                          deadbeef-badc-0fee-dead-beefbadc0fee
giClusterName                        edvTestCluster
hostName                             exa01
lastHeartbeat                        2023-10-16T04:45:33+00:00
registerTime                         2023-10-16T04:41:18+00:00
state                                ONLINE
version                              23.1.90.0.0.231015

@>mkvolumeattachment 2:72ebb8a56fba4e97b4716c25981702cb myedv1 --attributes initiator=e7e0db8c-9a2a-0279-e7e0-db8c9a2a0279
Created edv attachment with id 1:50e52177583f4be4bad68ac20b65001e

@>lsvolumeattachment 1:50e52177583f4be4bad68ac20b65001e --detail
id                                   1:50e52177583f4be4bad68ac20b65001e
attachTime                           2023-10-16T04:47:41+00:00
kernelDeviceName                     exc-dev1
deviceName                           myedv1
devicePath                           /dev/exc/myedv1
giClusterId                          
giClusterName                        
hostName                             exa01
initiator                            e7e0db8c-9a2a-0279-e7e0-db8c9a2a0279
logicalSectorSize                    512
volume                               2:72ebb8a56fba4e97b4716c25981702cb
volumeSnapshot

@>

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

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

# # Confirmation of the EDV device at /dev/exc/myedv1.
# lsblk /dev/exc/myedv1
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/myedv1
brw-rw---- 1 root disk 251, 1 Oct  6 17:41 /dev/exc/myedv1
# # Now use the device to support ACFS.
# mkfs -t acfs /dev/exc/myedv1
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/myedv1
mkfs.acfs: volume size               = 1073741824  (   1.00 GB )
mkfs.acfs: file system size          = 1073741824  (   1.00 GB )
mkfs.acfs: Format complete.
# mkdir /mnt/myedv1
# mount /dev/exc/myedv1 /mnt/myedv1
# df /mnt/myedv1
Filesystem      1K-blocks   Used Available Use% Mounted on
/dev/exc/myedv1   1048576 318436    730140  31% /mnt/myedv1
#
# # Mount the file system on other cluster nodes as required.

ノート:

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

    # udevadm info device-file

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

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

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

    # cat /etc/udev/rules.d/57-edv-user.rules
    KERNEL=="exc-*", ENV{EXC_ALIAS}=="myvol", OWNER="oracle", GROUP="asmdba", 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上のACFSファイル・システムは、ACFS HANFSを使用して、Exadata RDMAネットワーク・ファブリックの外部のクライアントにエクスポートすることもできます。ACFSの詳細は、『Oracle Advanced Cluster File System管理者ガイド』を参照してください。

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