- 構成概要と事前準備
- VMを作成してOracle Linux 8をインストールする(この記事)
- iSCSI共有ストレージとBIND DNSサーバを構築する
- GIインストール前準備
- Grid Infrastructureのインストール
- Oracleデータベースのインストールとデータベース作成
この記事でやること
第2回では、Proxmox VE上にVM3台を作成し、Oracle Linux 8.9をインストールしてOS初期設定を行います。
| 作業 | 対象 |
|---|---|
| VMの作成 | ol8-rac19-21 / ol8-rac19-22 / ol8-iscsi-23 |
| Oracle Linux 8.9 インストール | 全3ノード |
| ネットワーク・ホスト名設定 | 全3ノード |
| タイムゾーン・NTP設定 | 全3ノード |
| DNFメディアリポジトリ登録 | 全3ノード |
| firewalld無効化 | 全3ノード |
| SELinux permissive設定 + THP無効化 | 全3ノード |
VMの作成(Proxmox VE)
Proxmox VE管理画面(https://192.168.1.100:8006)にアクセスし、VM3台を作成します。
※ 本環境の値。各自の環境に読み替えてください。
共通設定の方針
全VMで共通する設定です。
| 項目 | 設定値 | 補足 |
|---|---|---|
| SCSIコントローラ | VirtIO SCSI single | I/Oスレッドを有効活用できる |
| NICドライバ | virtio | 準仮想化ドライバ。パフォーマンスが良い |
| Qemuエージェント | 有効 | Proxmox管理画面からIPアドレスの確認などができるようになる |
| ISO | p-nas-nfs:iso/V1039330-01.iso | NAS上のOracle Linux 8.9 ISO(※) |
※
p-nas-nfsは本環境のProxmox NFSストレージ名です。各自の環境のISOストレージ名に読み替えてください。
ノード1(ol8-rac19-21)
「VMを作成」をクリック

全般タブ
- ノード:
pve01 - 名前:
ol8-rac19-21

- ノード:
OSタブ: ISO
p-nas-nfs:iso/V1039330-01.iso(各自のストレージ名に読み替え)、種別Linux、バージョン6.x - 2.6 Kernel
システムタブ: Qemuエージェント 有効化

ディスク:
local-lvm、150 GB
CPU: 3コア

メモリ: 12288 MiB(12 GB)

ネットワーク:
vmbr1、タグ10(VLAN10 / Public)
VM作成後、NICを2つ追加します(「ハードウェア」→「追加」→「ネットデバイス」)。
| 追加NIC | ブリッジ | VLANタグ | 用途 |
|---|---|---|---|
| 2枚目 | vmbr1 | 20 | Interconnect |
| 3枚目 | vmbr1 | 30 | Management |



ノード2(ol8-rac19-22)
ノード1と同じ手順で作成します。差分のみ記載します。
| 項目 | 設定値 |
|---|---|
| 名前 | ol8-rac19-22 |
NICの追加(VLAN20・VLAN30)はノード1と同じです。
ストレージノード(ol8-iscsi-23)
RACノードとの主な違いはCPUとメモリが小さい点と、ASM用の追加ディスクが2本ある点です。
「VMを作成」をクリック
全般タブ
- ノード:
pve01 - 名前:
ol8-iscsi-23

- ノード:
OSタブ: ISO
p-nas-nfs:iso/V1039330-01.iso(各自のストレージ名に読み替え)、種別Linux、バージョン6.x - 2.6 Kernel
システムタブ: Qemuエージェント 有効化

ディスク:
local-lvm、60 GB(OS用)
CPU: 1コア

メモリ: 2048 MiB(2 GB)

ネットワーク:
vmbr1、タグ10(VLAN10 / Public)
VM作成後、NICを2つ追加します(ノード1・2と同様)。



さらに、ASM用ディスクを2本追加します(「ハードウェア」→「追加」→「ハードディスク」)。
| ディスク | データストア | サイズ | 用途 |
|---|---|---|---|
| scsi1 | local-lvm | 100 GB | ASM DATA |
| scsi2 | local-lvm | 100 GB | ASM RECO |



Oracle Linux 8.9 インストール
3台のVMに順番にOracle Linux 8.9をインストールします。Proxmox管理画面のコンソール(noVNC)から操作します。
パーティション設計の方針
Oracle RACでは /home は不要なため削除し、その領域を / に割り当てます。swapはメモリサイズに合わせて設定します。
| ノード | swap | / |
|---|---|---|
| ol8-rac19-21 / 22 | 12 GiB | 残り全て(約135 GB) |
| ol8-iscsi-23 | 2 GiB | 残り全て(約55 GB) |
ノード1・2(ol8-rac19-21 / ol8-rac19-22)
VMを起動 → 「Install Oracle Linux 8.9.0」を選択

言語: 日本語 → 続行

ソフトウェアの選択 → 「サーバー(GUI使用)」を選択
インストール先 → ストレージ設定「カスタム」

- 「ここをクリックすると自動的に作成します。」をクリック(
/boot・/home・swap・/が自動作成される)


/homeを削除- swap を 12 GiB に変更
- 残り全てを
/に割り当て

- 「ここをクリックすると自動的に作成します。」をクリック(
ネットワークとホスト名 → Management NIC(VLAN30)のみ設定

- 左ペインのインタフェース一覧から Management NIC(net2相当)を選択してオンにする
- 「設定」→ 「全般」タブ → 「優先的に自動接続する」にチェックを入れる

- 「設定」→「IPv4設定」タブ → 方式: 手動 → アドレスを追加
- ノード1: アドレス
192.168.30.21、プレフィックス24、ゲートウェイ 空欄 - ノード2: アドレス
192.168.30.22、プレフィックス24、ゲートウェイ 空欄
- ノード1: アドレス
- 「保存」


「優先的に自動接続する」を設定しないと、インストール後の再起動でNICが接続されず踏み台からSSH接続できません。
インストーラーの画面には複数のNICが並んでいます。Management NIC(VLAN30 / net2)を正しく特定するために、事前にProxmox管理画面の「ハードウェア」タブでnet2のMACアドレスを確認しておき、インタフェース一覧と照合してから選択してください。
インストール時にManagement NICのみ設定するのは、OS起動後すぐに踏み台からSSH接続できるようにするためです。SSH接続が確立できればnoVNCコンソールを使わずにnmcliでコマンドライン操作できるため、Public / Interconnect NICの設定はインストール後にSSH経由で行います。
rootパスワードを設定
「インストールの開始」

ストレージノード(ol8-iscsi-23)
基本的な手順はノード1・2と同じですが、以下の2点が異なります。
インストール先の選択に注意が必要です。 ストレージノードには100 GBのディスクが2本(ASM DATA・RECO用)ありますが、OSインストール先には60 GBのディスクのみを選択します。

| 項目 | ストレージノードの設定 |
|---|---|
| インストール先 | 60 GiBのディスクのみ選択(100 GBは選択しない) |
| swap | 2 GiB(メモリ2 GBに合わせる) |
| 管理NIC | 192.168.30.23 / 24 |
| 優先的に自動接続する | チェックを入れる(全般タブ) |
Management NIC(VLAN30 / net2)の特定はノード1・2と同様です。Proxmox管理画面でnet2のMACアドレスを確認してから選択してください。
OS初期設定
OL8インストール完了後、以下の設定を行います。
【事前作業】NIC名とVLANの対応確認
複数NICを持つVMでは、OSのインタフェース名(ens18/ens19/ens20など)とProxmoxのNIC(net0/net1/net2)の対応をMACアドレスで確認してから設定します。順番が環境によって異なる場合があるため、必ず突き合わせてから進めてください。
① Proxmox WebUIでMACアドレスを確認
「ハードウェア」タブ → ネットワークデバイスを1つずつクリックしてMACアドレスをメモします。
| Proxmox NIC | VLANタグ | ネットワーク帯 | 用途 |
|---|---|---|---|
| net0 | 10 | 10.0.10.0/24 | Public |
| net1 | 20 | 172.16.20.0/24 | Interconnect |
| net2 | 30 | 192.168.30.0/24 | Management |
② OS側でMACアドレスを確認
Proxmoxコンソール(noVNC)から実行します。
ip link show
出力例:
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> ... link/ether bc:24:11:aa:bb:cc
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> ... link/ether bc:24:11:dd:ee:ff
4: ens20: <BROADCAST,MULTICAST,UP,LOWER_UP> ... link/ether bc:24:11:11:22:33
③ 対応表を作成してインタフェース名を確定
| OSインタフェース | MACアドレス(実測値) | Proxmox NIC | VLAN | 用途 |
|---|---|---|---|---|
| ens18 | bc:24:11:… | net0 | 10 | Public |
| ens19 | bc:24:11:… | net1 | 20 | Interconnect |
| ens20 | bc:24:11:… | net2 | 30 | Management |
順番が異なる場合は、以降のコマンド中の
ens18/ens19/ens20を実際の名前に読み替えてください。
【事前作業】踏み台からSSH接続
Management NIC(VLAN30)のIPはOSインストール時に設定済みのため、踏み台サーバからSSH接続できます。以降の作業はSSH接続後にコピペで実行できます。
ssh root@192.168.30.21 # ol8-rac19-21
ssh root@192.168.30.22 # ol8-rac19-22
ssh root@192.168.30.23 # ol8-iscsi-23
※ 本環境の値。各自の環境に読み替えてください。
ネットワーク・ホスト名設定(1台ずつ)
IPアドレスとホスト名はノードごとに異なるため、1台ずつ実施します。
ノード1(ol8-rac19-21)
# ホストとユーザの確認
hostname && whoami
# 接続プロファイル名を確認(nmcli con modで指定する名前。通常はens18等のインタフェース名と一致するが、
# 「有線接続1」のような名前になっている場合は以降のcon modコマンドのプロファイル名を読み替えること)
nmcli con show
# ens18 (VLAN10 / Public)
# ipv4.dns: BINDはまだ起動していないが設定だけ入れておく。第3回でBIND構築後に有効になる
nmcli con mod ens18 \
ipv4.addresses 10.0.10.21/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv4.dns 10.0.10.23 \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens18
# ens19 (VLAN20 / Interconnect)
nmcli con mod ens19 \
ipv4.addresses 172.16.20.21/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens19
# ens20 (VLAN30 / Management)
# インストーラーのGUIで設定済みだが、IPv6無効化など細かい設定を統一するために再設定する
nmcli con mod ens20 \
ipv4.addresses 192.168.30.21/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv4.dns 192.168.30.23 \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens20
# ホスト名
hostnamectl set-hostname ol8-rac19-21
# 確認
ip a && hostname
ノード2(ol8-rac19-22)
# ホストとユーザの確認
hostname && whoami
# 接続プロファイル名を確認(nmcli con modで指定する名前。通常はens18等のインタフェース名と一致するが、
# 「有線接続1」のような名前になっている場合は以降のcon modコマンドのプロファイル名を読み替えること)
nmcli con show
# ens18 (VLAN10 / Public)
# ipv4.dns: BINDはまだ起動していないが設定だけ入れておく。第3回でBIND構築後に有効になる
nmcli con mod ens18 \
ipv4.addresses 10.0.10.22/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv4.dns 10.0.10.23 \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens18
# ens19 (VLAN20 / Interconnect)
nmcli con mod ens19 \
ipv4.addresses 172.16.20.22/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens19
# ens20 (VLAN30 / Management)
# インストーラーのGUIで設定済みだが、IPv6無効化など細かい設定を統一するために再設定する
nmcli con mod ens20 \
ipv4.addresses 192.168.30.22/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv4.dns 192.168.30.23 \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens20
# ホスト名
hostnamectl set-hostname ol8-rac19-22
# 確認
ip a && hostname
ストレージノード(ol8-iscsi-23)
# ホストとユーザの確認
hostname && whoami
# 接続プロファイル名を確認(nmcli con modで指定する名前。通常はens18等のインタフェース名と一致するが、
# 「有線接続1」のような名前になっている場合は以降のcon modコマンドのプロファイル名を読み替えること)
nmcli con show
# ens18 (VLAN10 / Public)
nmcli con mod ens18 \
ipv4.addresses 10.0.10.23/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens18
# ens19 (VLAN20 / Private)
nmcli con mod ens19 \
ipv4.addresses 172.16.20.23/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens19
# ens20 (VLAN30 / Management)
# インストーラーのGUIで設定済みだが、IPv6無効化など細かい設定を統一するために再設定する
nmcli con mod ens20 \
ipv4.addresses 192.168.30.23/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens20
# ホスト名
hostnamectl set-hostname ol8-iscsi-23
# 確認
ip a && hostname
このノード自身がBINDサーバになるため、DNS設定は不要です。
以降の作業(タイムゾーン設定以降)は、3台同時に実行できます。MobaXtermのMultiExec機能など、複数ホストへの同時実行ツールを使うと効率的です。
タイムゾーン設定(全ノード同時)
複数サーバを扱う場合、タイムゾーンを統一しておくのはセオリーです。ノード間でタイムゾーンがずれていると、ログのタイムスタンプが一致せずトラブルシューティングが困難になります。本環境は日本国内での運用を想定しているため Asia/Tokyo を設定します。異なるタイムゾーンで運用する場合は適宜読み替えてください。
# ホストとユーザの確認
hostname && whoami
# 変更前の確認
timedatectl
# タイムゾーンをAsia/Tokyoに設定(再起動不要で即時反映される)
timedatectl set-timezone Asia/Tokyo
# 確認
timedatectl
NTP設定(全ノード同時)
本環境では踏み台サーバ(ol8-bastion-254 / 192.168.30.254)をNTPサーバとして使用しています。既存のNTPサーバがある場合はそちらのIPに読み替えてください。
# ホストとユーザの確認
hostname && whoami
# NTPサーバを追記(iburst: 初回同期時に複数パケットを送って素早く同期する)
echo "server 192.168.30.254 iburst" >> /etc/chrony.conf
# chronydを再起動して設定を反映
systemctl restart chronyd
# 時刻を即時修正(通常chronydは少しずつ時刻を調整するが、makestepは強制的に即時修正する)
chronyc makestep
# 同期確認(Reference IDが設定したNTPサーバのIPになっていること)
chronyc tracking
DNFメディアリポジトリの登録(全ノード同時)
インターネット接続がない環境でパッケージをインストールするため、ISOイメージ(CD-ROM)をリポジトリとして登録します。
# ホストとユーザの確認
hostname && whoami
# CD-ROMをマウント
mount /dev/cdrom /media
df | grep media
# リポジトリファイルを作成
cat > /etc/yum.repos.d/local-oel-dvd.repo << 'EOF'
[dvd-appstreams]
name=dvd-appstreams
baseurl=file:///media/AppStream
enabled=1
gpgcheck=0
[dvd-baseos]
name=dvd-baseos
baseurl=file:///media/BaseOS
enabled=1
gpgcheck=0
EOF
# ファイル内容確認
cat /etc/yum.repos.d/local-oel-dvd.repo
# OL8デフォルトリポジトリを無効化(インターネット接続が必要なリポジトリを無効にしないと、
# オフライン環境でのパッケージインストール時にエラーになる)
dnf config-manager -q --disable 'ol8*'
# キャッシュを削除(古いキャッシュが残っていると新しいリポジトリ設定が反映されない場合がある)
dnf clean all
# メタデータを取得してキャッシュを作成(パッケージ検索・依存解決が高速になる)
dnf makecache
# 有効なリポジトリ一覧を確認(dvd-appstreams と dvd-baseos のみが表示されること)
dnf repolist
root .bashrc設定(全ノード同時)
rootユーザーのプロンプトに色を付けて視認性を上げます。
# ホストとユーザの確認
hostname && whoami
# バックアップ取得
work_date=$(date +%Y%m%d)
cp -p ~/.bashrc{,.${work_date}}
# 追記
echo "export PS1='\\[\\e[1;33m\\]\\u@\\h:\\W#\\[\\e[m\\] '" >> ~/.bashrc
# 差分確認
diff ~/.bashrc{,.${work_date}}
# 反映
source ~/.bashrc
firewalld無効化(全ノード同時)
Oracle RACはクラスタウェアが独自にポート管理を行うため、firewalldが有効だとクラスタ間通信が妨げられる可能性があります。本環境(ラボ環境)ではfirewalldを無効化して構築します。
# ホストとユーザの確認
hostname && whoami
# 変更前の確認
systemctl status firewalld --no-pager
# firewalldを即時停止
systemctl stop firewalld
# OS起動時の自動起動を無効化(stopだけでは再起動後に再び起動してしまうため両方必要)
systemctl disable firewalld
# 確認(inactive かつ disabled になっていること)
systemctl status firewalld --no-pager
SELinux permissive設定 + THP無効化(全ノード同時)
SELinuxとTHPの無効化はいずれも再起動が必要です。まとめて設定して1回のrebootで反映します。
SELinux permissive設定
enforcing(ブロックあり)から permissive(ログのみ・ブロックなし)に変更します。Oracle RACの動作を確認しながらポリシー違反を把握できるため、ラボ環境では permissive が扱いやすいです。
# ホストとユーザの確認
hostname && whoami
# バックアップ取得
work_date=$(date +%Y%m%d)
cp -p /etc/selinux/config{,.${work_date}}
# permissiveに変更
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
# 差分確認(enforcing → permissive になっていること)
diff /etc/selinux/config{,.${work_date}}
# 設定値確認
grep '^SELINUX=' /etc/selinux/config
# → SELINUX=permissive
透過的HugePages(THP)無効化
Oracle Databaseは独自のメモリ管理機構(HugePages)を使用するため、OSのTHP(Transparent HugePages)と競合してパフォーマンス低下やフリーズが発生します。Oracle環境ではTHP無効化が必須です。
# 現在の状態確認([always] madvise never が初期状態)
cat /sys/kernel/mm/transparent_hugepage/enabled
# カーネル起動引数に永続的に無効化を設定
grubby --update-kernel=ALL --args="transparent_hugepage=never"
| 状態 | 意味 | Oracle DBでの評価 |
|---|---|---|
[always] | システム全体でTHPが常に有効 | NG(非推奨) |
[madvise] | 明示的に要求したプロセスのみ使用 | △(注意) |
[never] | THP完全無効 | OK(推奨) |
再起動と確認
reboot
再起動後、以下で両方の設定を確認します。
# SELinux確認
getenforce
# → Permissive
# THP確認([never] になっていること)
cat /sys/kernel/mm/transparent_hugepage/enabled
# → always madvise [never]
まとめ
この記事では以下を完了しました。
- Proxmox VE上にVM3台を作成(RACノード×2・ストレージノード×1)
- Oracle Linux 8.9のインストール(パーティション設計・管理NIC設定)
- ネットワーク・ホスト名・タイムゾーン・NTPの設定
- DNFメディアリポジトリの登録
- firewalld無効化・SELinux permissive設定・THP無効化
次の記事では、iSCSI共有ストレージの構築とBIND DNSサーバの設定を行います。


































