2 PodmanでのOracle RAC用のターゲット構成
このドキュメントの手順は、2つのLinuxホスト・サーバーで実行されている2ノードのOracle RACクラスタでテストされ、共有記憶域にブロック・デバイスを使用しています。
- Podman上のOracle RACの概要
Oracle Database 19c (19.16)以降、Oracle RACは本番デプロイメントのPodmanコンテナでサポートされています。 - Podmanホスト・サーバーの構成
Podmanホスト・サーバーの構成時に、次のガイドラインに従い、テストにOracleで使用される構成を確認してください。 - PodmanコンテナおよびOracle RACノード
このドキュメントで使用される構成について学習し、遂行する手順を理解してください。 - Podmanホスト・サーバーのプロビジョニング
PodmanをホストするLinuxサーバー(Podmanホスト・サーバー)は、ベア・メタル(物理)サーバーまたはOracle Linux仮想マシン(VM)にプロビジョニングできます。 - Podmanホストの準備
Oracle Grid InfrastructureおよびOracle Real Application Clustersをインストールする前に、Podmanをインストールする必要があります。 - PodmanでのOracle RAC用のPodmanイメージのビルド
Oracle Real Application Clusters (Oracle RAC)インストール・イメージをビルドするには、イメージ・ディレクトリを作成してイメージを作成し、Podmanホストがインターネットに接続されていることを確認します。 - Oracle ASM用の共有デバイスのプロビジョニング
Oracle Automatic Storage Management (Oracle ASM)用の記憶域デバイスはクリーン・ディスクを使用してプロビジョニングする必要があります。 - PodmanでのOracle RAC用のパブリック・ネットワークおよびプライベート・ネットワークの作成
この例では、Oracle Real Application Clusters (Oracle RAC)用のパブリック・ネットワークおよびプライベート・ネットワークを構成する方法を示します。 - デプロイ前に考慮するオプション
PodmanにOracle RACをデプロイする前に、ネットワークおよびホストの構成オプションを確認します。 - Oracle RACコンテナの作成
Oracle Real Application Clusters (Oracle RAC)コンテナを作成するには、これらの例のようなPodman createコマンドを実行します。 - ネットワークの接続とPodmanコンテナの起動
コンテナを起動する前に、パブリック・ネットワークとプライベート・ネットワークを設定し、ネットワークをOracle RACコンテナに割り当てます。 - Oracle Grid InfrastructureおよびOracle Databaseソフトウェアのダウンロード
Oracle Technology NetworkからOracle DatabaseおよびOracle Grid Infrastructureソフトウェアをダウンロードし、ステージングします。 - コンテナへのOracle Grid InfrastructureおよびOracle RACのデプロイ
コンテナを準備したら、標準のOracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)を完了します。 - デプロイ後に考慮するオプション
コンテナにOracle RACをデプロイした後に、Oracle Real Application Clusters (Oracle RAC)ノードの追加または削除、または異なるリリースのOracle RACのインストールを選択できます。 - PodmanでのOracle RACの既知の問題
PodmanコンテナにOracle Real Application Clusters (Oracle RAC)をデプロイする際、問題が発生した場合は、既知の問題かどうかを確認してください。 - Podman上のOracle RAC構成に関する追加情報
この情報は、Podman上のOracle Real Application Clusters (Oracle RAC)で発生する可能性のある問題の解決に役立ちます。
Podman上のOracle RACの概要
Oracle Database 19c (19.16)以降、Oracle RACは本番デプロイメントのPodmanコンテナでサポートされています。
本番環境で単一のホストが完全な停止時間を引き起こすのを防ぐには、異なる物理サーバーで実行されているPodmanホスト間でOracle RACノードを分散します。テストおよび開発環境では、同じ物理サーバーで実行されているPodmanホストでOracle RACを構成できます。
次の図に、高可用性の記憶域およびネットワーク構成で、1つ目のホストには別々のゲスト・ドメインに2つのコンテナがあり、2つ目のホストにも2つのコンテナと2つの別々のゲスト・ドメインがある本番構成を示します。

図prod-config-podman.pngの説明
次の図に、高可用性の記憶域およびネットワーク構成で、コンテナが別個のハードウェア・サーバー上の異なるPodmanホストに配置されている別の本番デプロイメントを示します。

図bare-metal-server-prod-podman.pngの説明
次の図に、一般的なテストおよび開発デプロイメントの例を2つ示します。左側の例は、クラスタ・メンバー・ノードが同じPodmanホストのコンテナであるPodmanホストを示しています。右側の例は、同じハードウェア・サーバー上の2つのPodmanホストを示しており、各ホストには別個のコンテナがあります。

図test-dev-podman.pngの説明
仮想テストおよび開発クラスタでは、テストに高可用性は不要であるため、2つ以上のPodmanコンテナを同じクラスタのノードとして使用し、1つのOracle Linux Podmanホストでのみ実行できます。
親トピック: PodmanでのOracle RAC用のターゲット構成
Podmanホスト・サーバーの構成
Podmanホスト・サーバーの構成時に、次のガイドラインに従い、テストにOracleで使用される構成を確認してください。
Podmanサーバーは目的の数のPodmanコンテナをサポートするのに十分である必要があり、各コンテナは少なくともOracle Real Application ClustersノードをホストするOracle Grid Infrastructureサーバーの最小要件を満たしている必要があります。クライアント・マシンは、Oracle RACノードから実行されるX Window System (X11)リモート・ディスプレイ対話型インストール・セッションに十分に対応できる必要があります。ただし、非対話型(サイレント)インストールを使用する場合、クライアント・マシンは必要ありません。
Podmanの記憶域要件の詳細は、次のURLで記憶域構成オプションの設定を参照してください。
このドキュメントの構成例では、次の構成を使用しています。実際の構成にあわせてホスト名およびコンテナ名を変更してください。
Oracle RACノード1
- Podmanホスト:
podman-host-1 - コンテナ:
racnode1 - CPUのコアID: 0および3
- RAM: 32 GB
- スワップ・メモリー: 16 GB
- オペレーティング・システム・ディスク:
Oracle Grid Infrastructureでサポートされている任意の記憶域オプションを使用できます。記憶域には、少なくとも次の使用可能な容量があることを確認します。
- ルート(
/): 40 GB /scratch: 80 GB (Oracle Grid InfrastructureおよびOracle Databaseのホームを格納するために/u01に使用されるPodmanホスト・ディレクトリ)/var/lib/containers: 100 GBxfs
- ルート(
- Podmanバージョン: 4.0.2
- Linux: カーネル
5.4.17-2136.300.7.el8uek.x86_64を搭載したOracle Linux Serverリリース8.5
Oracle RACノード2
- Podmanホスト:
podman-host-2 - コンテナ:
racnode2 - CPUのコアID: 0および3
- RAM: 32 GB
- スワップ・メモリー: 16 GB
- オペレーティング・システム・ディスク:
Oracle Grid Infrastructureでサポートされている任意の記憶域オプションを使用できます。記憶域には、少なくとも次の使用可能な容量があることを確認します。
- ルート(
/): 40 GB /scratch: 80 GB (Oracle Grid InfrastructureおよびOracle Databaseのホームを格納するために/u01に使用されるPodmanホスト・ディレクトリ)/var/lib/containers: 100 GBxfs
- ルート(
- Podmanバージョン: 4.0.2
- Linux: カーネル
5.4.17-2136.300.7.el8uek.x86_64を搭載したOracle Linux Serverリリース8.5
ブロック・デバイス
Oracle Grid Infrastructureでサポートされている任意の記憶域オプションを使用できます。記憶域には、少なくとも次の使用可能な容量があることを確認します。
/dev/sdd (50 GB)/dev/sde (50 GB)
PodmanコンテナおよびOracle RACノード
このドキュメントで使用される構成について学習し、遂行する手順を理解してください。
このドキュメントでは、このガイドで示す例として、2ノード構成を使用してPodmanコンテナを作成するステップおよびコマンドを示します。後述の構成情報は、その構成のリファレンスです。
この構成例のPodmanコンテナは、Oracle Real Application Clusters (Oracle RAC)のPodmanホストpodman-host-1およびpodman-host-2に作成されました。
Oracle RACノード1
- コンテナ:
racnode1 - CPUコアID: 0および1
- メモリー
- RAMメモリー: 16 GB
- スワップ・メモリー: 16 GB
- Oracle Automatic Storage Management (Oracle ASM)のディスク
/dev/asm-disk1/dev/asm-disk2
- ホスト名およびIPアドレス
racnode1、10.0.20.150racnode1-vip、10.0.20.160racnode1-priv、192.168.17.150racnode-scan、10.0.20.170/171/172- ドメイン:
example.info
-
racnode1のPodmanボリュームは、Podmanホスト・ディレクトリ・パスと適切な権限を使用してマウントされます。マウントがディレクトリとして実行されるようにするために、
-vまたは--volumeを使用して各マウントを指定します。ボリュームは、コロン文字(:)で区切られた3つのフィールドで構成されます。ボリュームを設定する際、ボリューム・フィールドは次の順序で設定する必要があります:source-path:target-path:options。たとえば:# podman container create ... --volume /boot:/boot:ro ... -name racnode1/bootは、コンテナ内でreadonlyである必要があります。また、コンテナ内のパス(/boot、/software/stageおよびu01)は、Podmanホスト上のマウント(/boot:ro、/scratch/software/stage、/scratch/rac/cluster01/node1)から取得されます次の各ボリュームがマウントされます。
/software/stage読取り/書込み(/scratch/software/stage)/u01読取り/書込み(/scratch/rac/cluster01/node1)
- Oracle Databaseの構成
- リリース19.16
- CDB名:
orclcdb - PDB名:
orclpdb - インスタンス:
orclcdb1 - SGAサイズ: 3 GB
- PGAサイズ: 2 GB
Oracle RACノード2
- コンテナ:
racnode2 - CPUコアID: 0および1
- メモリー
- RAMメモリー: 16 GB
- スワップ・メモリー: 16 GB
- Oracle Automatic Storage Management (Oracle ASM)のディスク
/dev/asm/disk1/dev/asm-disk2
- ホスト名およびIPアドレス
racnode2、10.0.20.151racnode2-vip、10.0.20.161racnode2-priv、192.168.17.151racnode-scan、10.0.20.170/171/172- ドメイン:
example.info
-
racnode2のPodmanボリュームは、Podmanホスト・ディレクトリ・パスと適切な権限を使用してマウントされます。マウントがディレクトリとして実行されるようにするために、
-vまたは--volumeを使用してPodmanのマウントを作成します。ボリュームは、コロン文字(:)で区切られた3つのフィールドで構成されます。ボリュームを構成する際、ボリューム・フィールドは次の順序で設定する必要があります:source-path:target-path:options。たとえば:# Podman container create ... --volume /boot:/boot:ro ... -name racnode2次の各ボリュームが作成されます。
/software/stage読取り/書込み(/scratch/software/stage)/u01読取り/書込み(/scratch/rac/cluster01/node2)
ノート:
この手順の完了後、マウントが設定されていることを確認するために、Podmanコマンド
podman container inspect racnode2を実行できます。このコマンドを使用して構成のマウントを確認する方法の詳細は、Podmanドキュメントを参照してください。 - Oracle Database
- インスタンス:
orclcdb2
- インスタンス:
Podmanホスト・サーバーのプロビジョニング
PodmanをホストするLinuxサーバー(Podmanホスト・サーバー)は、ベア・メタル(物理)サーバーまたはOracle Linux仮想マシン(VM)にプロビジョニングできます。
親トピック: PodmanでのOracle RAC用のターゲット構成
Podmanホストの準備
Oracle Grid InfrastructureおよびOracle Real Application Clustersをインストールする前に、Podmanをインストールする必要があります。
- Podmanコンテナのインストールの準備
Oracle Podmanコンテナのドキュメントを確認し、デプロイ用にシステムを準備します。 - Podmanエンジンのインストール
この例では、Podmanエンジンがバージョン5.4.17カーネルを搭載したOracle Linux Serverリリース8.5にインストールされます。 - Oracle Grid Infrastructureデプロイメント用のLinuxリソースの割当て
Oracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)コンテナ用のPodmanホストでLinuxリソースの割当ておよび構成設定を構成します。 - Oracle RACプロセスのリアルタイム・モードの有効化
Unbreakable Enterprise Linux Release 6カーネル(UEKR6)でマシンの再起動時にリアルタイムCPUバジェットを作成するには、oneshot systemdサービスを作成します。 - PodmanをSELinuxモード用に構成する方法
SELinuxが有効になっている環境でPodmanコンテナを実行するには、コンテナ用にSELinuxポリシーを構成する必要があります。
親トピック: PodmanでのOracle RAC用のターゲット構成
Podmanコンテナのインストールの準備
Oracle Podmanコンテナのドキュメントを確認し、デプロイ用にシステムを準備します。
クラスタの一部としてデプロイする各コンテナは、Oracle Real Application Clusters (Oracle RAC)およびOracle Grid Infrastructureソフトウェアの最小ハードウェア要件を満たしている必要があります。Oracle Grid InfrastructureおよびOracle RACデータベース・ソフトウェアを環境で使用可能になっているデータ・ボリュームにインストールする場合は、Podmanイメージ上のOracle RACに5 GB以上の容量を割り当てておく必要があります。ただし、イメージ内にソフトウェアをインストールする場合は、Podmanイメージ上のOracle RACに約20 GBを割り当てておく必要があります。
親トピック: Podmanホストの準備
Podmanエンジンのインストール
この例では、Podmanエンジンがバージョン5.4.17カーネルを搭載したOracle Linux Serverリリース8.5にインストールされます。
https://docs.oracle.com/en/operating-systems/oracle-linux/podman/
xfsファイル・システムが格納されている/var/lib/containersにあります。設定後、Podmanエンジンは次の例のようになります。
# podman info
host:
arch: amd64
buildahVersion: 1.24.1
cgroupControllers:
- cpuset
- cpu
- cpuacct
- blkio
- memory
- devices
- freezer
- net_cls
- perf_event
- net_prio
- hugetlb
- pids
- rdma
cgroupManager: systemd
cgroupVersion: v1
conmon:
package: conmon-2.1.0-1.module+el8.6.0+20665+a3b29bef.x86_64
path: /usr/bin/conmon
version: 'conmon version 2.1.0, commit: 9a942873287e0edbdc580ebee0fcd4b3735244f5'
cpus: 12
distribution:
distribution: '"ol"'
variant: server
version: "8.6"
eventLogger: file
hostname: podman-host-01
idMappings:
gidmap: null
uidmap: null
kernel: 5.4.17-2136.309.5.el8uek.x86_64
linkmode: dynamic
logDriver: k8s-file
memFree: 2094616576
memTotal: 41633333248
networkBackend: cni
ociRuntime:
name: runc
package: runc-1.0.3-2.module+el8.6.0+20665+a3b29bef.x86_64
path: /usr/bin/runc
version: |-
runc version 1.0.3
spec: 1.0.2-dev
go: go1.17.7
libseccomp: 2.5.2
os: linux
remoteSocket:
path: /run/podman/podman.sock
security:
apparmorEnabled: false
capabilities: CAP_NET_RAW,CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
rootless: false
seccompEnabled: true
seccompProfilePath: /usr/share/containers/seccomp.json
selinuxEnabled: true
serviceIsRemote: false
slirp4netns:
executable: /bin/slirp4netns
package: slirp4netns-1.1.8-2.module+el8.6.0+20665+a3b29bef.x86_64
version: |-
slirp4netns version 1.1.8
commit: d361001f495417b880f20329121e3aa431a8f90f
libslirp: 4.4.0
SLIRP_CONFIG_VERSION_MAX: 3
libseccomp: 2.5.2
swapFree: 8571830272
swapTotal: 8589930496
uptime: 5h 22m 18.58s (Approximately 0.21 days)
plugins:
log:
- k8s-file
- none
- passthrough
- journald
network:
- bridge
- macvlan
- ipvlan
volume:
- local
registries:
search:
- container-registry.oracle.com
- docker.io
store:
configFile: /etc/containers/storage.conf
containerStore:
number: 2
paused: 0
running: 2
stopped: 0
graphDriverName: overlay
graphOptions:
overlay.mountopt: nodev,metacopy=on
graphRoot: /var/lib/containers/storage
graphStatus:
Backing Filesystem: xfs
Native Overlay Diff: "false"
Supports d_type: "true"
Using metacopy: "true"
imageCopyTmpDir: /var/tmp
imageStore:
number: 9
runRoot: /run/containers/storage
volumePath: /var/lib/containers/storage/volumes
version:
APIVersion: 4.0.2
Built: 1652749236
BuiltTime: Tue May 17 01:00:36 2022
GitCommit: ""
GoVersion: go1.17.7
OsArch: linux/amd64
Version: 4.0.2
親トピック: Podmanホストの準備
Oracle Grid Infrastructureデプロイメント用のLinuxリソースの割当て
Oracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)コンテナ用のPodmanホストでLinuxリソースの割当ておよび構成設定を構成します。
- Podmanホストでのカーネル・パラメータの設定
カーネル・リソースの割当てが適切になるように、Linuxの/etc/sysctl.confファイルを更新します。 - Oracleソフトウェア・バイナリのマウント・ポイントの作成
rootユーザーとして、ローカルまたはリモート記憶域にOracleソフトウェアのマウント・ポイントを作成します。 - 共有メモリー・ファイル・システム・マウントの確認
このコマンドを使用して共有メモリーのマウントを確認します。 - PodmanホストでのNTPの構成
Oracle Real Application Clusters (Oracle RAC)コンテナ用のPodmanホストでネットワーク・タイム・プロトコル(NTP)機能サーバーのchrony実装の使用を設定する必要があります。 - Podmanホストでのクロック・ソースの設定
Linux x86-64で仮想環境(VM)のパフォーマンスを向上させるために、クロック・ソースをtscに設定することをお薦めします。 - PodmanホストでのOracleソフトウェアをステージングするディレクトリの作成
Oracle Grid InfrastructureおよびOracle Real Application Clustersソフトウェアをステージングするには、ローカル記憶域またはリモート記憶域にマウント・ポイントを作成します。 - CVUを使用したOracle Podmanホストの準備状況の検証
Podmanホストでスタンドアロンのクラスタ検証ユーティリティ(CVU)を使用して、Podmanホストが正しく構成されていることを確認することをお薦めします。
親トピック: Podmanホストの準備
Podmanホストでのカーネル・パラメータの設定
カーネル・リソースの割当てが適切になるように、Linuxの/etc/sysctl.confファイルを更新します。
- rootユーザーでログインします。
vimエディタを使用して、/etc/sysctl.confのパラメータを次の値に更新します。-
fs.aio-max-nr=1048576 -
fs.file-max = 6815744 -
net.core.rmem_max = 4194304 -
net.core.rmem_default = 262144 -
net.core.wmem_max = 1048576 -
net.core.wmem_default = 262144 -
vm.nr_hugepages=16384
-
- 次のコマンドを実行します:
# sysctl -a # sysctl –p
ノート:
Podmanホストでvm.nr_hugepagesによってHugePagesが有効になるため、UEK7に対してmadviseを構成し、UEK6に対して透過的なHugePagesを無効にすることをお薦めします。このタスクの実行方法については、Oracle Databaseインストレーション・ガイド for Linuxの透過的なHugePagesをmadviseに設定および透過的なHugePagesの無効化を参照してください。
Oracleソフトウェア・バイナリのマウント・ポイントの作成
rootユーザーとして、ローカルまたはリモート記憶域にOracleソフトウェアのマウント・ポイントを作成します。
作成するマウント・ポイントは、すべてのPodmanホストで使用可能で、iscsiなどのインタフェースを使用し、/scratchなどのマウント・ポイントでホストにマウントされている必要があります。ローカル記憶域またはリモート記憶域の使用に関係なく、この同じマウント・ポイント・パスが各Podmanホスト上に存在する必要があります。
ノート:
デバイスを使用してホストに/scratchファイル・システムをマウントする場合、ホストの/etc/fstabファイルには/scratchのエントリがあり、オペレーティング・システムによってファイル・システム・マウント・サービスscratch.mountが生成され、ホストの再起動時にファイル・システムが自動的にマウントされます。
rootユーザーとして、次のようなコマンドを実行します。
podman-host-1の場合:
# mkdir -p /scratch/rac/cluster01/node1podman-host-2の場合:# mkdir -p /scratch/rac/cluster01/node2共有メモリー・ファイル・システム・マウントの確認
このコマンドを使用して共有メモリーのマウントを確認します。
/dev/shm)が十分なサイズでマウントされていることを確認します。
たとえば:
# df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 14G 168K 14G 1% /dev/shm
df -hコマンドでは、/dev/shmがマウントされているファイル・システムと、共有メモリーの総容量および空き容量がGBで表示されます。
PodmanホストでのNTPの構成
Oracle Real Application Clusters (Oracle RAC)コンテナ用のPodmanホストでネットワーク・タイム・プロトコル(NTP)機能サーバーのchrony実装の使用を設定する必要があります。
Podman上のコンテナは、Podmanホストから時刻を継承します。このため、chronydサービス・デーモンは、Oracle RACコンテナ内ではなく、Podmanホストで実行する必要があります。Oracle Linux 8またはOracle Linux 9では、NTPの管理のために、chronydデーモン・サービスがntpdに置き換わります。ネットワーク・タイム・サーバーの設定方法の詳細は、Oracle Linux 8またはOracle Linux 9のドキュメントのchronyデーモン・サービスの構成方法を説明している項を参照してください。
Podmanホストでのクロック・ソースの設定
Linux x86-64で仮想環境(VM)のパフォーマンスを向上させるために、クロック・ソースをtscに設定することをお薦めします。
PodmanホストでのOracleソフトウェアをステージングするディレクトリの作成
Oracle Grid InfrastructureおよびOracle Real Application Clustersソフトウェアをステージングするには、ローカル記憶域またはリモート記憶域にマウント・ポイントを作成します。
/stage/software下にマウント可能である必要があります。
rootユーザーとして、次のようなコマンドを実行します。
# mkdir -p /scratch/software/stage
# chmod a+rwx /scratch/software/stage
CVUを使用したOracle Podmanホストの準備状況の検証
Podmanホストでスタンドアロンのクラスタ検証ユーティリティ(CVU)を使用して、Podmanホストが正しく構成されていることを確認することをお薦めします。
CVUを使用すると、Oracle Real Application Clusters (Oracle RAC)用のPodmanコンテナの作成およびコンテナ内でのOracle RACのインストールの準備において、システム・チェックを支援できます。CVUによって、適切なシステム・チェックが自動的に実行され、検出された問題を解決するよう求められます。システム・チェックのメリットを得るには、Oracle RACコンテナをホストするように構成するすべてのPodmanホストでユーティリティを実行する必要があります。
CVUを取得するには、最新のCVUパッチをダウンロードします。
ノート:
必ず、標準のCVUディストリビューションとは異なる、コンテナ・ホストのパッチをダウンロードしてください。少なくとも、Oracle Configuration Verification Utility For Container Hostリリース23aiリリース9 Linux x86_64 (OL8/RHEL8/OL9/RHEL9) (スタンドアロン配布キット - 2025年7月)以降を使用してください
Oracle RACプロセスに対するリアルタイム・モードの有効化
Unbreakable Enterprise Linux Release 6カーネル(UEKR6)でマシンの再起動時にリアルタイムCPUバジェットを作成するには、oneshot systemdサービスを作成します。
ノート:
Unbreakable Linux Kernel Release 7 (UEKR7)を使用している場合は、この手順を実行しないでください。実行しているバージョンを確認するには、次のコマンドを実行します。uname -rレスポンスがkernel-uek-5.4.17-2136.307.3以降の場合、UEKR6を使用しています。レスポンスがuek-5.15.0-3.60.5.1以降の場合、UEKR7を使用しています。
コンテナ内のプロセスをUEKR6のリアルタイム・モードで実行するには、/sys/fs/cgroup/cpu,cpuacct/machine.slice/cpu.rt_runtime_usにリアルタイム(RT)バジェットを移入する必要があります。oneshot systemdサービスにより、RTバジェットは自動的に移入されます。このサービスを実行する必要があるのは、Podmanコンテナ用の記憶域およびネットワーキングがホストで使用可能になった後のみです。したがって、プロパティAfter=には、サービスの包括的な依存関係として値multi-user.targetを指定できます。
oneshot systemdサービスを有効にするには、まずSystemd初期化ファイル/etc/systemd/system/podman-rac-cgroup.serviceを次の内容で作成する必要があります。
[Unit]
Description=Populate Cgroups with real time chunk on machine restart
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c "echo 950000 > /sys/fs/cgroup/cpu,cpuacct/machine.slice/cpu.rt_runtime_us && \
/bin/systemctl restart podman-restart.service"
StandardOutput=journal
CPUAccounting=yes
Slice=machine.slice
[Install]
WantedBy=multi-user.target
次に、oneshot systemdサービスを作成して開始するために、次のコマンドを実行します。
# systemctl daemon-reload
# systemctl enable podman-restart.service
# systemctl enable podman-rac-cgroup.service --now
親トピック: Podmanホストの準備
PodmanをSELinuxモード用に構成する方法
SELinuxが有効になっている環境でPodmanコンテナを実行するには、コンテナ用にSELinuxポリシーを構成する必要があります。
セキュリティ強化Linux (SELinux)では、ポリシーを設定してコンテナに対する権限を実装する必要があります。コンテナ用にポリシー・モジュールを構成しないと、コンテナが無期限に再起動する可能性があります。クラスタのすべてのPodmanホスト・ノードをポリシー・モジュールrac-podmanに追加する必要があり、そのためには、必要なパッケージをインストールし、タイプ強制ファイルを作成(.te接尾辞で指定)してポリシーを構築し、システムにロードします。
次の例では、Podmanホストpodman-host-1をSELinuxポリシー・モジュールrac-podmanで構成しています。
[root@podman-host-1 ~]# dnf install selinux-policy-devel
[root@podman-host-1 ~]# dnf install setroubleshoot setools
[root@podman-host-1 ~]# cat /var/opt/rac-podman.te
module rac-podman 1.0;
require {
type kernel_t;
class system syslog_read;
type container_runtime_t;
type container_init_t;
class file getattr;
type container_file_t;
type lib_t;
type textrel_shlib_t;
type unlabeled_t;
class file read;
type bin_t;
class file { execmod execute map setattr };
}
#============= container_init_t ==============
allow container_init_t container_runtime_t:file getattr;
allow container_init_t bin_t:file map;
allow container_init_t bin_t:file execute;
allow container_init_t container_file_t:file execmod;
allow container_init_t lib_t:file execmod;
allow container_init_t textrel_shlib_t:file setattr;
allow container_init_t kernel_t:system syslog_read;
allow container_init_t unlabeled_t:file read;
[root@podman-host-1 ~]# cd /var/opt
[root@podman-host-1 ~]# make -f /usr/share/selinux/devel/Makefile rac-podman.pp
[root@podman-host-1 ~]# semodule -i rac-podman.pp
[root@podman-host-1 ~]# semodule -l | grep rac-pod
podman-host-2について、このプロセスを繰り返します。
次のコマンドを完了した後に、コンテナで使用されるホスト・ディレクトリのファイル・コンテキストを変更します:
[root@podman-host-1 ~]# semanage fcontext -a -t container_file_t /scratch/rac/cluster01/node1
[root@podman-host-1 ~]# restorecon -vF /scratch/rac/cluster01/node1
[root@podman-host-2 ~]# semanage fcontext -a -t container_file_t /scratch/rac/cluster01/node2
[root@podman-host-2 ~]# restorecon -vF /scratch/rac/cluster01/node2
親トピック: Podmanホストの準備
PodmanでのOracle RAC用のPodmanイメージのビルド
Oracle Real Application Clusters (Oracle RAC)インストール・イメージをビルドするには、イメージ・ディレクトリを作成してイメージを作成し、Podmanホストがインターネットに接続されていることを確認します。
ノート:
あるPodmanホストではこの手順を実行し、他のPodmanホストではイメージを使用することも、各Podmanホストで同じイメージ・ビルドの手順を繰り返すこともできます。- Podmanイメージ・ビルド・ディレクトリの作成
Podmanイメージの作成を実行するには、この手順を使用してビルド・プロセス用のディレクトリを作成します。 - コンテナ設定スクリプトの準備
デバイスの権限、デフォルトのルートおよびホスト環境の構成を維持するには、コンテナの再起動後に自動的に実行してコンテナ環境を構成するスクリプトを作成します。 - PodmanイメージでのOracle RAC用のContainerfileの作成
Oracle Real Application Clusters (Oracle RAC) Podmanファイル・イメージを設定するには、ベースOracle Linuxイメージをプルする必要があります。 - PodmanイメージでのOracle RACの作成
Oracle Real Application Clusters (Oracle RAC)イメージを作成するには、必要に応じてOracle Linux環境を設定し、Containerfileおよびコンテキストからイメージをビルドします。 - Podman上のOracle RACへの中央イメージ・リポジトリの使用
Podmanイメージのコンテナ・イメージ・リポジトリを設定することを選択できます。
親トピック: PodmanでのOracle RAC用のターゲット構成
Podmanイメージ・ビルド・ディレクトリの作成
Podmanイメージの作成を実行するには、この手順を使用してビルド・プロセス用のディレクトリを作成します。
rootとしてログインし、次のコマンドを入力します。
# mkdir /scratch/image
# cd /scratch/imageコンテナ設定スクリプトの準備
デバイスの権限、デフォルトのルートおよびホスト環境の構成を維持するには、コンテナの再起動後に自動的に実行してコンテナ環境を構成するスクリプトを作成します。
Podmanコンテナを再起動すると、そのコンテナ用に以前構成されていたデバイスの権限、デフォルトのルートおよび/etc/hostsエントリがリセットされます。PodmanおよびPodmanコンテナの再起動の間で構成を維持するには、この手順を使用して、再起動後に環境を設定するために各コンテナで実行するように構成できるスクリプトを作成します。
Oracle Real Application Clusters (Oracle RAC)ではsystemdに基づいてコンテナを使用するため、Oracle RACスリム・イメージの作成時にコンテナ内の/etc/rc.localフォルダにスクリプトを追加することで、再起動のたびにコンテナ環境スクリプトを実行できます。再起動後、rc.localに追加したスクリプトで、Podmanコンテナ環境を確実に復元できます。これらの各ステップを順に実行します。Podmanイメージ・ビルド・ディレクトリ(この例では/stage/image)にファイルおよびスクリプトを作成します。
/etc/rc.localを使用して実行します。このステップは、PodmanイメージでのOracle RACデータベースの構築に関する項を参照してください。setupContainerEnv.shスクリプトをコールするための行を/etc/rc.localに追加した後に、Podmanコンテナがリセットされた場合、Podmanコンテナが起動されてinitがロードされると、setupContainerEnv.shはコンテナの再起動のたびに次の操作を実行します。
- デフォルトのゲートウェイを設定します
- ASMデバイスに対する正しいデバイス権限を設定します
/etc/hostsファイルを設定します。/etc/resolv.confファイルを設定します。
複数のホストにコンテナをデプロイする場合は、イメージがビルドされるすべてのPodmanホストにsetupContainerEnv.shをコピーする必要があります。
ノート:
イメージ・ビルド時の設定スクリプトと、resolv.confおよびhostfileファイルの内容が、ビルド中にPodmanイメージに埋め込まれます。その内容は、同じイメージを他のデプロイメントに使用してデプロイされたコンテナに適用されない場合があるので、ASMディスクおよびネットワーク構成が異なります。ただし、コンテナを作成して起動した後に、たとえば、コンテナにログインして/opt/scripts/startupのファイルおよびスクリプトを編集することで、その内容を変更できます。
PodmanイメージでのOracle RAC用のContainerfileの作成
Oracle Real Application Clusters (Oracle RAC) Podmanファイル・イメージを設定するには、ベースOracle Linuxイメージをプルする必要があります。
/scratch/image下にContainerfileというファイルを作成します。Containerfileをエディタで開き、次の行をファイルに貼り付けます(この例はOracle Linux 8を示しています):# Pull base image # --------------- FROM oraclelinux:8 # Environment variables required for this build (do NOT change) # ------------------------------------------------------------- ## Environment Variables ## --- ENV SCRIPT_DIR=/opt/scripts/startup \ RESOLVCONFENV="resolv.conf" \ HOSTFILEENV="hostfile" \ SETUPCONTAINERENV="setupContainerEnv.sh" ### Copy Files # ---- COPY $SETUPCONTAINERENV $SCRIPT_DIR/ ### RUN Commands # ----- COPY $HOSTFILEENV $RESOLVCONFENV $SCRIPT_DIR/ RUN dnf install -y oracle-database-preinstall-19c systemd vim passwd openssh-server hostname xterm xhost vi policycoreutils-python-utils && \ dnf clean all && \ sync && \ groupadd -g 54334 asmadmin && \ groupadd -g 54335 asmdba && \ groupadd -g 54336 asmoper && \ useradd -u 54332 -g oinstall -G oinstall,asmadmin,asmdba,asmoper,racdba,dba grid && \ usermod -g oinstall -G oinstall,dba,oper,backupdba,dgdba,kmdba,asmdba,racdba,asmadmin oracle && \ cp /etc/security/limits.d/oracle-database-preinstall-19c.conf /etc/security/limits.d/grid-database-preinstall-19c.conf && \ sed -i 's/oracle/grid/g' /etc/security/limits.d/grid-database-preinstall-19c.conf && \ rm -f /etc/rc.d/init.d/oracle-database-preinstall-19c-firstboot && \ rm -f /etc/sysctl.conf && \ rm -f /usr/lib/systemd/system/dnf-makecache.service && \ echo "$SCRIPT_DIR/$SETUPCONTAINERENV" >> /etc/rc.local && \ chmod +x $SCRIPT_DIR/$SETUPCONTAINERENV && \ chmod +x /etc/rc.d/rc.local && \ setcap 'cap_net_admin,cap_net_raw+ep' /usr/bin/ping && \ sync USER root WORKDIR /root VOLUME ["/stage/software"] VOLUME ["/u01"] CMD ["/usr/sbin/init"] # End of the Containerfile
ノート:
oracle Linux 9の場合、コンテナ・イメージはoracleinux:9で、RUN dnf install行は次のようになります:
RUN dnf install -y oracle-database-preinstall-19c systemd vim passwd openssh-server hostname xterm xhost vi policycoreutils-python-utils lsof openssl libxcrypt-compat
Oracle Linux 9の場合、Containerfileをエディタで開いて、次の行をファイルに貼り付けます:
# Pull base image
# ---------------
FROM oraclelinux:9
# Environment variables required for this build (do NOT change)
# -------------------------------------------------------------
ENV SCRIPT_DIR=/opt/scripts/startup \
RESOLVCONFENV="resolv.conf" \
HOSTFILEENV="hostfile" \
SETUPCONTAINERENV="setupContainerEnv.sh"
### Copy Files
# ----
COPY $SETUPCONTAINERENV $SCRIPT_DIR/
### RUN Commands
# -----
COPY $HOSTFILEENV $RESOLVCONFENV $SCRIPT_DIR/
RUN dnf install -y oracle-database-preinstall-19c systemd vim passwd openssh-server hostname xterm xhost vi policycoreutils-python-utils lsof openssl libxcrypt-compat && \
dnf clean all && \
sync && \
groupadd -g 54334 asmadmin && \
groupadd -g 54335 asmdba && \
groupadd -g 54336 asmoper && \
useradd -u 54332 -g oinstall -G oinstall,asmadmin,asmdba,asmoper,racdba,dba grid && \
usermod -g oinstall -G oinstall,dba,oper,backupdba,dgdba,kmdba,asmdba,racdba,asmadmin oracle && \
cp /etc/security/limits.d/oracle-database-preinstall-19c.conf /etc/security/limits.d/grid-database-preinstall-19c.conf && \
sed -i 's/oracle/grid/g' /etc/security/limits.d/grid-database-preinstall-19c.conf && \
rm -f /etc/rc.d/init.d/oracle-database-preinstall-19c-firstboot && \
rm -f /etc/sysctl.conf && \
rm -f /usr/lib/systemd/system/dnf-makecache.service && \
echo "$SCRIPT_DIR/$SETUPCONTAINERENV" >> /etc/rc.local && \
chmod +x $SCRIPT_DIR/$SETUPCONTAINERENV && \
chmod +x /etc/rc.d/rc.local && \
setcap 'cap_net_admin,cap_net_raw+ep' /usr/bin/ping && \
sync
USER root
WORKDIR /root
VOLUME ["/stage/software"]
VOLUME ["/u01"]
CMD ["/usr/sbin/init"]
# End of the Containerfile
アプリケーションに追加のパッケージが必要な場合は、それらをRUN yumコマンドに追加できます。
PodmanイメージでのOracle RACの作成
Oracle Real Application Clusters (Oracle RAC)イメージを作成するには、必要に応じてOracle Linux環境を設定し、Containerfileおよびコンテキストからイメージをビルドします。
-
rootとしてログインし、以前に準備したイメージ作成用のディレクトリに移動します。# cd /scratch/image -
ユースケースの手順を実行します。
- サーバーがプロキシ・ファイアウォールの内側にある場合:
- 次のコマンドを実行します。説明:
localhost-domainは、ネットワーク内のインターネット・ゲートウェイのローカル・ホストおよびドメインですhttp-proxyは、ネットワーク環境のHTTPプロキシ・サーバーですhttps-proxyは、ネットワーク環境のHTTPSプロキシ・サーバーです- この例では、コンテナ内にインストールしようとしているOracle Databaseリリースとして、
19.3と「19.16RUを示しています。Oracle Linux 9を使用する場合は、イメージのラベルが19.28以上である必要があります。
# export NO_PROXY=localhost-domain # export http_proxy=http-proxy # export https_proxy=https-proxy # export version=19.16 # podman build --force-rm=true --no-cache=true --build-arg \ http_proxy=${http_proxy} --build-arg https_proxy=${https_proxy} \ -t oracle/database-rac:$version-slim -f Containerfile . - 次のコマンドを実行します。説明:
- サーバーがプロキシ・ファイアウォールの内側にない場合:
- 次のコマンドを実行します(
versionは、Podmanコンテナ内にインストールしようとしているOracle Databaseリリース(19.16など)です)。
# export version=19.16 # podman build --force-rm=true --no-cache=true -t oracle/database-rac:$version-slim -f Containerfile . - 次のコマンドを実行します(
- サーバーがプロキシ・ファイアウォールの内側にある場合:
-
イメージが正常にビルドされると、Podmanホストに作成されたイメージ
oracle/database-rac:19.16-slimが表示されます。[root@podman-host--1 image]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/oracle/database-rac 19.16-slim 9d5fed7eb7ba 7 seconds ago 396 MB container-registry.oracle.com/os/oraclelinux 8-slim 2ea85efcdb48 3 weeks ago 114 MB container-registry.oracle.com/os/oraclelinux 8 e6ca9618a97b 3 weeks ago 243 MBノート:
この例では、イメージは19.16-slimです。Oracle Linux 9を使用する場合は、19.28-slim以上である必要があります。 -
イメージを
tarファイルに保存して、他のPodmanホストに転送します。# podman image save -o /var/tmp/database-rac.tar localhost/oracle/database-rac:19.16-slim # scp -i <ssh key for host podman-host-2> /var/tmp/database-rac.tar opc@podman-host-2:/var/tmp/database-rac.tar -
他のPodmanホストで、tarファイルからイメージをロードし、ロードされたことを確認します。
# podman image load -i /var/tmp/database-rac.tar # podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/oracle/database-rac 19.16-slim 9d5fed7eb7ba 2 minutes ago 396 MB container-registry.oracle.com/os/oraclelinux 8 dfce5863ff0f 2 months ago 243 MB
Oracle ASM用の共有デバイスのプロビジョニング
Oracle Automatic Storage Management (Oracle ASM)用の記憶域デバイスはクリーン・ディスクを使用してプロビジョニングする必要があります。
Oracle Real Application Clustersの記憶域では、ブロック記憶域またはネットワーク・ファイル・システム(NFS)でOracle ASMを使用する必要があります。Podman上のOracle RACにOracle Advanced Storage Management Cluster File System (Oracle ACFS)を使用することはサポートされていません。
Oracle ASMに使用するデバイスには、既存のファイル・システムを含めないでください。デバイスの他の既存のファイル・システム・パーティションまたはプライマリ・ブート・レコードを上書きするには、次のようなコマンドを1つのPodmanホストで使用します。
# dd if=/dev/zero of=/dev/sdd bs=1024k count=1024
# dd if=/dev/zero of=/dev/sde bs=1024k count=1024
このデプロイメントの例では、Podmanホスト・デバイス/dev/sddおよび/dev/sdeは両方のPodmanホストで同じデバイス・パスに存在し、コンテナで/dev/asm-disk1および/dev/asm-disk2としてマップされます。このマッピングは、コンテナ作成手順「Oracle RACコンテナの作成」で行われます
親トピック: PodmanでのOracle RAC用のターゲット構成
PodmanでのOracle RAC用のパブリック・ネットワークおよびプライベート・ネットワークの作成
この例では、Oracle Real Application Clusters (Oracle RAC)用のパブリック・ネットワークおよびプライベート・ネットワークを構成する方法を示します。
インストールを開始する前に、コンテナ内に少なくとも1つのパブリック・ネットワークおよび2つのプライベート・ネットワークを作成する必要があります。冗長プライベート・ネットワークを作成することをお薦めします。この例は、独自の構成のモデルとして使用しますが、ネットワーク・ドメインで構成するアドレスを使用します
開発テストでは、次の構成を使用して、プライベートIPアドレスでネットワークが作成されます。
rac_eth0pub1_nw(10.0.20.0/24): パブリック・ネットワークrac_eth1priv1_nw(192.168.17.0/24): プライベート・ネットワーク1rac_eth2priv2_nw(192.168.18.0/24): プライベート・ネットワーク2
このドキュメントの以降の他の例では、これらのネットワーク名およびアドレスを使用します。
Podmanホストで親ゲートウェイ・インタフェースを使用してパブリック・ネットワークを設定するには、Podman MACVLANドライバまたはIPVLANドライバを使用して、マルチホスト用のPodmanでOracle RACを実行する必要があります。また、使用するゲートウェイ・インタフェースは、Oracle Grid Infrastructureの単一クライアント・アクセス名(SCAN)およびホスト名を登録したドメイン・ネーム・サーバー(DNS)が解決先にできるものである必要があります。この例では、パブリック・ネットワークにmacvlanを使用し、様々なPodmanホスト間でのOracle RACプライベート・ネットワーク通信にもmacvlanを使用しました。
ネットワーク作成コマンドでは、-o親パラメータで、macvlanインタフェースを関連付けるホストの物理インタフェースを指定し、--subnetでIPアドレス割当てに使用するサブネットを指定する必要があります。
親インタフェースがパブリック・ネットワークに使用され、その親インタフェース自体がホスト・ネットワーク・サブネット上のホストに対して構成されている場合、--subnetオプションは、-o親パラメータで指定された物理インタフェースに関連付けられたサブネットに対応している必要があり、--gatewayオプションは、物理インタフェースのネットワーク上のゲートウェイに対応している必要があります。
コマンドおよびオプションの詳細は、Podmanドキュメントを参照してください。
ネットワーク構成には、標準の最大転送単位(MTU)ネットワークとジャンボ・フレームMTUネットワークの2つのオプションがあります。Oracle RAC通信のパフォーマンスを向上させるために、ネットワーク・インタフェースに対してジャンボ・フレームを有効にし、MTUが1,500バイトを超えるようにすることをお薦めします。ジャンボ・フレームを有効にした場合、ネットワーク・デバイス・オプション・パラメータを使用して、ネットワークのMTUパラメータをジャンボフレームMTUと同じ値に設定できます。
例2-1 標準フレームMTUネットワーク構成
標準フレームMTUネットワークは次のように構成されます。
# ip link show | egrep "eth0|eth1|eth2"
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
5: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
# podman network create -d macvlan --subnet=10.0.20.0/24 --gateway=10.0.20.1 -o parent=eth0 rac_eth0pub1_nw
# podman network create -d macvlan --subnet=192.168.17.0/24 -o parent=eth1 --disable-dns --internal rac_eth1priv1_nw
# podman network create -d macvlan --subnet=192.168.18.0/24 -o parent=eth2 --disable-dns --internal rac_eth2priv2_nw
例2-2 ジャンボ・フレームMTUネットワーク構成
ジャンボ・フレームMTUネットワークは次のように構成されます。
[podman-host-01 ~]$ ip link show | egrep "eth0|eth1|eth2"
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
5: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
各インタフェースでのMTUが9000に設定されている場合、各Podmanホストで次のコマンドを実行して、MTU全体を使用するように各ネットワークの最大ペイロード長を拡張できます。
# podman network create -d macvlan --subnet=10.0.20.0/24 --gateway=10.0.20.1 -o mtu=9000 parent=eth0 -o rac_eth0pub1_nw
# podman network create -d macvlan --subnet=192.168.17.0/24 -o parent=eth1 -o mtu=9000 --disable-dns --internal rac_eth1priv1_nw
# podman network create -d macvlan --subnet=192.168.18.0/24 -o parent=eth2 -o mtu=9000 --disable-dns --internal rac_eth2priv2_nw
PodmanコンテナでOracle RACを実行するようにネットワークを設定するには、複数のパブリック・ネットワークと、3つ以上のプライベート・ネットワークまたは1つのプライベート・ネットワークのみの使用を選択できます。複数のネットワークを構成する場合、これらのネットワークを作成するには、ネットワークに適した値を使用してpodman network createコマンドを繰り返します。
ネットワークの作成後、コマンドpodman network lsを実行します。このコマンドの結果には、次のようなPodmanホストで作成されたネットワークが表示されます。
[root@podman-host--1 image]# podman network ls
NETWORK ID NAME DRIVER
2f259bab93aa podman bridge
0b560469e2e6 rac_eth0pub1_nw macvlan
85c5e0aa3969 rac_eth1priv1_nw macvlan
606a44672e40 rac_eth2priv2_nw macvlan
親トピック: PodmanでのOracle RAC用のターゲット構成
デプロイ前に考慮するオプション
PodmanにOracle RACをデプロイする前に、ネットワークおよびホストの構成オプションを確認します。
デプロイ前に、1つのプライベート・ネットワークを使用するか、複数のプライベート・ネットワークを構成するかを決定できます。次のいずれかのオプションを選択することもできます。
- 複数のPodmanホスト
- 単一のPodmanホスト上の複数のPodmanブリッジ
使用するネットワーク構成オプションを決定したら、選択した構成のデプロイメント手順を完了します。
Unbreakable Linux Kernel Release 6 (UEK6)とUnbreakable Linux Kernel Release 7 (UEK7)には違いがあります。これらについては、必要に応じて説明します。
ノート:
このドキュメントでは、一般的な推奨されるブロック・デバイス記憶域およびネットワーク・オプションを示します。ただし、デプロイメント・トポロジおよび記憶域の可能性に応じて、PodmanでのOracle RACのデプロイ要件により適した他のオプションを検討できます。
- PodmanでのOracle RACの記憶域用のNFSの構成
記憶域にNFSを使用する場合は、Oracle Grid InfrastructureおよびOracle RACファイル用にNFSボリュームを作成し、Oracle RACコンテナで使用できるようにします。 - PodmanでのOracle RAC用の複数のプライベート・ネットワーク・オプション
デプロイの前に、PodmanでOracle RACに複数のプライベート・ネットワークを使用する場合は、プライベート・インターコネクトに複数のNICを使用できるようにPodmanコンテナの作成を変更します。 - 複数のPodmanホスト・オプション
複数のPodmanホストを使用する場合は、この例のようなコマンドを使用してネットワーク・ブリッジを作成します。 - 単一のPodmanホスト上の複数のPodmanブリッジ・オプション
使用している環境でMACVLANドライバを使用できない場合は、この例を使用して、単一のホストにPodmanブリッジを作成する方法を確認できます。
親トピック: PodmanでのOracle RAC用のターゲット構成
PodmanでのOracle RACの記憶域用のNFSの構成
記憶域にNFSを使用する場合は、Oracle Grid InfrastructureおよびOracle RACファイル用にNFSボリュームを作成し、Oracle RACコンテナで使用できるようにします。
Linux x86-64上のOCRおよび投票ディスク・ファイルに使用されないバイナリ、Oracle Databaseデータ・ファイルおよびOracle ASMディスクグループのOracle RAC NFSマウント・オプションは次のとおりです。
rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0
Oracle Clusterware OCRおよび投票ディスク・ファイルのNFSマウントの場合は、マウント・オプションにnoacを追加し、OCRおよび投票ディスク・ファイルがASMディスク・グループに配置されるようにします。
rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600,actimeo=0
例2-3 Oracle Real Application Clustersデータ・ファイル用のNFSボリューム
Oracle Databaseデータ・ファイルの記憶域として使用できるNFSボリュームを作成するには、このコマンドを使用できます(nfs-serverはNFSサーバーのIPまたはホスト名です)。
podman volume create --driver local \
--opt type=nfs \
--opt o=addr=nfs-server,rw,bg,hard,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 \
--opt device=:/oradata \
racstorage例2-4 Oracle Clusterwareファイル用のNFSボリューム
クラスタ共有記憶域として使用できるNFSボリュームを作成するには、このコマンドを使用できます(nfs-serverはNFSサーバーのIPまたはホスト名です)。
たとえば、Oracle Databaseファイルに使用できるNFSボリュームを作成するには、このコマンドを使用できます(nfs-serverはNFSサーバーのIPまたはホスト名です)。
podman volume create --driver local \
--opt type=nfs \
--opt o=addr=nfs-server,rw,bg,hard,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac \
--opt device=:/crs \
crsstorage
この場合、ボリュームを作成するときに、Podman podman container createコマンドで次の引数を指定します。
--volume racstorage:/oradata \
これらの例のコマンドが実行され、Podmanコンテナがボリューム引数を使用して作成されると、コンテナの稼働時に/oradataにあるNFSファイル・システムにアクセスできます。
PodmanでのOracle RAC用の複数のプライベート・ネットワーク・オプション
デプロイの前に、PodmanでOracle RACに複数のプライベート・ネットワークを使用する場合は、プライベート・インターコネクトに複数のNICを使用できるようにPodmanコンテナの作成を変更します。
Oracle Real Application Clusters (Oracle RAC)に複数のプライベート・ネットワークを使用する場合は、チューニング可能なrp_filterを0または2に設定する必要があります。rp_filter値を設定するには、コンテナの作成時にpodman createコンテナ・コマンドにチューニング可能な引数を追加します。
--sysctl 'net.ipv4.conf.private_interface_name.rp_filter=2'
以前に構成したパブリック・ネットワークおよびプライベート・ネットワークへの接続順序に基づいて、このコマンドで定義するプライベート・インタフェース名を予測できます。
たとえば、このガイドのプライベート・ネットワークrac_eth1priv1_nwは、パブリック・ネットワークの後に接続されます。rac_eth1priv1_nwに対して構成されたインタフェース名がeth1である場合、イーサネット・ネットワーク・インタフェースは接続の順序によって割り当てられるため、インタフェースでの2つ目のプライベート・ネットワーク接続はインタフェース名eth2になります。
この場合、podman container createコマンドで次の引数を指定します。
--sysctl 'net.ipv4.conf.eth1.rp_filter=2' --sysctl 'net.ipv4.conf.eth2.rp_filter=2'
親トピック: デプロイ前に考慮するオプション
複数のPodmanホスト・オプション
複数のPodmanホストを使用する場合は、この例のようなコマンドを使用してネットワーク・ブリッジを作成します。
外部ネットワークへの接続には、(引数-o parent=adapter nameを使用して)親アダプタとともにPodman MACVLANドライバを使用する必要があります。
# podman network create -d macvlan --subnet=10.0.20.0/24 --gateway=10.0.20.1 -o parent=eth0 rac_eth0pub1_nw
# podman network create -d macvlan --subnet=192.168.17.0/24 -o parent=eth1 rac_eth1priv1_nwノート:
各PodmanホストのPodmanイメージでOracle RACを構築するプロセスを繰り返さない場合は、1つのPodmanホストでPodmanイメージを作成し、そのイメージをTARファイルにエクスポートできます。このオプションを使用するには、イメージを作成するPodmanホストでpodman image saveコマンドを実行し、tarファイルを他のPodmanホストに転送します。次に、これらのPodmanホストではpodman image loadコマンドを使用してイメージをインポートできます。これらのコマンドの詳細は、Podmanドキュメントを参照してください。
親トピック: デプロイ前に考慮するオプション
単一のPodmanホスト上の複数のPodmanブリッジ・オプション
使用している環境でMACVLANドライバを使用できない場合は、この例を使用して、単一のホストにPodmanブリッジを作成する方法を確認できます。
MACVLANを使用できない場合でも、Podmanブリッジを環境に作成できます。ただし、このブリッジは外部ネットワークから到達できません。また、特定のクラスタ用のOracle RAC Podmanコンテナは同じPodmanホスト内に限定されます。
ノート:
ブリッジ・ネットワークでジャンボ・フレームMTUを有効にするには、次のオプションを使用できます。
option "-o mtu=9000"
Podmanホストと同様にログインし、次のようなコマンドを使用します。
# podman network create --driver=bridge --subnet=10.0.20.0/24 rac_eth0pub1_nw
# podman network create --driver=bridge --subnet=192.168.17.0/24 rac_eth1priv1_nw
親トピック: デプロイ前に考慮するオプション
Oracle RACコンテナの作成
Oracle Real Application Clusters (Oracle RAC)コンテナを作成するには、これらの例のようなPodman createコマンドを実行します。
- ブロック・デバイスを使用したRacnode1コンテナの作成
この手順を使用して、podman-host-1上のPodmanに1つ目のOracle RACコンテナを作成します。 - ブロック・デバイスを使用したRacnode2コンテナの作成
この手順を使用して、podman-host-2上のPodmanに2つ目のOracle Real Application Clusters (Oracle RAC)コンテナを作成します。
親トピック: PodmanでのOracle RAC用のターゲット構成
ブロック・デバイスを使用したRacnode1コンテナの作成
この手順を使用して、podman-host-1上のPodmanに1つ目のOracle RACコンテナを作成します。
この例をPodmanホストで使用するには、--cpuset-cpu、--memoryおよび--device --dnsの値を使用している環境に適した値に変更します。--dnsで指定したドメイン・ネーム・サーバー(DNS)が、Oracle Grid Infrastructureに使用する予定のホスト名および単一クライアント・アクセス名(SCAN)を解決できることを確認します。次のコマンドで説明されているすべてのオプションを理解するには、ホストにインストールされているPodmanバージョンのPodmanドキュメントを参照してください。手動コマンドを使用してコンテナを正常に停止することもできます。このドキュメントのRACコンテナを正常に停止する方法を参照してください。
ノート:
UEKR7を使用してOracle RACコンテナをデプロイする場合は、Oracle RACコンテナ作成コマンドで--systemd=true \の前にある次の行を省略する必要があります。
--cpu-rt-runtime 95000 \ 省略しないと、コンテナの起動に失敗します
# podman create -t -i \
--hostname racnode1 \
--shm-size 2G \
--dns-search=example.info \
--dns=162.88.2.6 \
--device=/dev/sdd:/dev/asm-disk1:rw \
--device=/dev/sde:/dev/asm-disk2:rw \
--privileged=false \
--volume /scratch/software/stage:/software/stage \
--volume /scratch/rac/cluster01/node1:/u01 \
--cpuset-cpus 0-3 \
--memory 16G \
--memory-swap 32G \
--sysctl kernel.shmall=2097152 \
--sysctl "kernel.sem=250 32000 100 128" \
--sysctl kernel.shmmax=8589934592 \
--sysctl kernel.shmmni=4096 \
--sysctl 'net.ipv4.conf.eth1.rp_filter=2' \
--sysctl 'net.ipv4.conf.eth2.rp_filter=2' \
--cap-add=SYS_NICE \
--cap-add=SYS_RESOURCE \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
--cap-add=AUDIT_WRITE \
--cap-add=AUDIT_CONTROL \
--restart=always \
--cpu-rt-runtime=95000 \
--ulimit rtprio=99 \
--systemd=true \
--name racnode1 \
oracle/database-rac:19.16-slim
親トピック: Oracle RACコンテナの作成
ブロック・デバイスを使用したRacnode2コンテナの作成
この手順を使用して、podman-host-2上のPodmanに2つ目のOracle Real Application Clusters (Oracle RAC)コンテナを作成します。
この例をPodmanホストで使用するには、--cpuset-cpu、--memoryおよび--device --dnsの値を使用している環境に適した値に変更します。--dnsで指定したドメイン・ネーム・サーバー(DNS)が、Oracle Grid Infrastructureに使用する予定のホスト名および単一クライアント・アクセス名(SCAN)を解決できることを確認します。次のコマンドで説明されているすべてのオプションを理解するには、ホストにインストールされているPodmanバージョンのPodmanドキュメントを参照してください。手動コマンドを使用してコンテナを正常に停止することもできます。このドキュメントのRACコンテナを正常に停止する方法を参照してください。
ノート:
UEKR7を使用してOracle RACコンテナをデプロイする場合は、Oracle RACコンテナ作成コマンドで--systemd=true \の前にある次の行を省略する必要があります。
--cpu-rt-runtime 95000 \ 省略しないと、コンテナの起動に失敗します
# podman create -t -i \
--hostname racnode2 \
--shm-size 2G \
--dns-search=example.info \
--dns=162.88.2.6 \
--device=/dev/sdd:/dev/asm-disk1:rw \
--device=/dev/sde:/dev/asm-disk2:rw \
--privileged=false \
--volume /scratch/rac/cluster01/node2:/u01 \
--cpuset-cpus 0-3 \
--memory 16G \
--memory-swap 32G \
--sysctl kernel.shmall=2097152 \
--sysctl "kernel.sem=250 32000 100 128" \
--sysctl kernel.shmmax=8589934592 \
--sysctl kernel.shmmni=4096 \
--sysctl 'net.ipv4.conf.eth1.rp_filter=2' \
--sysctl 'net.ipv4.conf.eth2.rp_filter=2' \
--cap-add=SYS_NICE \
--cap-add=SYS_RESOURCE \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
--cap-add=AUDIT_WRITE \
--cap-add=AUDIT_CONTROL \
--restart=always \
--cpu-rt-runtime=95000 \
--ulimit rtprio=99 \
--name racnode2 \
oracle/database-rac:19.16-slim
親トピック: Oracle RACコンテナの作成
ネットワークの接続とPodmanコンテナの起動
コンテナを起動する前に、パブリック・ネットワークとプライベート・ネットワークを設定し、ネットワークをOracle RACコンテナに割り当てます。
- Oracle RACコンテナへのネットワークの割当て
次の手順を使用して、Podmanコンテナ上のOracle RACで作成した各Oracle Real Application Clusters (Oracle RAC)ノードにネットワークを割り当てます。 - Podmanコンテナの起動とネットワークへの接続
Podman環境でOracle RACを有効にするには、コンテナを起動します。 - memlock制限の調整
コンテナ合計メモリーがホストのmemlock制限の計算に含まれるようにするには、Podmanコンテナの作成後にコンテナの制限を調整します。
親トピック: PodmanでのOracle RAC用のターゲット構成
Oracle RACコンテナへのネットワークの割当て
次の手順を使用して、Podmanコンテナ上のOracle RACで作成した各Oracle Real Application Clusters (Oracle RAC)ノードにネットワークを割り当てます。
eth0インタフェースはパブリックです。eth1インタフェースは1つ目のプライベート・ネットワーク・インタフェースであり、eth2インタフェースは2つ目のプライベート・ネットワーク・インタフェースです。
podman-host-1では、ネットワークをracnode1に割り当てます。
# podman network disconnect podman racnode1
# podman network connect rac_eth0pub1_nw --ip 10.0.20.150 racnode1
# podman network connect rac_eth1priv1_nw --ip 192.168.17.150 racnode1
# podman network connect rac_eth2priv2_nw --ip 192.168.18.150 racnode1
podman-host-2では、ネットワークをracnode2に割り当てます。
# podman network disconnect podman racnode2
# podman network connect rac_eth0pub1_nw --ip 10.0.20.151 racnode2
# podman network connect rac_eth1priv1_nw --ip 192.168.17.151 racnode2
# podman network connect rac_eth2priv2_nw --ip 192.168.18.151 racnode2
親トピック: ネットワークの接続とPodmanコンテナの起動
Podmanコンテナの起動とネットワークへの接続
Podman環境でOracle RACを有効にするには、コンテナを起動します。
podman-host-1の場合
# systemctl start podman-rac-cgroup.service
# podman start racnode1
podman-host-2の場合
# systemctl start podman-rac-cgroup.service
# podman start racnode2親トピック: ネットワークの接続とPodmanコンテナの起動
memlock制限の調整
コンテナ合計メモリーがホストのmemlock制限の計算に含まれるようにするには、Podmanコンテナの作成後にコンテナの制限を調整します。
memlock制限に推奨される90%の値を導出します。この例のコンテナは、racnode1およびracnode2です。
ノート:
ここに示す例は、Oracle Linux 8用です。-
racnode1にrootとしてログインし、次のコマンドを実行します。[root@racnode1 ~]# CONTAINER_MEMORY=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) [root@racnode1 ~]# echo $CONTAINER_MEMORY 17179869184 [root@racnode1 ~]# echo $((($CONTAINER_MEMORY/1024)*9/10)) 15099494既存の
memlock制限値を評価された値に置き換えます(これはOracle Linux 8用です):[root@racnode1 ~]# grep memlock /etc/security/limits.d/oracle-database-preinstall-19c.conf # oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM oracle hard memlock 222604311 # oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM oracle soft memlock 222604311 [root@racnode1 ~]# sed -i -e 's,222604311,15099494,g' /etc/security/limits.d/oracle-database-preinstall-19c.conf [root@racnode1 ~]# grep memlock /etc/security/limits.d/oracle-database-preinstall-19c.conf # oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM oracle hard memlock 15099494 # oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM oracle soft memlock 15099494 -
oracleユーザーのmemlock値を変更した後、gridユーザーの2つ目の制限構成ファイルについて値の置換を繰り返します。そのファイルは/etc/security/limits.d/grid-database-preinstall-19c.confです。[root@racnode1 ~]# sed -i -e 's,222604311,15099494,g' /etc/security/limits.d/grid-database-preinstall-19c.conf racnode2にrootとしてログインし、手順を繰り返します。
親トピック: ネットワークの接続とPodmanコンテナの起動
Oracle Grid InfrastructureおよびOracle Databaseソフトウェアのダウンロード
Oracle Technology NetworkからOracle DatabaseおよびOracle Grid Infrastructureソフトウェアをダウンロードし、ステージングします。
コンテナの作成方法として、ステージングされたダウンロード・ファイルにコンテナがアクセスするためにプロビジョニングされたPodmanボリュームがあります。Podmanコンテナ作成コマンドのこの行により、ボリュームが作成されます。
--volume /scratch/software/stage:/software/stage \
ソフトウェアをPodmanホストにダウンロードして/scratch/software/stageフォルダにステージングし、コンテナ内でこれらのファイルが/software/stageでアクセスできるようにします。
- Oracle Database 19c Grid Infrastructure (19.3) for Linux x86-64 (
LINUX.X64_193000_grid_home.zip) - Oracle Database 19c (19.3) for Linux x86-64 (
LINUX.X64_193000_db_home.zip)
Oracle Linux 8:
- Oracle Grid Infrastructure 19.16 GIRU、パッチ34130714
- パッチ34339952、Oracle Grid Infrastructure 19.16上にパッチ適用
- パッチ32869666、Oracle Grid Infrastructure 19.16上にパッチ適用
- 最新のOPatchバージョン
Oracle Linux 9:
- Oracle Grid Infrastructure 19.28 GIRU、パッチ37957391
- パッチ34436514、Oracle Database RU 19.28上にパッチ適用
- 最新のOPatchバージョン
https://www.oracle.com/database/technologies/
Oracle Database用のOPatchの最新バージョンをダウンロードします。
Primary Note For OPatch (Doc ID 293369.1)
親トピック: PodmanでのOracle RAC用のターゲット構成
コンテナへのOracle Grid InfrastructureおよびOracle RACのデプロイ
コンテナを準備したら、標準のOracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)を完了します。
プラットフォーム固有のインストール・ガイドの指示に従って、Oracle Grid Infrastructureをインストールして構成し、Oracle Real Application Clusters (Oracle RAC) 19cをデプロイします。
Oracle Linux 8の場合、リリース更新(RU) 19.16 (Oracle Database 19.16 RU、パッチ3413364)にパッチを適用します。
Oracle Linux 9の場合、リリース更新(RU) 19.28 (Oracle Database 19.28 RU、パッチ37957391)にパッチを適用します。
開始する前に、最新のOpatchリリース(p6880880_190000_Linux-x86-64.zip)をダウンロードします。Oracle Grid Infrastructureのインストール中にRUを適用するには、-applyRUフラグを使用できます。ソフトウェアのインストール中に個別パッチを適用するには、-applyOneOffsフラグを使用できます。
デプロイ後に考慮するオプション
Oracle RACをコンテナにデプロイした後、Oracle Real Application Clusters (Oracle RAC)ノードを追加または削除するか、異なるリリースのOracle RACをインストールするかを選択できます。
デプロイ完了後、Podman上のOracle RACクラスタを変更できます。
Oracle RACノードの追加
Oracle RACコンテナで実行されている既存のOracle RACクラスタでOracle RACノードを追加するには、このドキュメントの「Oracle RACコンテナの作成」で説明されているのと同じ方法でコンテナを作成しますが、コンテナの名前とホスト名を変更する必要があります。その他に必要なステップは、Oracle Grid Infrastructureドキュメントを参照してください。
親トピック: PodmanでのOracle RAC用のターゲット構成
PodmanでのOracle RACの既知の問題
PodmanコンテナにOracle Real Application Clusters (Oracle RAC)をデプロイする際、問題が発生した場合は、既知の問題かどうかを確認してください。
PodmanデプロイメントでのOracle RACに固有の問題については、My Oracle SupportドキュメントID 2885873.1を参照してください。
Podman上のOracle RAC構成に関する追加情報
この情報は、Podman上のOracle Real Application Clusters (Oracle RAC)で発生する可能性のある問題の解決に役立ちます。
- Oracle RACのインタフェース名をリカバリする方法
コンテナ上のOracle RACノードでネットワーク・インタフェース名が表示されなくなり、別のインタフェース名が作成された場合は、この手順を使用して名前をリカバリします。 - Podmanネットワークで使用されるNICアダプタを交換する方法
Podmanホストの外部にある物理ネットワークでネットワーク・インタフェース・カード(NIC)を交換する必要がある場合は、この手順を使用します。 - PodmanでOracle RACをクリーン・アップする方法
PodmanでOracle Real Application Clusters (Oracle RAC)を削除する必要がある場合は、この手順を使用します。 - podman image pruneを使用したPodmanイメージのクリーン・アップ
Podmanサーバー上のOracle RACでPodmanイメージをクリーン・アップする必要がある場合は、podman image pruneコマンドを使用できます。 - Podmanホストの再起動後のOracle RACノードの可用性を保証する方法
再起動後のOracle RACノードの可用性を保証するには、Podmanサービスを有効にしておきます。 - Oracle RACコンテナを正常に停止する方法
PodmanコンテナでOracle Real Application Clusters (Oracle RAC)を正常に停止するには、この手順を使用します。 - Podmanホスト・オペレーティング・システムのアップグレードのためのガイドライン
可用性の要件とOracle Linuxオペレーティング・システムの要件を満たすオペレーティング・システムおよびサーバーのアップグレード・オプションを選択します。
親トピック: PodmanでのOracle RAC用のターゲット構成
Oracle RACのインタフェース名をリカバリする方法
コンテナ上のOracle RACノードでネットワーク・インタフェース名が表示されなくなり、別のインタフェース名が作成された場合は、この手順を使用して名前をリカバリします。
Oracle Real Application Clusters (Oracle RAC)を実行しているコンテナのネットワークが切断された場合、同じネットワークを再接続すると、Oracle RACノードでネットワーク・インタフェース名が表示されなくなる可能性があります。前のネットワーク・インタフェースのかわりに、別のインタフェース名が作成されます。このシナリオが発生した場合、その結果はOracle Clusterwareのネットワーク構成と矛盾するネットワーク構成になります。そのネットワーク・インタフェースがクラスタ・ノードの唯一のプライベート・インタフェースである場合、そのノードはクラスタから削除できます。
この問題を修正するには、この手順を使用して、コンテナでネットワーク・インタフェース名をリストアし、Oracle Clusterwareで最初に構成した同じネットワーク・インタフェース名にします。
- コンテナを停止します。
- すべてのネットワークを切断します。
- Oracle Grid Infrastructureインストール用にコンテナを作成して構成したときに使用したのと同じ順序でネットワークを再接続します。
- コンテナを再起動します。
親トピック: Podman上のOracle RAC構成に関する追加情報
Podmanネットワークで使用されるNICアダプタを交換する方法
Podmanホストの外部にある物理ネットワークでネットワーク・インタフェース・カード(NIC)を交換する必要がある場合は、この手順を使用します。
Oracle RACのパブリック・ネットワークまたはプライベート・ネットワークがPodmanホストの外部にある物理ネットワークに接続されている場合、対応するPodmanネットワークでは、PodmanホストのNICアダプタを親アダプタとして使用して、LinuxブリッジをバイパスするMacvlanモードを使用します。
構成後に、Oracle Real Application Clusters (Oracle RAC)を実行しているコンテナのネットワークで使用されるNICカードを切断して交換する必要がある場合、同じネットワークを再接続すると、Oracle RACノードでネットワーク・インタフェース名が表示されなくなる可能性があります。前のネットワーク・インタフェース名のかわりに、別のインタフェース名が作成されます。このシナリオが発生した場合、その結果はOracle Clusterwareのネットワーク構成と矛盾するネットワーク構成になります。そのネットワーク・インタフェースがクラスタ・ノードの唯一のプライベート・インタフェースである場合、そのノードはクラスタから削除できます。
この問題を解決するには、次の手順を使用します。
-
ノードでOracle Clusterwareを無効にしてから停止します。
# crsctl disable crs # crsctl stop crs - 交換するホストNICに対応するネットワークからコンテナを切断します。たとえば、コンテナ名が
mycontainerで、ネットワーク名がmypriv1の場合は、次のコマンドを入力します。# podman network disconnect mycontainer mypriv1 - ホストNICを交換し、新しいNICが検出され、ホストで使用可能であり、ホスト・オペレーティング・システムのデバイス名が検出されることを確認します。NIC名は、以前とは異なる場合があります。ホスト環境によっては、このステップでホスト・オペレーティング・システムの再起動が必要になる場合があります。たとえば、NICデバイス名が以前は
eth1であった場合、交換後はeth3になることがあります。 - 検出したNICデバイス名を使用してネットワークを再作成します。たとえば、ネットワーク名が
mypriv1で、以前はeth1だったNICが現在はeth3である場合です。# podman network rm mypriv1 # podman network create .... -o parent=eth3 mypriv1 - コンテナを停止します。
- 他のネットワークをコンテナから切断します。
- コンテナを最初に作成したときに使用したのと同じ順序で、すべてのネットワークをコンテナに再接続します。同じ順序でネットワークを接続すると、コンテナ内のインタフェース名は交換前と必ず同じになります。
- コンテナを起動し、ネットワーク・インタフェース名およびIPアドレスが以前と同じであることを確認します。
- ノードでClusterwareを再起動して有効にします。
# crsctl enable crs # crsctl start crs
親トピック: Podman上のOracle RAC構成に関する追加情報
PodmanでOracle RACをクリーン・アップする方法
PodmanでOracle Real Application Clusters (Oracle RAC)を削除する必要がある場合は、この手順を使用します。
Oracle RACノードに使用したコンテナを削除した後、そのコンテナを再作成すると、マウント・ポイントに同じボリューム(/u01)を使用しても、そのコンテナはOracle RACノードではありません。コンテナを再度Oracle RACノードにするには、Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor LinuxおよびOracle Real Application Clusters管理およびデプロイメント・ガイドのノードの削除手順とノードの追加手順を使用します。
podman image pruneを使用したPodmanイメージのクリーン・アップ
Podmanサーバー上のOracle RACでPodmanイメージをクリーン・アップする必要がある場合は、podman image pruneコマンドを使用できます。
通常、Podmanのオブジェクトは、明示的に削除しないかぎり削除されません。podman image pruneコマンドを使用してPodmanイメージでOracle RACを削除する方法は、Podmanドキュメントを参照してください。
親トピック: Podman上のOracle RAC構成に関する追加情報
Podmanホストの再起動後のOracle RACノードの可用性を保証する方法
再起動後のOracle RACノードの可用性を保証するには、Podmanサービスを有効にしておきます。
デフォルトでは、Podmanエンジンのインストール後、PodmanサービスはPodmanホストで有効になっています。このサービスは、PodmanホストでOracle RACノードの可用性を保証するために有効のままにしておく必要があります。Podmanサービスが有効になっている場合、Podmanホストが再起動されると、計画メンテナンスによるものであれ計画外停止のためであれ、Podmanサービスも再起動されます。Podmanサービスは管理対象のコンテナを自動的に再起動するため、Oracle RACノード・コンテナは自動的に再起動されます。Oracle Clusterware (CRS)が自動再起動に対して有効になっている場合、Podmanは再起動されたノードでOracle Clusterwareの起動も試みます。
親トピック: Podman上のOracle RAC構成に関する追加情報
Oracle RACコンテナを正常に停止する方法
PodmanコンテナでOracle Real Application Clusters (Oracle RAC)を正常に停止するには、この手順を使用します。
例2-5 CRSスタックおよびコンテナの停止による正常な停止
-
SRVCTLを使用して、Oracle RACデータベースを正常に停止します。たとえば:
srvctl stop instance -d <db_unique_name> -force -failover -
コンテナ内のCRSスタックを停止します。たとえば:
[root@racnode1 ~]# crsctl stop crs -
ホストからコンテナを停止します。たとえば:
# podman stop racnode1
例2-6 猶予期間を設定してホストからコンテナを停止することによる正常な停止
猶予期間を使用してホストから直接コンテナを停止するには、コンテナ内のOracle RACの正常な停止に十分な秒数のタイムアウトが必要です。たとえば:
# podman stop -t 600 racnode1
ノート:
コンテナが、指定した猶予期間(秒)よりも早く正常に停止できる場合、コマンドは猶予期間の制限前に完了します。親トピック: Podman上のOracle RAC構成に関する追加情報
Podmanホスト・オペレーティング・システムのアップグレードのためのガイドライン
可用性の要件とOracle Linuxオペレーティング・システムの要件を満たすオペレーティング・システムおよびサーバーのアップグレード・オプションを選択します。
Podmanホスト・オペレーティング・システムにパッチを適用またはアップグレードするには、サーバーで新しいオペレーティング・システムにパッチを適用またはアップグレードします。マルチホスト構成では、ローリング方式でPodmanホストをアップグレードできます。単一のPodmanホスト上のPodmanのOracle RACは開発およびテスト環境用であるため、可用性は問題にならないので、PodmanデータベースのOracle RACを新しいアップグレードされたPodmanホストに移行できます。詳細は、Oracle Linuxのドキュメントを参照してください。
ノート: サーバー・オペレーティング・システムがサポートされ、Podmanホスト・オペレーティング・システムのカーネルおよびパッケージの要件がPodmanの最小要件を満たしていることを確認します。