5 Oracle VMユーザー・ドメインの管理

Oracle VMは、InfiniBandネットワーク・ファブリックを使用するOracle Exadata Database Machineシステム全体で使用されるXenベースの仮想化テクノロジです。

5.1 Oracle VMおよびExadata Database Machine

Exadata Database Machineをデプロイする場合は、データベース・サーバーにOracle VMを実装できます。

Oracle VM Serverおよび1つ以上のOracle VMゲストが、すべてのデータベース・サーバーにインストールされます。Oracle Exadata Deployment Assistant (OEDA)で作成されたスクリプトを使用して初期デプロイメントでOracle VM環境を構成するか、既存の環境をOracle VMに移行できます。

ノート:

Oracle VMは、X7-8などの8ソケット・サーバーではサポートされていません。

5.1.1 Oracle VMについて

Oracle VMを使用すると、サポートされている仮想化環境内にOracle Linuxオペレーティング・システムとアプリケーション・ソフトウェアをデプロイできます。

Oracle Exadata Database MachineOracle VMを使用する場合、ワークロードにCPU、メモリー、オペレーティング・システムおよびsysadminの分離を提供します。VMとネットワークおよびI/Oの優先度付けを組み合せて、完全なスタック分離を実現できます。連結の場合、Oracle VMで複数の信頼できるデータベースまたはプラガブル・データベースを作成すると、リソースをより動的に共有できます。

Oracle VM環境は、Oracle VM Server、仮想マシンおよびリソースで構成されます。Oracle VM Serverは、ドメインとも呼ばれる、仮想マシンを実行するための軽量でセキュアなサーバー・プラットフォームを提供する、管理された仮想化環境です。

Oracle VM Serverはベア・メタル・コンピュータにインストールされています。各Oracle VM Serverに存在するハイパーバイザは、フットプリントが非常に小さい仮想マシン・マネージャおよびスケジューラです。システムで唯一完全な権限を持つエンティティとなるように設計されています。CPUとメモリーの使用量、権限の確認、ハードウェア割込みなど、システムの最も基本的なリソースのみを制御します。

ハイパーバイザは、1台のホスト・コンピュータで複数の仮想マシンを安全に実行します。各仮想マシンは独自のドメインで実行され、独自のゲスト・オペレーティング・システムを持ちます。プライマリ管理ドメイン、dom0 (domain zeroの略称)は、ハイパーバイザの上部のゲストとしても実行されます。dom0には、ハードウェアおよびデバイス・ドライバへの特権アクセス権があります。

ユーザー・ドメイン(domU)は、InfiniBand HCAにアクセスできる権限のないドメインです。domUは、Oracle VM Serverでdom0によって起動および管理されます。domUは他のドメインとは独立して動作するため、domUの仮想リソースに適用される構成変更は、他のドメインには影響しません。domUの障害は、他のドメインには影響しません。

ドメイン、ゲストおよび仮想マシンは、ほぼ同じ意味に使用されていますが、若干の違いがあります。

  • ドメインは、構成可能な一連のリソースで、メモリー、仮想CPU、仮想マシンを実行するネットワーク・デバイスおよびディスク・デバイスを含みます。
  • ドメインまたは仮想マシンには仮想リソースが付与され、他のドメインまたはホスト・サーバー自体とは関係なく起動、停止および再起動できます。
  • ゲストは、ドメイン内で実行される仮想化されたオペレーティング・システムです。各ゲスト・オペレーティング・システムには、「ユーザー・ドメイン」と呼ばれるこのシステムの管理ドメインがあり、「domU」と省略されます。

最大8つのゲストは、それぞれ独自のドメイン内で同じOracle VM Serverで実行できます。これらのドメインは、InfiniBandHCAにアクセスできる権限のないドメインです。各domUは、Oracle VM Serverで実行されるdom0とともに起動されます。他のドメインはdom0と直接相互作用しません。これらの要件は、ハイパーバイザ自体によって処理されます。dom0はハイパーバイザを管理する手段のみを提供します。

Oracle Exadata Database MachineOracle VMを作成および構成するには、Oracle Exadata Deployment Assistant (OEDA)を使用します。

5.1.2 Oracle VMデプロイメントの仕様と制限

このトピックでは、Oracle VMOracle Exadata Database Machineで使用するためのデプロイメントの仕様と制限について説明します。

表5-1 Oracle VMデプロイメントの仕様と制限

属性 X3-2の値 X4-2の値 X5-2の値 X6-2の値 X7-2の値 X8-2の値

各データベース・サーバーのOracle VMユーザー・ドメインの最大数

8

8

8

8

8

8

Oracle VMを使用した各データベース・サーバー上の物理メモリーの合計

デフォルト: 256GB

最大値: 512GB

デフォルト: 256GB

最大値: 512GB

デフォルト: 256GB

最大値: 768GB

デフォルト: 256GB

最大値: 768GB

デフォルト: 384GB

最大値: 768GB

デフォルト: 384GB

最大値: 768GB

すべてのOracle VMユーザー・ドメインの各データベース・サーバー上の使用可能メモリーの合計

最大値: 464GB

最大値: 464GB

最大値: 720GB

最大値: 720GB

最大値: 720GB

最大値: 720GB

Oracle VMユーザー・ドメインの最小メモリー制限

16GB

16GB

16GB

16GB

16GB

16GB

各データベース・サーバーの合計CPUコア(仮想CPU)

16 (32)

24 (48)

32 (64)

44 (88)

48 (96)

48 (96)

Oracle VMユーザー・ドメインのCPUコア(仮想CPU)制限

ノート: CPUのオーバープロビジョニングは許可されますが、パフォーマンスの競合が発生する可能性があります。

最小値: 2 (4)

最大値: 14 (28)

最小値: 2 (4)

最大値: 22 (44)

最小値: 2 (4)

最大値: 30 (60)

最小値: 2 (4)

最大値: 42 (84)

最小値: 2 (4)

最大値: 46 (92)

最小値: 2 (4)

最大値: 46 (92)

各データベース・サーバーのOracle VMユーザー・ドメインの合計使用可能ディスク領域

700GB

1.6TB

1.6TB (ストレージ拡張キットを使用すると3.7TB)

1.6TB (ストレージ拡張キットを使用すると3.7TB)

1.6TB (ストレージ拡張キットを使用すると3.7TB)

3.2TB

ノート:

1つのCPUコア= 1つのOCPU = 2つの仮想CPU = 2つのハイパー・スレッド

5.1.3 管理ドメイン(dom0)でサポートされている操作

dom0を手動で変更すると、Oracle VM Serverの構成上の問題が発生する場合があります。これにより、パフォーマンスが低下したり、サービスが失われる可能性があります。

警告:

Oracleでは、ドキュメント化されている内容以外のdom0への変更はサポートされていません。dom0内のサード・パーティ・ソフトウェアの実行はサポートされていません。

dom0での操作がサポートされているかどうか不明な場合は、Oracleサポート・サービスに問い合せてください。

5.1.4 Oracle VMリソース

Oracle VMインフラストラクチャの2つの基本部分(ネットワークおよびストレージ)は、Oracle VMの外部で構成されます。

ネットワーク

Oracle Exadata Deployment Assistant (OEDA)を使用してOracle Exadataラックの構成詳細を指定する場合は、Oracle VM環境に必要なネットワークIPアドレスの作成方法を入力します。生成されたOEDA設定ファイルはOracle Exadataラックに転送され、ネットワーク・アドレスの作成に使用されます。

ストレージ

Oracle VMには、仮想マシンの作成および管理に不可欠な環境リソースを格納する場所が常に必要です。こういったリソースには、ISOファイル(仮想DVDイメージ)、VM構成ファイル、およびVM仮想ディスクがあります。このようなリソースのグループが格納される場所を記憶域リポジトリといいます。

Exadata Database Machineでは、Oracle VMの記憶域はOCFS2 (Oracle Cluster File System)ストレージとして構成されます。

X5-2以降の2ソケットのOracle Exadata Database Machineシステムでのみ、ディスク拡張キットを購入してストレージ容量を増やすことができます。追加のディスク領域を使用し、/EXAVMIMAGESを拡張して、より多くのOracle VMゲスト(最大8個まで)をサポートしたり、各domUの/u01パーティションのサイズを増やすことができます。

Exadataでサポートされる最大VM数

既存のExadata Database Serverの場合、サポートされるVMの最大数は8個です。ソフトウェアの前提条件については、My Oracle Supportのノート888828.1および1270094.1を参照してください。

5.1.4.1 管理ドメインのストレージ構成

管理ドメイン(dom0)には、イメージ・リポジトリおよびOracle VM構成ファイルが含まれます。

管理ドメインには次のディレクトリが含まれます。

  • /EXAVMIMAGES。ゲストの作成に使用されたイメージが格納されます。このディレクトリ内のZIPファイルには、ISOファイルが含まれています。
  • /conf
  • /GuestImages。各ユーザー・ドメインを表すファイルが格納されます。

管理ドメインは、物理ディスク/dev/sdaに存在します。次の3つのディスク・パーティションがあります。

  • /dev/sda1/bootとしてマウントされます。
  • /dev/sda2swapに使用されます。
  • /dev/sda3 — ボリューム・グループVGExaDbに使用されます。

管理ドメイン用に作成された論理ボリュームは次のとおりです。

  • /dev/VGExaDb/LVDbSys2 — バックアップの実行中にdbnodeupdate.shによって使用されます
  • /dev/VGExaDb/LVDbSys3/としてマウントされます
  • /dev/VGExaDb/LVDbSwap1 — スワップ領域に使用されます
  • /dev/VGExaDb/LVDoNotRemoveOrUse — バックアップの実行中にdbnodeupdate.shによって使用されます
  • /dev/VGExaDb/LVDbExaVMImagesEXAVMIMAGESとしてマウントされます

/EXAVMIMAGESディレクトリは、各仮想マシンの構成ファイルが配置される場所です。ファイルの名前は/EXAVMIMAGES/GuestImages/nodename/vm.cfgの形式になります。各仮想マシンには、イメージ・リポジトリ内のISOファイルを指すイメージ・ファイルもあります。pv1_vgeexadb.imgを除く次のファイルは、reflinks (OCFS2機能)を使用して作成されます。

  • /EXAVMIMAGES/GuestImages/user-domain-name/System.img
  • /EXAVMIMAGES/GuestImages/user-domain-name/gridversion.img
  • /EXAVMIMAGES/GuestImages/user-domain-name/dbversion.img
5.1.4.2 ユーザー・ドメインのストレージ構成

ユーザー・ドメイン(domU)は、仮想化されたデータベース・ノードです。

ユーザー・ドメインには、管理ドメイン(dom0)レベルで4つの仮想ディスクがあります。これは、/EXAVMIMAGES/GuestImages/user_domain_name/vm.cfgで参照できます。これらの4つの仮想ディスクは、次に示すように、実際のディスク・イメージ・ファイルである/EXAVMIMAGES/GuestImages/user_domain_nameの4つのファイルにソフト・リンクされます。

  • /dev/xvdaは、システム・イメージ・ファイルSystem.img用です
  • /dev/xvdbは、Oracle Grid Infrastructureイメージ・ファイル(grid12.1.0.2.2.imgなど)用です。この仮想ディスクのサイズは50GBで、/u01/app/version/gridとしてマウントされます。
  • /dev/xvdcは、Oracle Databaseイメージ・ファイル(db12.1.0.2.2-3.imgなど)用です。この仮想ディスクのサイズは50GBで、/u01/app/oracle/product/version/dbhome_1としてマウントされます。
  • /dev/xvddは、pv1_vgexadb.imgイメージ・ファイル用です

System.img (/dev/xvda)ディスクには、pre-grub2イメージ上に2つのパーティションが作成され、grub2イメージ上に3つのパーティションが作成されます。

  • Pre-Grub2イメージ
    • パーティション1 — ユーザー・ドメイン(512MB)のブート・パーティション(/boot)で、ユーザー・ドメインのxvda1として表されます。
    • パーティション2 — bios-grubが格納されている場所(24.5GB)。ユーザー・ドメインのxvda2として表されます。
  • Grub2イメージ
    • パーティション1 — ユーザー・ドメイン(512MB)のブート・パーティション(/boot)で、ユーザー・ドメインのxvda1として表されます。
    • パーティション2 - Oracle Exadata Database Machine X7以上のシステムのEFIブート・パーティション
    • パーティション3 — bios-grubが格納されている場所(24.5GB)。ユーザー・ドメインのxvda3として表されます。

pv1_vgexadb.img (/dev/xvdd)ディスクには1つのパーティションがあります。ディスク・パーティション/dev/xvdd1のサイズは62GBです。

pre-grub2イメージの場合、2つの物理ボリューム(PV)がxvda2およびxvdd1パーティションの上部に配置されます。grub2イメージの場合、2つの物理ボリューム(PV)がxvda3およびxvdd1パーティションの上部に配置されます。サイズ86.49Gのボリューム・グループ(VgExaDb)は、これらの物理ボリュームの上部に配置されます。このボリューム・グループには、次の論理ボリューム(LVM)が含まれています。

  • /dev/VGExaDb/LVDbSys1 (24GB) — ルート・ファイル・システム/に使用されます。このLVMは、xvda2パーティション(pre-grub2イメージの場合)またはxvda3パーティション(grub2イメージの場合)に制限されます。
  • /dev/VGExaDb/LVDbSys2 (24GB) — dbnodeupdateバックアップに使用されます。
  • /dev/VGExaDb/LVDbOra1 (24GB) — diagnostic_dest領域を格納する/u01ファイル・システムに使用されます。
  • /dev/VGExaDb/LVDbSwap1 (16GB) — swapに使用されます
  • /dev/VGExaDb/LVDbDoNotRemoveOrUse (1GB) — dbnodeupdateによって使用される予約済LVM
  • /dev/VGExaDb/LVDbVdnodenamedgname (128MB) — quorumディスク用。

前述のリストの最初のLVMおよび最後のLVM以外のすべてのLVMは、xvdd1パーティションに含まれています。

5.2 ベア・メタルOracle RACクラスタからOracle VMOracle RACクラスタへの移行

ノート:

このトピックは、2ソケットのx86サーバーにのみ適用されます。Oracle Exadata Database Machine X5-8などの8ソケット・サーバーには適用されません。

ベア・メタルOracle RACクラスタからOracle VMOracle RACクラスタへの移行は次の方法で実行できます。

  • 既存のベア・メタルOracle RACクラスタを使用して、Oracle VMOracle RACクラスタを移行します(ダウンタイムは発生しません)。

  • Oracle VMに新しいOracle RACクラスタを作成して、Oracle VMOracle RACクラスタを移行します(最低限のダウンタイムが発生します)。

  • Oracle Data Guardを使用してOracle VMOracle RACクラスタに移行します(最低限のダウンタイムが発生します)。

  • Oracle Recovery Manager (RMAN)バックアップおよびリストアを使用してOracle VMOracle RACクラスタに移行します(ダウンタイムが発生します)。

ベア・メタルOracle RACクラスタからOracle VMOracle RACクラスタに変換することは、次のことを示唆します。

  • 各データベース・サーバーがOracle VM Serverに変換され、Oracle VM Serverには管理ドメイン(dom0)と、デプロイされるOracle RACクラスタの数に応じて1つ以上のユーザー・ドメインが作成されます。データベース・サーバー上の各ユーザー・ドメインは特定のOracle RACクラスタに属します。

  • 変換手順の一環として、初めにベア・メタルOracle RACクラスタがOracle VM内の1つのOracle RACクラスタに変換されます。データベース・サーバーごとに1つのユーザー・ドメインがあります。

  • 変換が終わった後のストレージ・セルのセル・ディスクとグリッド・ディスクの構成は、変換の開始時の構成と同じになります。

  • 各データベース・サーバー上で管理ドメインによって使用されるシステム・リソースの量は同じになります。通常、管理ドメインでは8 GBのメモリーと4つの仮想CPUが使用されます。この点を考慮してOracle VMOracle RACクラスタで実行するデータベースのSGAのサイズを決定してください。

  • 詳細な手順は、My Oracle Supportノート2099488.1を参照してください。

5.3 実行中のドメインの表示

次の手順では、実行中のドメインを表示する方法について説明します。

  1. 管理ドメイン、domain zeroまたはdom0に接続します。
  2. xm listコマンドを実行します。次に、出力の例を示します。
    Example
    # xm list
    Name                         ID   Mem   VCPUs      State   Time(s)
    Domain-0                      0   8192     4       r-----  409812.7
    dm01db01vm01                  8   8192     2       -b---- 156610.6
    dm01db01vm02                  9   8192     2       -b---- 152169.8
    dm01db01vm03                 10  10240     4       -b---- 150225.9
    dm01db01vm04                 16  12288     8       -b---- 113519.3
    dm01db01vm05                 12  12288     8       -b---- 174101.6
    dm01db01vm06                 13  12288     8       -b---- 169115.9
    dm01db01vm07                 14   8192     4       -b---- 175573.0
    

5.4 ユーザー・ドメイン・コンソールの監視

次の手順では、ユーザー・ドメインを監視する方法について説明します。

  1. rootユーザーとして管理ドメインに接続します。
  2. xm listコマンドを使用して、ドメイン名を取得します。
  3. 次のコマンドを使用して、ユーザー・ドメイン・コンソールに接続します。
    # xm console DomainName
    

    上記のコマンドで、DomainNameはドメインの名前です。

  4. CTRL+]を押して、コンソールの接続を解除します。

5.5 Oracle Enterprise Managerを使用したOracle VMの監視

Oracle Enterprise ManagerのExadataプラグインは、Oracle Enterprise Managerの仮想インフラストラクチャ・プラグインと組み合せて、仮想化されたOracle Exadata Database Machineを検出、管理および監視します。

仮想化されたExadataを使用して、Oracle Exadata Deployment Assistant (OEDA)を介してデプロイされた各DBクラスタの1つのDBマシン・ターゲットのかわりに1つのExadata Database Machineターゲットが各物理データベース・サーバーに作成されます。計算ノード、Exadata Storage Server、InfiniBandスイッチ、計算ノードILOM、PDU、KVMおよびCiscoスイッチがExadataプラグインによって検出されます。物理サーバー(物理Oracle Serverターゲット)、Dom0 (仮想プラットフォーム・ターゲット)およびDomU (仮想Oracle Serverターゲット)は、仮想インフラストラクチャ(VI)・プラグインによって検出およびモニターされます。

5.6 ユーザー・ドメインの開始

次の手順では、ユーザー・ドメインを開始する方法について説明します。

  1. 次のコマンドを使用して、ユーザー・ドメインを起動します。
    # xm create /EXAVMIMAGES/GuestImages/DomainName/vm.cfg
    Using config file "/EXAVMIMAGES/GuestImages/dm01db01vm04/vm.cfg".
    Started domain dm01db01vm04 (id=23)
    

    上記のコマンドで、DomainNameはドメインの名前です。

    ノート:

    Oracle Linux起動メッセージをユーザー・ドメイン起動中に表示する場合は、起動中に-cオプションを使用してコンソールに接続します。起動が終了したら、CTRL+]を押してコンソールの接続を解除します。

5.7 Oracle VMユーザー・ドメインの自動起動の管理

デフォルトでは、ユーザー・ドメインは、作成するとき、管理ドメインが起動するときに自動的に起動するように構成されます。この機能は必要に応じて有効/無効を切り替えることができます。

5.7.1 ユーザー・ドメインの自動起動の有効化

次の手順では、管理ドメインが起動した場合に、ユーザー・ドメインが自動的に起動するのを有効にする方法について説明します。

  1. 管理ドメインに接続します。
  2. /OVS/Repositoriesの下でユーザー・ドメイン構成ファイルを見つけます。

    /OVS/Repositoriesにあるファイルを調査し、操作しているドメインに属するファイルを特定します。ユーザー・ドメイン構成ファイルは、/OVS/Repositories/UUID/vm.cfgにあります。ここで、UUIDは一意のドメイン識別子です。

  3. 次のコマンドを使用して、/etc/xen/autoディレクトリ内のユーザー・ドメイン構成ファイルへのシンボリック・リンクを作成します。
    # ln -s /OVS/Repositories/UUID/vm.cfg /etc/xen/auto/DomainName.cfg

    前述のコマンドで、UUIDは一意のドメイン識別子で、DomainNameは操作対象のドメインの完全修飾名です。

    次に例を示します。

    # ln -s /OVS/Repositories/fa8f413f8f544dce8b065a814a0c491c/vm.cfg /etc/xen/auto/dbm01adm05vm01.example.com.cfg

5.7.2 ユーザー・ドメインの自動起動の無効化

次の手順では、管理ドメインが起動した場合に、ユーザー・ドメインが自動的に起動するのを無効にする方法について説明します。

  1. 管理ドメインに接続します。
  2. 次のコマンドを使用して、/etc/xen/autoディレクトリ内のユーザー・ドメイン構成ファイルへのシンボリック・リンクを削除します。
    # rm /etc/xen/auto/DomainName.cfg

    前述のコマンドで、DomainNameは操作対象のドメインの完全修飾名です。

    次に例を示します。

    # rm /etc/xen/auto/dbm01adm05vm01.example.com.cfg

5.8 ユーザー・ドメイン内部のユーザー・ドメインのシャットダウン

次の手順では、ユーザー・ドメイン内部でユーザー・ドメインをシャットダウンする方法について説明します。

  1. rootユーザーとしてユーザー・ドメインに接続します。
  2. 次のコマンドを使用して、ドメインをシャットダウンします。
    # shutdown -h now
    

5.9 管理ドメイン内部のユーザー・ドメインのシャットダウン

次の手順では、管理ドメイン内部でユーザー・ドメインをシャットダウンする方法について説明します。

  1. rootユーザーとして管理ドメインに接続します。
  2. 次のコマンドを使用して、ドメインをシャットダウンします。
    # xm shutdown DomainName -w

    上記のコマンドで、DomainNameはドメインの名前です。

    ノート:

    -wオプションを使用すると、ドメインのシャットダウンが完了するまで待機してからxmコマンドが戻ります。xm shutdownコマンドを使用すると、ユーザー・ドメインでshutdown -h nowを実行した場合と同じ順序でシャットダウンが実行されます。

    次のコマンドを使用して、管理ドメイン内部のすべてのユーザー・ドメインをシャットダウンします。

    # xm shutdown -a -w
    

    次に、出力の例を示します。

    Domain dm01db01vm04 terminated
    All domains terminated
    

5.10 Oracle VMユーザー・ドメインでのOracle Databasesのバックアップおよびリストア

Oracle VMユーザー・ドメインでのOracleデータベースのバックアップとリストアは、物理ノードでのOracleデータベースのバックアップとリストアと同じです。

  • OracleデータベースをOracle VMユーザー・ドメインでバックアップする場合、次の4つのパラメータをデータベース・ノード(ユーザー・ドメイン)の/etc/sysctl.confファイルに設定する必要があります。また、Oracle Exadataストレージを使用してバックアップを保持する場合、パラメータをExadataストレージ・セルの/etc/sysctl.confファイルに設定する必要があります。
    net.core.rmem_default = 4194304
    net.core.wmem_default = 4194304
    net.core.rmem_max = 4194304
    net.core.wmem_max = 4194304
  • Exadataストレージを使用している場合、各Oracle VM RACクラスタでは、それぞれのOracle Automatic Storage Management (Oracle ASM)ディスク・グループを+RECOなどの高速リカバリ領域(FRA)として指定する必要があります。詳細は、テクニカル・リファレンス・ペーパー『Exadata Database Machineのバックアップとリストア構成および操作のベスト・プラクティス』を参照してください。
  • Oracle ZFS Storage Applianceを使用している場合は、テクニカル・リファレンス・ペーパー『Oracle ZFS Storage ApplianceによるExadata Database Machineの保護: 構成のベスト・プラクティス』を参照してください。

5.11 ユーザー・ドメインに割り当てられたメモリーの変更

次の手順では、ユーザー・ドメインに割り当てられたメモリーを変更する方法について説明します。

ノート:

この手順では、ユーザー・ドメインを再起動する必要があります。メモリー割当てを変更する場合、xm mem-setコマンドはサポートされていません。

  1. ユーザーが使用するメモリーの量を減らす場合は、Oracle Databaseのメモリー使用量とオペレーティング・システムのヒュージ・ページの構成設定を確認して調整する必要があります。
    1. データベースのSGAサイズを確認し、そのサイズを必要に応じて縮小します。

      ユーザー・ドメインで実行しているデータベースのメモリー要件を最初に減らしていないと、そのユーザー・ドメインは、Oracle Linuxオペレーティング・システムを起動しようとしたときにヒュージ・ページ用に過剰なメモリーを確保しているため、再起動に失敗することがあります。詳細は、My Oracle SupportのドキュメントID 361468.1を参照してください。

    2. オペレーティング・システム構成を確認して、ヒュージ・ページのメモリー割当てを必要に応じて減らします。
    3. オペレーティング・システムのカーネル構成ファイル(/etc/sysctl.conf)でヒュージ・ページの設定を変更する場合は、initramfsファイルを再生成することでシステム構成の変更を反映します。

      既存のinitramfsファイルをバックアップしてから、dracutコマンドを使用してファイルを再生成する必要があります。次に例を示します。

      # ls -l /boot/initramfs-$(uname -r).img
      -rw------- 1 root root 55845440 Jan  8 10:34 /boot/initramfs-4.14.35-2047.508.3.3.el7uek.x86_64.img
      
      # cp /boot/initramfs-$(uname -r).img backup_directory
      
      # dracut --force
  2. 管理ドメイン(dom0)に接続します。

    この手順の残りの部分は、管理ドメイン内で実行します。

  3. 次のコマンドを使用して、割当てを増やす場合に使用できる空きメモリーの量を判別します。
    # xm info | grep free_memory

    ノート:

    空きメモリーをユーザー・ドメインに割り当てる場合、空きメモリーの約1から2パーセントがメタデータおよび制御構造で使用されます。つまり、増加可能なメモリーの量は、空メモリーの値の1から2パーセント未満です。

  4. xm listコマンドで取得した名前を使用して、ユーザー・ドメインを正常にシャットダウンします。-wオプションを使用すると、ドメインがシャットダウンするまで待機してからxmコマンドが戻ります。
    # xm shutdown DomainName -w

    上記のコマンドで、DomainNameはドメインの名前です。

  5. /EXAVMIMAGES/GuestImages/DomainName/vm.cfgファイルのバックアップ・コピーを作成します。
  6. /EXAVMIMAGES/GuestImages/DomainName/vm.cfgファイルのmemory設定およびmaxmem設定を、テキスト・エディタを使用して編集します。memory設定およびmaxmem設定の値は、同一です。

    ノート:

    メモリーおよびmaxmemパラメータの値が同一でない場合、ユーザー・ドメインの起動でInfiniBandネットワーク・インタフェースが構成されないため、Oracle CRSおよびデータベースが正常に起動しません。

  7. 次のコマンドを使用して、ユーザー・ドメインを起動します。
    # xm create /EXAVMIMAGES/GuestImages/DomainName/vm.cfg

    ノート:

    Oracle Linux起動メッセージをユーザー・ドメイン起動中に表示する場合は、起動中に-cオプションを使用してコンソールに接続します。起動が終了したら、CTRL+]を押してコンソールの接続を解除します。

5.12 ユーザー・ドメインに割り当てられた仮想CPU数の変更

仮想CPU (vCPUs)の数を変更する場合、次の点に留意します。

  • ユーザー・ドメインに割り当てられた仮想CPU数を変更するためのすべてのアクションは、管理ドメインで実行されます。

  • ユーザー・ドメインに可能な仮想CPU数は、ユーザー・ドメインのmaxvcpusパラメータで設定される値の範囲内で、動的に増減します。

  • 仮想CPUをオーバーコミットすると、すべてのドメインに割り当てられた仮想CPUを、システム上の物理CPU数より多く割り当てることができます。ただし、CPUのオーバーコミットは、過剰に収容されたリソースへの競合するワークロードが十分理解され、同時に発生する要求が物理能力を超えない場合にのみ、実行する必要があります。

次の手順では、ユーザー・ドメインに割り当てられた仮想CPU数を変更する方法について説明します。

  1. 次の手順に従い、物理CPU数を判別します。

    1. 管理ドメインで、次のコマンドを実行します。

      # xm info | grep -A3 nr_cpus
      nr_cpus                : 24
      nr_nodes               : 2
      cores_per_socket       : 6
      threads_per_core       : 2
      

      出力で、nr_nodes行はソケットの数を示しています。コマンドが実行されるExadataデータベース・サーバーのプロセッサは2ソケットで、ソケット当たり6コアであるため、物理CPUスレッドは24個(2ソケット x 6コア/ソケット = 12コア。12コア x 2スレッド/コア = 24 CPUスレッド)です。

    2. 次のコマンドを実行して、ユーザー・ドメインに構成されオンラインである仮想CPUの現在の設定を判別します。

      # xm list DomainName -l | grep vcpus
      
          (vcpus 4)
          (online_vcpus 2)
      

      前述のコマンドで、DomainNameはユーザー・ドメインの名前です。コマンドの出力例では、ユーザー・ドメインの仮想CPUの最大数は4で、現在のオンライン仮想CPUは2です。このユーザー・ドメインのオンラインの仮想CPUの数は、ユーザー・ドメインがオンラインの間に、vcpusパラメータよりも大きくない数に調整されます。オンラインの仮想CPUの数をvcpusパラメータよりも大きい値に増やすには、ユーザー・ドメインをオフラインにする必要があります。

  2. 次の手順に従い、仮想CPU数を小さくするまたは大きくします。

    • 仮想CPU数を減らすには:

      1. 次のコマンドを使用して、ユーザー・ドメインに現在割り当てられている仮想CPUの数を判別します。

        # xm list DomainName
        
      2. 次のコマンドを使用して、現在割り当てられている仮想CPU数を減らします。

        # xm vcpu-set DomainName vCPUs_preferred
        

        前述のコマンドで、vCPUs_preferredは、推奨される仮想CPU数の値です

    • 仮想CPU数を増やすには

      1. 次のコマンドを使用して、vcpusパラメータの現在の設定を判別します。

        # xm list DomainName -l | grep vcpus
            (vcpus 4)
            (online_vcpus 2)
        
      2. 推奨される仮想CPU数が、vcpusパラメータの値より小さいか等しい場合、次のコマンドを実行して、オンライン仮想CPU数を増やします。

        # xm vcpu-set DomainName vCPUs_preferred
        

        前述のコマンドで、vCPUs_preferredは、推奨される仮想CPU数の値です

      3. 推奨される仮想CPU数が、vcpusパラメータの値より大きい場合、オンラインの仮想CPUの数をvcpusパラメータよりも大きい値に増やすには、ユーザー・ドメインをオフラインする必要があります。次の手順を実行します。

        i.ユーザー・ドメインをシャットダウンします。

        ii./EXAVMIMAGES/GuestImages/DomainName/vm.cfgファイルのバックアップ・コピーを作成します。

        iii./EXAVMIMAGES/GuestImages/DomainName/vm.cfgファイルを編集し、vcpusパラメータを推奨される仮想vCPUの数に設定します。

        ノート: デフォルトでは、ユーザー・ドメインは、vcpusパラメータで構成された仮想CPUの数をオンラインにします。一部の仮想CPUをオフラインにしてユーザー・ドメインを起動する場合は、maxvcpusパラメータをvm.cfgに追加し、ユーザー・ドメインでオンラインにできる仮想CPUの最大数に設定します。vcpusパラメータを仮想CPUの数に設定し、ユーザー・ドメインの起動時にオンラインにします。たとえば、2つの仮想CPUがオンラインのユーザー・ドメインを起動し、そのユーザー・ドメインがオンラインの間に、さらに6つの仮想CPUをユーザー・ドメインに追加する場合は、次の設定をvm.cfgに使用します。

        maxvcpus=8
        vcpus=2
        

        iv.ユーザー・ドメインを開始します。

5.13 ユーザー・ドメインのディスク領域の増加

ユーザー・ドメインのLogical Volume Manager (LVM)パーティション、スワップ領域およびファイル・システムのサイズは拡大できます。

5.13.1 新規LVMディスクのユーザー・ドメインへの追加

次の手順では、新LVMディスクをユーザー・ドメインに追加して、ユーザー・ドメイン内で使用できるLVMディスク領域の量を増やす方法について説明します。この手順を実行すると、ファイル・システムまたはスワップLVMパーティションのサイズを増やすことができます。これはシステムがオンラインの場合に実行できます。

ノート:

この手順は、管理ドメイン(Domain-0)およびユーザー・ドメイン内で実行するステップが必要です。

すべてのステップを、rootユーザーとして実行してください。

  1. 管理ドメインで、次のコマンドを使用して/EXAVMIMAGES内の空きディスク領域を確認します。
    # df -h /EXAVMIMAGES
    

    次に、コマンドの出力例を示します。

    Filesystem            Size  Used Avail Use% Mounted on
     /dev/sda3            721G  111G  611G  16% /EXAVMIMAGES
    
  2. 管理ドメインで、新規ディスク・イメージの名前を選択し、ユーザー・ドメインで既に名前が使用されていないか確認します。
    # ls -l /EXAVMIMAGES/GuestImages/DomainName/new_disk_image_name
    
    ls: /EXAVMIMAGES/GuestImages/DomainName/new_disk_image_name: No such file or \
    directory
    

    上記のコマンドで、DomainNameはドメインの名前で、new_disk_image_nameは、新規ディスク・イメージの名前です。

  3. 管理ドメインで、新規ディスク・イメージを作成します。
    # qemu-img create /EXAVMIMAGES/GuestImages/DomainName/new_disk_image_name size
    

    次のコマンドで、新規ディスク・イメージ名はpv2_vgexadb.img、イメージ・サイズは0 GBです。

    # qemu-img create /EXAVMIMAGES/GuestImages/DomainName/pv2_vgexadb.img 10G
    
  4. ユーザー・ドメインで、使用できるディスク名を判別します。次の例では、ディスク名xvdaからxvddを使用し、 ディスク名xvdeは使用しません。
    # lsblk -id
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda 202:0    0  13G  0 disk 
    xvdb 202:16   0  20G  0 disk /u01/app/12.1.0.2/grid
    xvdc 202:32   0  20G  0 disk /u01/app/oracle/product/12.1.0.2/dbhome_1
    xvdd 202:48   0  41G  0 disk
    
  5. 管理ドメインで、新規ディスク・イメージをユーザー・ドメインに読取り/書込みモードで割り当てます。次の例では、ユーザー・ドメイン内の新規ディスク・イメージは、デバイス/dev/xvdeとして表示されます。
    # xm block-attach DomainName     \
    file:/EXAVMIMAGES/GuestImages/DomainName/new_disk_image_name /dev/xvde w
    
  6. ユーザー・ドメインで、使用できるディスク・デバイスを確認します。次の例では、ディスク名xvdeがユーザー・ドメインで使用できます。
    # lsblk -id
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda 202:0    0  13G  0 disk 
    xvdb 202:16   0  20G  0 disk /u01/app/12.1.0.2/grid
    xvdc 202:32   0  20G  0 disk /u01/app/oracle/product/12.1.0.2/dbhome_1
    xvdd 202:48   0  41G  0 disk 
    xvde 202:64   0  10G  0 disk
    
  7. ユーザー・ドメインで、新規ディスク・デバイスにパーティションを作成します。次の例では、ディスク・デバイス/dev/xvdeにパーティションを作成します。
    # parted /dev/xvde mklabel gpt
    # parted -s /dev/xvde mkpart primary 0 100%
    # parted -s /dev/xvde set 1 lvm on
    

    parted mkpartコマンドが、次のメッセージを戻す場合があります。このメッセージは無視してかまいません。

    Warning: The resulting partition is not properly aligned for best performance.
    
  8. ユーザー・ドメインで、新規ディスク・パーティション上にLVM物理ボリュームを作成します。次の例では、LVM物理ボリュームをディスク・パーティション/dev/xvde1上に作成します。
    # pvcreate /dev/xvde1
    
  9. ユーザー・ドメインで、ボリューム・グループを拡張して、ボリューム・グループ内の追加領域を確認します。次の例では、ディスク名xvdeがユーザー・ドメインで使用できます。
    # vgextend VGExaDb /dev/xvde1
    # vgdisplay -s
    
  10. 管理ドメインで、ユーザー・ドメイン構成ファイルvm.cfgのバックアップを作成します。
    # cp /EXAVMIMAGES/GuestImages/DomainName/vm.cfg   \
         /EXAVMIMAGES/GuestImages/DomainName/vm.cfg.backup
    
  11. 管理ドメインで、次のコマンドを使用して、ユーザー・ドメインのUUIDを取得します。
    # grep ^uuid /EXAVMIMAGES/GuestImages/DomainName/vm.cfg
    

    次の例では、ユーザー・ドメインUUIDは49ffddce4efe43f5910d0c61c87bba58です。

    # grep ^uuid /EXAVMIMAGES/GuestImages/dm01db01vm01/vm.cfg
    uuid = '49ffddce4efe43f5910d0c61c87bba58'
    
  12. 管理ドメインで、次のコマンドを使用して、新規ディスク・イメージのUUIDを生成します。
    # uuidgen | tr -d '-'
    

    次の例では、新規ディスクUUIDは、0d56da6a5013428c97e73266f81c3404です。

    # uuidgen | tr -d '-'
    0d56da6a5013428c97e73266f81c3404
    
  13. 管理ドメインで、次のコマンドを使用して、/OVS/Repositoriesから新規ディスク・イメージへのシンボリック・リンクを作成します。
    # ln -s /EXAVMIMAGES/GuestImages/DomainName/newDiskImage.img    \
     /OVS/Repositories/user_domain_uuid/VirtualDisks/new_disk_uuid.img
    

    次の例では、新規ディスク・イメージ・ファイルpv2_vgexadb.imgへのシンボリック・リンクが、ユーザー・ドメインdm01db01vm01に作成されます。ユーザー・ドメインdm01db01vm01のUUIDは、i49ffddce4efe43f5910d0c61c87bba58です。新規ディスク・イメージのUUIDは、0d56da6a5013428c97e73266f81c3404です。

    # ln -s /EXAVMIMAGES/GuestImages/dm01db01vm01/pv2_vgexadb.img \
    /OVS/Repositories/49ffddce4efe43f5910d0c61c87bba58/VirtualDisks/   \
    0d56da6a5013428c97e73266f81c3404.img
    
  14. 管理ドメインで、新規ディスク用のエントリを、ユーザー・ドメイン構成ファイルvm.cfgのディスク・パラメータに付加します。これにより、次の起動時、新規ディスク・イメージが自動的にユーザー・ドメインへ割り当てられます。この新規エントリのフォーマットは次の通りです。
    'file:/OVS/Repositories/user_domain_uuid/VirtualDisks/new_disk_uuid.img,disk_device,w'
    

    次に、vm.cfgファイル内の元のディスク・パラメータ・エントリの例を示します。

    disk=['file:/OVS/Repositories/49ffddce4efe43f5910d0c61c87bba58/VirtualDisks/  \
    76197586bc914d3d9fa9d4f092c95be2.img,xvda,w',                                 \
    'file:/OVS/Repositories/49ffddce4efe43f591 0d0c61c87bba58/VirtualDisks/       \
    78470933af6b4253b9ce27814ceddbbd.img,xvdb,w',                                 \
    'file:/OVS/Repositories/49ffddce4efe43f5910d0c61c87bba58/VirtualDisks/        \
    20d5528f5f9e4fd8a96f151a13d2006b.img,xvdc,w',                                 \
    'file:/OVS/Repositories/49ffddce4efe43f5910d0c61c87bba58/VirtualDisks/        \
    058af368db2c4f27971bbe1f19286681.img,xvdd,w']
    

    次の例では、ディスク・デバイス/dev/xvdeとしてユーザー・ドメイン内でアクセス可能な新規ディスク・イメージに対して、付加されたディスク・パラメータを示します。

    disk=['file:/OVS/Repositories/49ffddce4efe43f5910d0c61c87bba58/VirtualDisks/  \
    76197586bc914d3d9fa9d4f092c95be2.img,xvda,w',                                 \
    'file:/OVS/Repositories/49ffddce4efe43f591 0d0c61c87bba58/VirtualDisks/       \
    78470933af6b4253b9ce27814ceddbbd.img,xvdb,w',                                 \
    'file:/OVS/Repositories/49ffddce4efe43f5910d0c61c87bba58/VirtualDisks/        \
    20d5528f5f9e4fd8a96f151a13d2006b.img,xvdc,w',                                 \
    'file:/OVS/Repositories/49ffddce4efe43f5910d0c61c87bba58/VirtualDisks/        \
    058af368db2c4f27971bbe1f19286681.img,xvdd,w',                                 \
    'file:/OVS/Repositories/49ffddce4efe43f5910d0c61c87bba58/VirtualDisks/        \
    0d56da6a5013428c97e73266f81c3404.img,xvde,w']
    

5.13.2 rootファイル・システムのサイズの増加

この手順では、システム・パーティションおよび/ (ルート)ファイル・システムのサイズを増やす方法について説明します。

これはファイル・システムがオンラインの場合に実行できます。

ノート:

2種類のシステム・パーティション、LVDbSys1およびLVDbSys2が使用できます。片方のパーティションがアクティブでマウントされます。もう一方のパーティションは非アクティブで、アップグレード中、バックアップする場所として使用します。この2つのシステム・パーティションは、サイズが等しい必要があります。

VGExaDbボリューム・グループ内に、少なくとも1GBの空き領域が必要です。空き領域は、ソフトウェア保守の際に、dbnodeupdate.shユーティリティで作成したLVMスナップショットで使用します。「Oracle Linuxデータベース・サーバーのスナップショット・ベースのバックアップの作成」の手順に従い、/ (root)および/u01ディレクトリのバックアップをスナップショット・ベースで作成する場合、VGExaDbボリューム・グループに少なくとも6GBの空き領域が必要です。

  1. 現在の環境に関する情報を収集します。
    1. dfコマンドを使用して、ルート・パーティション(/)の空き領域および使用済領域の容量を確認します
      # df -h /
      

      次に、コマンドの出力例を示します。

      Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/VGExaDb-LVDbSys1
                             12G  5.1G  6.2G  46% / 
      

      ノート:

      アクティブなrootパーティションは、それ以前の保守アクティビティによりLVDbSys1またはLVDbSys2のいずれかに決定されます。

    2. lvsコマンドを使用して、現在の論理ボリューム構成を表示します。
      # lvs -o lv_name,lv_path,vg_name,lv_size
      

      次に、コマンドの出力例を示します。

      LV        Path                   VG      LSize 
      LVDbOra1  /dev/VGExaDb/LVDbOra1  VGExaDb 10.00g
      LVDbSwap1 /dev/VGExaDb/LVDbSwap1 VGExaDb  8.00g
      LVDbSys1  /dev/VGExaDb/LVDbSys1  VGExaDb 12.00g
      LVDbSys2  /dev/VGExaDb/LVDbSys2  VGExaDb 12.00g 
      
  2. ボリューム・グループVGExaDbの使用可能な領域を確認するには、vgdisplayコマンドを使用します。
    # vgdisplay VGExaDb -s
    

    次に、コマンドの出力例を示します。

    "VGExaDb" 53.49 GiB [42.00 GiB used / 11.49 GiB free]
    

    ボリューム・グループは、2つのシステム・パーティションのサイズを増やすことができる空き領域を持ち、アップグレードの際にdbnodeupdate.shユーティリティで作成されるLVMスナップショットで使用するために、少なくとも1GBの空き領域を維持する必要があります。ボリューム・グループに十分な空き領域がない場合、新しいディスクをLVMに追加する必要があります。

  3. LVDbSys1およびLVDbSys2論理ボリュームのサイズを変更するには、lvextendコマンドを使用します。
    # lvextend -L +size /dev/VGExaDb/LVDbSys1
    # lvextend -L +size /dev/VGExaDb/LVDbSys2
    

    前述のコマンドで、sizeは論理ボリュームに追加する領域の容量です。いずれのシステム・パーティションにも、等しい容量の領域を追加します。

    次の例では、拡大する論理ボリュームは10GBです。

    # lvextend -L +10G /dev/VGExaDb/LVDbSys1
    # lvextend -L +10G /dev/VGExaDb/LVDbSys2
    
  4. 論理ボリューム内のファイル・システムのサイズを変更するには、resize2fsコマンドを使用します。
    # resize2fs /dev/VGExaDb/LVDbSys1
    # resize2fs /dev/VGExaDb/LVDbSys2
    
  5. dfコマンドを使用して、アクティブなシステム・パーティションで領域が拡大されたことを確認します。
    # df -h /
    

5.13.3 /u01ファイル・システムのサイズの増加

この手順では、/u01ファイル・システムのサイズを増やす方法について説明します。

これはファイル・システムがオンラインの場合に実行できます。

ノート:

VGExaDbボリューム・グループ内に、少なくとも1GBの空き領域が必要です。空き領域は、ソフトウェア保守の際に、dbnodeupdate.shユーティリティで作成したLVMスナップショットで使用します。「Oracle Linuxデータベース・サーバーのスナップショット・ベースのバックアップの作成」の手順に従い、/ (root)および/u01ディレクトリのバックアップをスナップショット・ベースで作成する場合、VGExaDbボリューム・グループに少なくとも6GBの空き領域が必要です。

  1. 現在の環境に関する情報を収集します。
    1. dfコマンドを使用して、/u01パーティションの空き領域および使用済領域の容量を確認します。
      # df -h /u01
      

      次に、コマンドの出力例を示します。

      Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/VGExaDb-LVDbOra1
                            9.9G  1.7G  7.8G  18% /u01
      
    2. lvsコマンドを使用して、/u01ファイル・システムで使用される現在の論理ボリューム構成を表示します。
      # lvs -o lv_name,lv_path,vg_name,lv_size /dev/VGExaDb/LVDbOra1
      

      次に、コマンドの出力例を示します。

      LV        Path                  VG       LSize 
      LVDbOra1 /dev/VGExaDb/LVDbOra1  VGExaDb 10.00g
      
  2. ボリューム・グループVGExaDbの使用可能な領域を確認するには、vgdisplayコマンドを使用します。
    # vgdisplay VGExaDb -s
    

    次に、コマンドの出力例を示します。

    "VGExaDb" 53.49 GiB [42.00 GiB used / 11.49 GiB free]
    

    コマンドの出力で空き領域が1GB未満と表示された場合は、論理ボリュームもファイル・システムも拡大できません。アップグレードの際にdbnodeupdate.shユーティリティで作成されるLVMスナップショットのために、VGExaDbボリューム・グループ内に、少なくとも1GBの空き領域が必要です。ボリューム・グループに十分な空き領域がない場合、新しいディスクをLVMに追加する必要があります。

  3. 論理ボリュームのサイズを変更するには、lvextendコマンドを使用します。
    # lvextend -L +sizeG /dev/VGExaDb/LVDbOra1
    

    前述のコマンドで、sizeは論理ボリュームに追加する領域の容量です。

    次の例では、拡大する論理ボリュームは10GBです。

    # lvextend -L +10G /dev/VGExaDb/LVDbOra1
    
  4. 論理ボリューム内のファイル・システムのサイズを変更するには、resize2fsコマンドを使用します。
    # resize2fs /dev/VGExaDb/LVDbOra1
    
  5. dfコマンドを使用して、領域が拡張されたことを確認します。
    # df -h /u01
    

5.13.4 Oracle Grid InfrastructureホームまたはDatabaseホーム・ファイル・システムのサイズの増加

ユーザー・ドメイン内のOracle Grid InfrastructureまたはOracle Databaseホームのファイル・システムのサイズを増やすことができます。

Oracle Grid Infrastructureソフトウェア・ホームおよびOracle Databaseソフトウェア・ホームのために、それぞれのディスク・イメージ・ファイルが管理ドメインに作成されます。ディスク・イメージ・ファイルの場所は、/EXAVMIMAGES/GuestImages/DomainName/ディレクトリです。ディスク・イメージ・ファイルは、仮想マシンの起動中に自動的にユーザー・ドメインに関連付けられ、別個にLVMではないファイル・システムとしてユーザー・ドメインにマウントされます。

  1. ユーザー・ドメインに接続し、dfコマンドを使用してファイル・システムのサイズを確認します。ここで、$ORACLE_HOMEはOracle Databaseホームのディレクトリを指す環境変数です(/u01/app/oracle/product/12.1.0.2/dbhome_1など)。
    # df -h $ORACLE_HOME
    

    次に、コマンドの出力例を示します。

    Filesystem  Size  Used Avail Use% Mounted on
     /dev/xvdc    20G  6.5G   13G  35% /u01/app/oracle/product/12.1.0.2/dbhome_1
    
  2. 管理ドメインに接続し、ユーザー・ドメインをシャットダウンするには、xmコマンドを使用し、ドメインの名前を指定します。
    # xm shutdown DomainName
    
  3. サイズを増やすディスク・イメージのバックアップとして使用するOCFS reflinkを作成します。ここで、versionはリリース番号(12.1.0.2.1-3など)です。
    # cd /EXAVMIMAGES/GuestImages/DomainName
    # reflink dbversion.img before_resize.dbversion.img
    
  4. qemu-imgコマンドを使用して、空のディスク・イメージを作成し、データベース・ホーム・ディスク・イメージに付加します。

    空のディスク・イメージ・サイズは、拡張後のファイル・システムのサイズです。最後のコマンドにより、データベース・ホーム・ディスク・イメージに付加済の空のディスク・イメージが削除されます。

    # qemu-img create emptyfile 10G
    # cat emptyfile >> dbversion.img
    # rm emptyfile
    
  5. e2fsckコマンドを使用して、ファイル・システムを確認します。
    # e2fsck -f dbversion.img
    
  6. resize2fsコマンドを使用して、ファイル・システムのサイズを変更します。
    # resize2fs dbversion.img
    
  7. ユーザー・ドメインを開始します。
    # xm create /EXAVMIMAGES/GuestImages/DomainName/vm.cfg
    
  8. ユーザー・ドメインに接続し、ファイル・システム・サイズが増えていることを確認します。
    # df -h $ORACLE_HOME
    

    次に、コマンドの出力例を示します。

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvdc        30G  6.5G   22G  23% /u01/app/oracle/product/12.1.0.2/dbhome_1
    
  9. 管理ドメインに接続し、バックアップ・イメージを削除します。

    次のようなコマンドを使用します。ここで、back_up_image.imgはバックアップ・イメージ・ファイルの名前です。

    # cd /EXAVMIMAGES/GuestImages/DomainName
    # rm back_up_image.img
    

5.13.5 スワップ領域のサイズの増加

この手順では、ユーザー・ドメインで構成されたスワップの容量を増やす方法について説明します。

  1. ボリューム・グループVGExaDbの使用可能な領域を確認するには、vgdisplayコマンドを使用します。
    # vgdisplay VGExaDb -s
    

    次に、コマンドの出力例を示します。

    "VGExaDb" 53.49 GiB [42.00 GiB used / 11.49 GiB free]
    

    コマンドの出力で空き領域が1GB未満と表示された場合は、論理ボリュームもファイル・システムも拡大できません。アップグレードの際にdbnodeupdate.shユーティリティで作成されるLVMスナップショットのために、VGExaDbボリューム・グループ内に、少なくとも1GBの空き領域が必要です。ボリューム・グループに十分な空き領域がない場合、新しいディスクをLVMに追加する必要があります。

  2. 論理ボリュームを作成してスワップ領域のサイズを大きくするには、次のように、lvcreateコマンドを使用します。

    次の例では、LVDbSwap2という名前の8GBの論理ボリュームが新たに作成されます。

    # lvcreate -L 8G -n LVDbSwap2 VGExaDb
    
  3. SWAP2のような一意のラベルのスワップ・デバイスとして論理ボリュームを新たに設定するには、次のように、mkswapコマンドを使用します。一意のラベルは、/etc/fstabファイルで現在使用されていないデバイスのLABELエントリです。
    # mkswap -L SWAP2 /dev/VGExaDb/LVDbSwap2
    
  4. 新しいスワップ・デバイスを有効にするには、swaponコマンドを使用します。
    # swapon -L SWAP2
    
  5. 新しいスワップ・デバイスが有効であることを確認するには、swaponコマンドを使用します。
    # swapon -s
    

    次に、コマンドの出力例を示します。

    Filename         Type            Size      Used     Priority
    /dev/dm-3        partition       8388604   306108   -1
    /dev/dm-4        partition       8388604   0         -2
    
  6. /etc/fstabファイルを編集して、存在するスワップ・エントリをコピーして新しいスワップ・デバイスを追加し、新しいスワップ・デバイスの作成で使用したラベルへの新しいエントリのLABEL値を変更します。次の例では、新しいスワップ・デバイスが、/etc/fstabファイルにLABEL=SWAP2として追加されます。
    # cat /etc/fstab
    LABEL=DBSYS   /                       ext4    defaults        1 1
    LABEL=BOOT    /boot                   ext4    defaults,nodev        1 1
    tmpfs         /dev/shm                tmpfs   defaults,size=7998m 0
    devpts        /dev/pts                devpts  gid=5,mode=620  0 0
    sysfs         /sys                    sysfs   defaults        0 0
    proc          /proc                   proc    defaults        0 0
    LABEL=SWAP    swap                    swap    defaults        0 0
    LABEL=SWAP2   swap                    swap    defaults        0 0
    LABEL=DBORA   /u01                    ext4    defaults        1 1
    /dev/xvdb     /u01/app/12.1.0.2/grid  ext4    defaults        1 1
    /dev/xvdc       /u01/app/oracle/product/12.1.0.2/dbhome_1       ext4   defaults        1 1
    

5.14 データベース・サーバーのディスク拡張キット追加後の/EXAVMIMAGESの拡張

データベース・サーバーにディスク拡張キットを追加するときには、適切な手順に従って、新しい領域を/EXAVMIMAGESファイル・システムに追加することが重要です。

ノート:

ディスク拡張キットは、X5-2以降の2ソケットのOracle Exadata Database Machineシステムでのみサポートされています。

5.14.1 リリース18.1.x以降の管理ドメインでの/EXAVMIMAGESの拡張

Oracle Exadata System Softwareリリース18c (18.1.0)以降のリリースを使用している場合は、この手順を使用して、ディスク拡張キットの追加後に管理ドメイン/EXAVMIMAGESファイル・システムを拡張します。

デプロイメント中、データベース・サーバー上の使用可能なディスク領域はすべて管理ドメイン (dom0)に割り当てられ、その領域のほとんどがユーザー・ドメイン・ストレージ用の/EXAVMIMAGESに割り当てられます。/EXAVMIMAGESファイル・システムが/dev/VGExaDb/LVDbExaVMImagesに作成されます。

次の例では、dm01db01管理ドメインの名前で、dm01db01vm01ユーザー・ドメインです。

  1. -checkオプションを使用して、reclaimdisks.sh管理ドメインで実行されたことを確認します。

    最後の行が"Layout: DOM0"になっています。reclaimdisks.shが実行されていない場合は、"Layout: DOM0 + Linux"のように表示されます。

    [root@dm01db01 ~]# /opt/oracle.SupportTools/reclaimdisks.sh -check
    Model is ORACLE SERVER X6-2
    Number of LSI controllers: 1
    Physical disks found: 4 (252:0 252:1 252:2 252:3)
    Logical drives found: 1
    Linux logical drive: 0
    RAID Level for the Linux logical drive: 5
    Physical disks in the Linux logical drive: 4 (252:0 252:1 252:2 252:3)
    Dedicated Hot Spares for the Linux logical drive: 0
    Global Hot Spares: 0
    Valid. Disks configuration: RAID5 from 4 disks with no global and dedicated hot spare disks.
    Valid. Booted: DOM0. Layout: DOM0.
    
  2. ディスク拡張キットをデータベース・サーバーに追加します。
    キットには4台のハード・ドライブが含まれており、これを空いている4つのスロットに挿入します。フィラー・パネルを取り外し、ドライブを挿入します。ドライブは順不同で挿入できます。
  3. アラート履歴の警告およびクリア・メッセージを参照し、RAIDの再構築が完了したことを確認します。

    完了までに数時間かかることもあります。次の例では約7時間かかっています。クリア・メッセージ(下のメッセージ1_2)がある場合は、再構築が完了しているため、次の手順を実行できます。

    [root@dm01db01 ~]# dbmcli -e list alerthistory
    
             1_1     2016-02-15T14:01:00-08:00       warning         "A disk
     expansion kit was installed. The additional physical drives were automatically
     added to the existing RAID5 configuration, and reconstruction of the
     corresponding virtual drive was automatically started."
    
             1_2     2016-02-15T21:01:01-08:00       clear           "Virtual drive
     reconstruction due to disk expansion was completed."
    
  4. 現在の環境に関する情報を収集します。
    [root@dm01db01 ~]# df -h /EXAVMIMAGES
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda3             1.6T   44G  1.5T   3% /EXAVMIMAGES
    
    [root@dm01db01 ~]# xm list
    Name                                        ID   Mem VCPUs      State   Time(s)
    Domain-0                                     0  8192     4     r-----  94039.1
    dm01db01vm01.example.com                   4 16384     2     -b----   3597.3
    
  5. 管理ドメインからコマンドxm shutdown –a –wを実行し、すべてのユーザー・ドメインを停止します。

    すべてのユーザー・ドメインが停止すると、リストにDomain-0 (管理ドメイン)のみが表示されます。

    [root@dm01db01 ~]# xm shutdown –a -w
    Domain dm01db01vm01.example.com terminated 
    All domains terminated
    
    [root@dm01db01 ~]# xm list
    Name                                        ID   Mem VCPUs      State   Time(s)
    Domain-0                                     0  8192     4     r-----  94073.4
    
  6. partedを実行して、セクターの開始値および終了値を表示します。

    3番目のパーティションの終わりに対してのディスクのサイズを確認します。GPTを修復するリクエストが表示された場合は、Fで応答します。

    root@dm01db01 ~]# parted /dev/sda 
    GNU Parted 2.1Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) unit s 
    (parted) print
    Warning: Not all of the space available to /dev/sda appears to be used, you can
    fix the GPT to use all of the space (an extra 4679680000 blocks) or continue
    with the current setting? Fix/Ignore? F  
    
    Model: LSI MR9361-8i (scsi) 
    Disk /dev/sda: 8189440000s 
    Sector size (logical/physical): 512B/512B 
    Partition Table: gpt 
    
    Number  Start       End           Size         File system  Name     Flags 
    1       64s         1046591s      1046528s     ext3         primary  boot 
    4       1046592s    1048639s      2048s                     primary  bios_grub
    2       1048640s    240132159s    239083520s                primary  lvm 
    
    (parted) q

    前述のパーティション表に、パーティション2がセクター240132159で終了し、ディスク・サイズが8189440000セクターと表示されています。これらの値はステップ7で使用します。

  7. 4番目のパーティションを作成します。
    開始セクターは、ステップ6の3番目のパーティションの終わりに1セクター加算します(240132159+1=240132160)。4番目のパーティションの終了セクターは、ディスクのサイズから34減算します(8189440000-34=8189439966)。
    [root@dm01db01 ~]# parted -s /dev/sda mkpart primary 240132160s 8189439966s 

    このコマンドは出力を生成しません。

  8. 4番目のパーティションのLVMフラグを設定します。
    [root@dm01db01 ~]# parted -s /dev/sda set 3 lvm on
    Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or
     resource busy).  As a result, it may not reflect all of your changes until after reboot.
  9. 更新されたパーティション表を確認します。
    [root@dm01db01 ~]# parted -s /dev/sda unit s print
    Model: LSI MR9361-8i (scsi)
    Disk /dev/sda: 8189440000s
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt 
    Number  Start        End          Size         File system  Name     Flags
    1       64s         1046591s      1046528s     ext4         primary  boot 
    4       1046592s    1048639s      2048s                     primary  bios_grub
    2       1048640s    240132159s    239083520s                primary  lvm 
    3       240132160s  8189439966s   7949307807s               primary  lvm
    
  10. Exadataサーバーを再起動します。
    [root@dm01db01 ~]# shutdown -r now
  11. 4番目のパーティションの終わりに対してのディスクのサイズを確認します。
    [root@dm01db01 ~]# parted -s /dev/sda unit s print
    Model: LSI MR9361-8i (scsi)
    Disk /dev/sda: 8189440000s
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt 
    Number  Start        End          Size         File system  Name     Flags
    1       64s          1048639s     1048576s     ext4         primary  boot 
    4       1048640s     3509759966s  3508711327s               primary  lvm 
    2       3509759967s  8189439966s  4679680000s               primary  lvm
    3 
  12. 新しく作成した4番目のパーティションでLVM物理ボリューム(PV)を作成します。
    [root@dm01db01 ~]# lvm pvcreate --force /dev/sda3
      Physical volume "/dev/sda3" successfully created
  13. LVMボリューム・グループVGExaDbを、新しく作成した3番目のパーティションまで拡張します。
    [root@dm01db01 ~]# lvm vgextend VGExaDb /dev/sda3
      Volume group "VGExaDb" successfully extended
  14. /EXAVMIMAGES OCFS2パーティションをディスマウントします。
    [root@dm01db01 ~]# umount /EXAVMIMAGES/
  15. OCFS2パーティションを含む論理ボリュームを拡張して、残りの空き領域を含めます。
    [root@dm01db01 ~]# lvm lvextend -l +100%FREE /dev/VGExaDb/LVDbExaVMImages
    Size of logical volume VGExaDb/LVDbExaVMImages changed from 1.55 TiB (406549 extents) to 
    3.73 TiB (977798 extents).  
    Logical volume LVDbExaVMImages successfully resized.
  16. OCFS2ファイル・システムのサイズを、残りの論理ボリュームに変更します。

    通常、tunefs.ocfs2コマンドは実行速度が非常に速く、出力が生成されません。

    [root@dm01db01 ~]# tunefs.ocfs2 -S /dev/VGExaDb/LVDbExaVMImages
    
  17. OCFS2パーティションをマウントしてから、このパーティションのファイル・システム・ディスク領域使用率を表示します。
    [root@dm01db01 ~]# mount -a
    
    [root@dm01db01 ~]# ls -al /EXAVMIMAGES/
    total 4518924
    drwxr-xr-x  3 root root        3896 Jul 18 18:01 .
    drwxr-xr-x 26 root root        4096 Jul 24 14:50 ..
    drwxr-xr-x  2 root root        3896 Jul 18 17:51 lost+found
    -rw-r-----  1 root root 26843545600 Jul 18 18:01 System.first.boot.12.2.1.1.8.180510.1.img
    
    [root@dm01db01 ~]# df -h /EXAVMIMAGES/
    Filesystem                            Size  Used Avail Use% Mounted on
    /dev/mapper/VGExaDb-LVDbExaVMImages   3.8T  9.0G  3.8T   1% /EXAVMIMAGES
    
  18. ユーザー・ドメインを再起動します。

5.14.2 リリース12.2.xの管理ドメインでの/EXAVMIMAGESの拡張

Oracle Exadata System Softwareリリース12.2.xを使用している場合は、この手順を使用して、ディスク拡張キットの追加後に管理ドメイン/EXAVMIMAGESファイル・システムを拡張します。

デプロイメント中、データベース・サーバー上の使用可能なディスク領域はすべて管理ドメイン (dom0)に割り当てられ、その領域のほとんどがユーザー・ドメイン・ストレージ用の/EXAVMIMAGESに割り当てられます。/EXAVMIMAGESファイル・システムが/dev/VGExaDb/LVDbExaVMImagesに作成されます。

次の例では、dm01db01管理ドメインの名前で、dm01db01vm01ユーザー・ドメインです。

  1. -checkオプションを使用して、reclaimdisks.sh管理ドメインで実行されたことを確認します。

    最後の行が"Layout: DOM0"になっています。reclaimdisks.shが実行されていない場合は、"Layout: DOM0 + Linux"のように表示されます。

    [root@dm01db01 ~]# /opt/oracle.SupportTools/reclaimdisks.sh -check
    Model is ORACLE SERVER X5-2
    Number of LSI controllers: 1
    Physical disks found: 4 (252:0 252:1 252:2 252:3)
    Logical drives found: 1
    Linux logical drive: 0
    RAID Level for the Linux logical drive: 5
    Physical disks in the Linux logical drive: 4 (252:0 252:1 252:2 252:3)
    Dedicated Hot Spares for the Linux logical drive: 0
    Global Hot Spares: 0
    Valid. Disks configuration: RAID5 from 4 disks with no global and dedicated hot spare disks.
    Valid. Booted: DOM0. Layout: DOM0.
    
  2. ディスク拡張キットをデータベース・サーバーに追加します。
    キットには4台のハード・ドライブが含まれており、これを空いている4つのスロットに挿入します。フィラー・パネルを取り外し、ドライブを挿入します。ドライブは順不同で挿入できます。
  3. アラート履歴の警告およびクリア・メッセージを参照し、RAIDの再構築が完了したことを確認します。

    完了までに数時間かかることもあります。次の例では約7時間かかっています。クリア・メッセージ(下のメッセージ1_2)がある場合は、再構築が完了しているため、次の手順を実行できます。

    [root@dm01db01 ~]# dbmcli -e list alerthistory
    
             1_1     2016-02-15T14:01:00-08:00       warning         "A disk
     expansion kit was installed. The additional physical drives were automatically
     added to the existing RAID5 configuration, and reconstruction of the
     corresponding virtual drive was automatically started."
    
             1_2     2016-02-15T21:01:01-08:00       clear           "Virtual drive
     reconstruction due to disk expansion was completed."
    
  4. 現在の環境に関する情報を収集します。
    [root@dm01db01 ~]# df -h /EXAVMIMAGES
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda3             1.6T   44G  1.5T   3% /EXAVMIMAGES
    
    [root@dm01db01 ~]# xm list
    Name                                        ID   Mem VCPUs      State   Time(s)
    Domain-0                                     0  8192     4     r-----  94039.1
    dm01db01vm01.example.com                   4 16384     2     -b----   3597.3
    
  5. 管理ドメインからコマンドxm shutdown –a –wを実行し、すべてのユーザー・ドメインを停止します。

    すべてのユーザー・ドメインが停止すると、リストにDomain-0 (管理ドメイン)のみが表示されます。

    [root@dm01db01 ~]# xm shutdown –a -w
    Domain dm01db01vm01.example.com terminated 
    All domains terminated
    
    [root@dm01db01 ~]# xm list
    Name                                        ID   Mem VCPUs      State   Time(s)
    Domain-0                                     0  8192     4     r-----  94073.4
    
  6. partedを実行して、セクターの開始値および終了値を表示します。

    2番目のパーティションの終わりに対してのディスクのサイズを確認します。GPTを修復するリクエストが表示された場合は、Fで応答します。

    root@dm01db01 ~]# parted /dev/sda 
    GNU Parted 2.1Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) unit s 
    (parted) print
    Warning: Not all of the space available to /dev/sda appears to be used, you can
    fix the GPT to use all of the space (an extra 4679680000 blocks) or continue
    with the current setting? Fix/Ignore? F  
    
    Model: LSI MR9361-8i (scsi) 
    Disk /dev/sda: 8189440000s 
    Sector size (logical/physical): 512B/512B 
    Partition Table: gpt 
    
    Number  Start       End           Size         File system  Name     Flags 
    1       64s         1048639s      1048576s     ext3         primary  boot 
    2       1048640s    3509759966s   3508711327s               primary  lvm 
    
    (parted) q

    前述のパーティション表に、パーティション2がセクター3509759966sで終了し、ディスク・サイズが8189440000と表示されています。これらの値はステップ7で使用します。

  7. 3番目のパーティションを作成します。
    開始セクターは、ステップ6の2番目のパーティションの終わりに1セクター加算します(3509759966+1=3509759967)。3番目のパーティションの終了セクターは、ディスクのサイズから34減算します(8189440000-34=8189439966)。
    [root@dm01db01 ~]# parted -s /dev/sda mkpart primary 3509759967s 8189439966s 

    このコマンドは出力を生成しません。

  8. 3番目のパーティションのLVMフラグを設定します。
    [root@dm01db01 ~]# parted -s /dev/sda set 3 lvm on
    Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or
     resource busy).  As a result, it may not reflect all of your changes until after reboot.
  9. 更新されたパーティション表を確認します。
    [root@dm01db01 ~]# parted -s /dev/sda unit s print
    Model: LSI MR9361-8i (scsi)
    Disk /dev/sda: 8189440000s
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt 
    Number  Start        End          Size         File system  Name     Flags
    1       64s          1048639s     1048576s     ext4         primary  boot 
    2       1048640s     3509759966s  3508711327s               primary  lvm 
    3       3509759967s  8189439966s  4679680000s               primary  lvm
  10. Exadataサーバーを再起動します。
    [root@dm01db01 ~]# shutdown -r now
  11. 3番目のパーティションの終わりに対してのディスクのサイズを確認します。
    [root@dm01db01 ~]# parted -s /dev/sda unit s print
    Model: LSI MR9361-8i (scsi)
    Disk /dev/sda: 8189440000s
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt 
    Number  Start        End          Size         File system  Name     Flags
    1       64s          1048639s     1048576s     ext4         primary  boot 
    2       1048640s     3509759966s  3508711327s               primary  lvm 
    3       3509759967s  8189439966s  4679680000s               primary  lvm
  12. 新しく作成した3番目のパーティションでLVM物理ボリューム(PV)を作成します。
    [root@dm01db01 ~]# lvm pvcreate --force /dev/sda3
      Physical volume "/dev/sda3" successfully created
  13. LVMボリューム・グループVGExaDbを、新しく作成した3番目のパーティションまで拡張します。
    [root@dm01db01 ~]# lvm vgextend VGExaDb /dev/sda3
      Volume group "VGExaDb" successfully extended
  14. /EXAVMIMAGES OCFS2パーティションをディスマウントします。
    [root@dm01db01 ~]# umount /EXAVMIMAGES/
  15. OCFS2パーティションを含む論理ボリュームを拡張して、残りの空き領域を含めます。
    [root@dm01db01 ~]# lvm lvextend -l +100%FREE /dev/VGExaDb/LVDbExaVMImages
    Size of logical volume VGExaDb/LVDbExaVMImages changed from 1.55 TiB (406549 extents) to 
    3.73 TiB (977798 extents).  
    Logical volume LVDbExaVMImages successfully resized.
  16. OCFS2ファイル・システムのサイズを、残りの論理ボリュームに変更します。

    通常、tunefs.ocfs2コマンドは実行速度が非常に速く、出力が生成されません。

    [root@dm01db01 ~]# tunefs.ocfs2 -S /dev/VGExaDb/LVDbExaVMImages
    
  17. OCFS2パーティションをマウントしてから、このパーティションのファイル・システム・ディスク領域使用率を表示します。
    [root@dm01db01 ~]# mount -a
    
    [root@dm01db01 ~]# ls -al /EXAVMIMAGES/
    total 4518924
    drwxr-xr-x  3 root root        3896 Jul 18 18:01 .
    drwxr-xr-x 26 root root        4096 Jul 24 14:50 ..
    drwxr-xr-x  2 root root        3896 Jul 18 17:51 lost+found
    -rw-r-----  1 root root 26843545600 Jul 18 18:01 System.first.boot.12.2.1.1.8.180510.1.img
    
    [root@dm01db01 ~]# df -h /EXAVMIMAGES/
    Filesystem                            Size  Used Avail Use% Mounted on
    /dev/mapper/VGExaDb-LVDbExaVMImages   3.8T  9.0G  3.8T   1% /EXAVMIMAGES
    
  18. ユーザー・ドメインを再起動します。

5.14.3 リリース12.2.xより前の管理ドメインでの/EXAVMIMAGESの拡張

リリース12.1.2.3.0以降で、リリース12.2.xより前のOracle Exadata System Softwareを使用している場合は、この手順を使用して、ディスク拡張キットの追加後に管理ドメイン/EXAVMIMAGESディレクトリを拡張します。

デプロイメント中、データベース・サーバー上の使用可能なディスク領域はすべて管理ドメインに割り当てられ、その領域のほとんどがユーザー・ドメイン・ストレージ用の/EXAVMIMAGESに割り当てられます。/EXAVMIMAGESファイル・システムが/dev/sda3に作成されます。

次の例では、dm01db01管理ドメインの名前で、dm01db01vm01ユーザー・ドメインです。

  1. -checkオプションを使用して、reclaimdisks.shが実行されたことを確認します。

    最後の行が"Layout: DOM0"になっています。reclaimdisks.shが実行されていない場合は、"Layout: DOM0 + Linux"のように表示されます。

    [root@dm01db01 ~]# /opt/oracle.SupportTools/reclaimdisks.sh -check
    Model is ORACLE SERVER X5-2
    Number of LSI controllers: 1
    Physical disks found: 4 (252:0 252:1 252:2 252:3)
    Logical drives found: 1
    Linux logical drive: 0
    RAID Level for the Linux logical drive: 5
    Physical disks in the Linux logical drive: 4 (252:0 252:1 252:2 252:3)
    Dedicated Hot Spares for the Linux logical drive: 0
    Global Hot Spares: 0
    Valid. Disks configuration: RAID5 from 4 disks with no global and dedicated hot spare disks.
    Valid. Booted: DOM0. Layout: DOM0.
    
  2. ディスク拡張キットをデータベース・サーバーに追加します。
    キットには4台のハード・ドライブが含まれており、これを空いている4つのスロットに挿入します。フィラー・パネルを取り外し、ドライブを挿入します。ドライブは順不同で挿入できます。
  3. アラート履歴の警告およびクリア・メッセージを参照し、RAIDの再構築が完了したことを確認します。

    完了までに数時間かかることもあります。次の例では約7時間かかっています。クリア・メッセージ(下のメッセージ1_2)がある場合は、再構築が完了しているため、次の手順を実行できます。

    [root@dm01db01 ~]# dbmcli -e list alerthistory
    
             1_1     2016-02-15T14:01:00-08:00       warning         "A disk
     expansion kit was installed. The additional physical drives were automatically
     added to the existing RAID5 configuration, and reconstruction of the
     corresponding virtual drive was automatically started."
    
             1_2     2016-02-15T21:01:01-08:00       clear           "Virtual drive
     reconstruction due to disk expansion was completed."
    
  4. 現在の環境に関する情報を収集します。
    [root@dm01db01 ~]# cat /proc/partitions |grep sda
       8        0 4094720000 sda
       8        1     524288 sda1
       8        2  119541760 sda2
       8        3 1634813903 sda3
    
    [root@dm01db01 ~]# df -h /EXAVMIMAGES
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda3             1.6T   44G  1.5T   3% /EXAVMIMAGES
    
    [root@dm01db01 ~]# xm list
    Name                                        ID   Mem VCPUs      State   Time(s)
    Domain-0                                     0  8192     4     r-----  94039.1
    dm01db01vm01.example.com                   4 16384     2     -b----   3597.3
    
  5. 管理ドメインからコマンドxm shutdown –a –wを実行し、すべてのユーザー・ドメイン・ゲストを停止します。

    すべてのユーザー・ドメイン・ゲストが停止すると、リストにDomain-0 (dom0)のみが表示されます。

    [root@dm01db01 ~]# xm shutdown –a -w
    Domain dm01db01vm01.example.com terminated 
    All domains terminated
    
    [root@dm01db01 ~]# xm list
    Name                                        ID   Mem VCPUs      State   Time(s)
    Domain-0                                     0  8192     4     r-----  94073.4
    
  6. partedを実行し、パーティション・サイズを確認します。

    GPTを修復するリクエストが表示された場合は、Fで応答します。

    root@dm01db01 ~]# parted /dev/sda 
    GNU Parted 2.1Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print
    Warning: Not all of the space available to /dev/sda appears to be used, you can
    fix the GPT to use all of the space (an extra 4679680000 blocks) or continue
    with the current setting? Fix/Ignore? F  
    
    Model: LSI MR9361-8i (scsi)
    Disk /dev/sda: 4193GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system  Name     Flags
     1      32.8kB  537MB   537MB   ext3         primary  boot 
     2      537MB   123GB   122GB                primary  lvm  
     3      123GB   1797GB  1674GB               primary       
    
    (parted) q
    前述のパーティション表に1674GBのパーティション3が表示されています。このパーティションが含まれるディスク(/dev/sda)のサイズは4193 GBです。
  7. partedを実行して、セクターの開始値および終了値を表示します。
    root@dm01db01 ~]# parted -s /dev/sda unit s print
    Model: LSI MR9361-8i (scsi) 
    Disk /dev/sda: 8189440000s 
    Sector size (logical/physical): 512B/512B 
    Partition Table: gpt 
    
    Number  Start       End          Size         File system  Name     Flags 
    1       64s         1048639s     1048576s     ext3         primary  boot 
    2       1048640s    240132159s   239083520s                primary  lvm 
    3       240132160s  3509759965s  3269627806s               primary
    
    前述のパーティション表に、パーティション3がセクター240132160で開始し、ディスク・サイズが8189440000と表示されています。これらの値はステップ10で使用します。
  8. 管理ドメイン/EXAVMIMAGESファイル・システムをディスマウントします。
    [root@dm01db01 ~]# umount /EXAVMIMAGES
  9. パーティション3を削除します。
    [root@dm01db01 ~]# parted -s /dev/sda rm 3
    

    このコマンドは出力を生成しません。

  10. 同じ開始セクターおよびパーティション・セクターの新しい終わりを指定して、パーティションを再作成します。パーティション・セクターの新しい終わりは、ディスク・サイズから34減算して計算します(たとえば: 8189440000 - 34 = 8189439966)。
    [root@dm01db01 ~]# parted -s /dev/sda mkpart primary 240132160s 8189439966s 
    

    次の警告が表示される場合があります。

    Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda 
    (Device or resource busy).  As a result, it may not reflect all of your changes until after 
    reboot.

    このエラーが発生した場合は、Exadataデータベース・サーバーを再起動してパーティション表に変更を適用します。

  11. /EXAVMIMAGESパーティションを再度マウントし、このパーティションのファイル・システム・ディスク領域使用率を表示します。
    [root@dm01db01 ~]# mount /EXAVMIMAGES
    
    [root@dm01db01 ~]# df -h /EXAVMIMAGES
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda3             1.6T   44G  1.5T   3% /EXAVMIMAGES
    

    ファイル・システムのサイズは、ステップ4の時点と同じで1.6TBです。

  12. カーネルで確認されるパーティション表に、パーティション3の更新後のサイズが表示されることを確認します。

    sda3の出力が、ステップ4で確認した出力よりも大きくなっていることを確認します。

    [root@dm01db01 ~]# cat /proc/partitions |grep sda
       8        0 4094720000 sda
       8        1     524288 sda1
       8        2  119541760 sda2
       8        3 3974653903 sda3
    
  13. ファイル・システムを拡張します。

    ファイル・システムがマウント済で処理の実行中でも、この操作は実行できます。更新後のファイル・システムのサイズを、ステップ4の値と比較して確認します。tunefs.ocfs2コマンドは実行速度が速く、通常は出力が生成されません。

    [root@dm01db01 ~]# tunefs.ocfs2 -S /dev/sda3
    
    [root@dm01db01 ~]# df -h /EXAVMIMAGES
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda3             3.8T   44G  3.7T   2% /EXAVMIMAGES
    
  14. ユーザー・ドメインを再起動します。

5.15 Oracle VMクラスタの追加

Oracle Exadata Deployment Assistant (OEDA)を使用して、既存のExadata Database Machineに新しいOracle VMクラスタを作成できます。

5.16 OEDACLIを使用したOracle VMでのOracle RACクラスタの拡張

Oracle VMに既存のOracle RACクラスタは、Oracle Exadata Deployment Assistantコマンドライン・インタフェース(OEDACLI)を使用してユーザー・ドメインを追加することで拡張できます。

OEDACLIは、目的のクラスタに適した既知のバージョンのOEDA XMLファイルがある場合に優先される方法です。

ノート:

この手順の実行中、既存のOracle RACクラスタ・ノードとそのデータベース・インスタンスでは、停止時間は発生しません。

この手順のユースケースは次のとおりです。

  • Oracle Exadataラックのデータベース・サーバーのサブセットのみを使用する既存のOracle RACクラスタがあり、現在クラスタによって使用されていないノードが使用候補になった場合。
  • データベース・サーバーを追加することで最近拡張したExadata Database Machineに既存のOracle RACクラスタがある場合。
  • 完全なノード障害が発生たノードを削除して新しくイメージ化したノードに置き換えた、既存のOracle RACクラスタがある場合。

この項のステップを実行する前に、「クラスタへの新しいデータベース・サーバーの追加」の説明に従って新しいデータベース・サーバーを設定しておく必要があります。これには、次の項目も含まれます。

  • 管理ドメインが含まれるネットワークに、新しいデータベース・サーバーをインストールして構成します。
  • 最新のOracle Exadata Deployment Assistant (OEDA)をダウンロードします(ダウンロードするファイルのバージョンが2019年7月以降のリリースであることを確認します)。
  • 既存のクラスタ構成を正確に反映したOEDA構成XMLファイルを用意します。このXMLファイルを検証するには、そのファイルからインストール・テンプレートを生成して現在の構成と比較します。OEDACLIコマンドSAVE FILESを参照してください。
  • 現在のシステム構成についてのOEDAインストール・テンプレートのレポートを確認して、既存のノードのノード名とIPアドレスを取得します。新しく追加するノードのために新しいホスト名とIPアドレスが必要になります。次の新しいホスト名とIPアドレスが必要になります。
    • 管理ドメインユーザー・ドメインの管理ホスト名とIPアドレス(ADMINNETと表記します)。
    • 管理ドメインユーザー・ドメインのプライベート・ホスト名とIPアドレス(PRIVNETと表記します)。
    • 管理ドメインIntegrated Lights Out Manager (ILOM)ホスト名とIPアドレス。
    • ユーザー・ドメインのクライアント・ホスト名とIPアドレス(CLIENTNETと表記します)。
    • ユーザー・ドメインの仮想IP(VIP)ホスト名とIPアドレス(VIPNETと表記します)。
    • 新しいノードの物理ラック番号とラック内のでの場所(U番号単位)
  • それぞれの管理ドメインが、既存のデータベース・サーバーで使用しているイメージと同じになるようにイメージ化またはパッチ適用しておきます。現在のシステム・イメージが、新しい管理ドメインノードの/EXAVMIMAGES/ System.first.boot.*.imgファイルのバージョンと一致している必要があります。

    ノート:

    この後で参照される~/dom0_groupファイルは、既存のノードと新しく追加するノードのすべての管理ドメインのホスト名が含まれているテキスト・ファイルです。

    すべての管理ドメイン間でイメージのバージョンが同じことを確認します。

    dcli -g ~/dom0_group -l root "imageinfo -ver"
    
    exa01adm01: 19.2.0.0.0.190225
    exa01adm02: 19.2.0.0.0.190225
    exa01adm03: 19.2.0.0.0.190225

    イメージのバージョンに異なるものがある場合は、そのバージョンが一致するようにノードをアップグレードする必要があります。

    すべての管理ドメインSystem.first.bootのバージョンが、前のステップで取得したイメージのバージョンと一致していることを確認します。

    dcli -g ~/dom0_group -l root "ls  -1 /EXAVMIMAGES/System.first.boot*.img" 
    exa01adm01:  /EXAVMIMAGES/System.first.boot.19.2.0.0.0.190225.img
    exa01adm02:  /EXAVMIMAGES/System.first.boot.19.2.0.0.0.190225.img
    exa01adm03:  /EXAVMIMAGES/System.first.boot.19.2.0.0.0.190225.img

    いずれかのノードに、現在のイメージと一致するSystem.first.boot.imgファイルがない場合は、必要なファイルを取得します。My Oracle SupportのドキュメントID 888828.1で、対象のExadataリリース用の補足READMEノートを確認し、"DomU System.img OS image for V.V.0.0.0 VM creation on upgraded dom0s"という説明文に対応するパッチ・ファイルを見つけてください。

  • klone.zipファイル(gi-klone*.zipdb-klone*.zip)を、クラスタに追加する新しくイメージ化された管理ドメインノードの/EXAVMIMAGESの場所に配置します。これらのファイルは、最初にシステムをデプロイした管理ドメイン/EXAVMIMAGESディレクトリにあります。

このステップでは、exa01adm03という新しい管理ドメインノードを追加する方法を示します。このノードには、exa01adm03vm01という新しいユーザー・ドメインを含めます。このステップでは、OEDACLIコマンドを使用して、既存のOracle RACクラスタをユーザー・ドメインに拡張する方法を示します。既存のクラスタには、exa01adm01およびexa01adm02という管理ドメインノードと、exa01adm01vm01およびexa01adm02vm01というユーザー・ドメイン・ノードがあります。

  1. CLONE COMPUTEコマンドを使用して、管理ドメインの情報をOEDA XMLファイルに追加します。

    次の各例では、OEDA XMLファイルがunzipped_OEDA_location/ExadataConfigurationsにあると仮定しています。

    OEDACLI> LOAD FILE NAME=exa01_original_deployment.xml 
    
    OEDACLI> CLONE COMPUTE SRCNAME=exa01adm01 TGTNAME=exa01adm03
    OEDACLI> SET ADMINNET NAME=exa01adm03,IP=xx.xx.xx.xx
    OEDACLI> SET PRIVNET NAME1=exa01adm03-priv1,IP1=xx.xx.xx.xx,NAME2=exa01adm03-priv2,IP2=xx.xx.xx.xx
    OEDACLI> SET ILOMNET NAME=exa01adm03-c,IP=xx.xx.xx.xx
    OEDACLI> SET RACK NUM=NN,ULOC=XX 
    
    OEDACLI> SAVE ACTION
    OEDACLI> MERGE ACTIONS FORCE
    OEDACLI> SAVE FILE NAME=exa01_plus_adm03_node.xml

    この時点で、構成内に新しい計算ノードの管理ドメインが含まれた新しいXMLファイルを使用できます。このファイルは、後続のステップで使用します。

  2. CLONE GUESTコマンドを使用して、新しいユーザー・ドメインの情報をOEDA XMLファイルに追加し、そのゲストをデプロイします。
    OEDACLI> LOAD FILE NAME=exa01_plus_adm03_node.xml 
    
    OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=CREATE_GUEST
    OEDACLI> SET PARENT NAME=exa01adm03
    OEDACLI> SET ADMINNET NAME=exa01adm03vm01,IP=xx.xx.xx.xx
    OEDACLI> SET PRIVNET NAME1=exa01db03vm01-priv1,IP1=xx.xx.xx.xx,NAME2=exa01db03vm01-priv2,IP2=xx.xx.xx.xx
    OEDACLI> SET CLIENTNET NAME=exa01client03vm01,IP=xx.xx.xx.xx
    OEDACLI> SET VIPNET NAME=exa01client03vm01-vip,IP=xx.xx.xx.xx
    
    OEDACLI> SAVE ACTION
    OEDACLI> MERGE ACTIONS
    OEDACLI> DEPLOY ACTIONS

    すべてのステップがOEDACLIで自動的に実行されるようにするには、CLONE GUESTコマンドのWHERE STEPNAME=CREATE_GUEST句を省略して、次のステップ3をスキップします。

  3. OEDACLIを使用して、クラスタを新しいユーザー・ドメインに拡張します。

    ノート:

    この例では、引き続き同じXMLファイルexa01_plus_adm03_node.xmlを使用します。次からのステップを進めながら、このファイルの更新を続けます。この手順の最後には、このXMLファイルはクラスタの新しい状態を正確に反映するようになります。
    OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=CREATE_USERS

    OEDACLI> SAVE ACTION
    OEDACLI> MERGE ACTIONS
    OEDACLI> DEPLOY ACTIONS
    
    OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=CELL_CONNECTIVITY

    OEDACLI> SAVE ACTION
    OEDACLI> MERGE ACTIONS
    OEDACLI> DEPLOY ACTIONS
    
    OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=ADD_NODE

    OEDACLI> SAVE ACTION
    OEDACLI> MERGE ACTIONS
    OEDACLI> DEPLOY ACTIONS
    
    OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=EXTEND_DBHOME

    OEDACLI> SAVE ACTION
    OEDACLI> MERGE ACTIONS
    OEDACLI> DEPLOY ACTIONS
    
    OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=ADD_INSTANCE

    OEDACLI> SAVE ACTION
    OEDACLI> MERGE ACTIONS
    OEDACLI> DEPLOY ACTIONS

    OEDACLIは、各ステップが完了するたびに、次のようなメッセージを出力します。

    Deploying Action ID : 39 CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 where STEPNAME=ADD_INSTANCE 
    Deploying CLONE GUEST 
    Cloning Guest 
    Cloning Guest  :  exa01adm03vm01.example.com_id 
    Adding new instance for database [dbm] on exa01adm03vm01.example.com 
    Setting up Huge Pages for Database..[dbm] 
    Adding instance dbm3 on host exa01adm03vm01.example.com 
    Successfully completed adding database instance on the new node [elapsed Time [Elapsed = 
    249561 mS [4.0  minutes] Fri Jun 28 13:35:52 PDT 2019]] 
    Done...
    Done
  4. 構成の現在の状態を保存して、構成情報を生成します。
    OEDACLI> SAVE FILES LOCATION=/tmp/exa01_plus_adm03_config

    前述のコマンドにより、すべての構成ファイルがディレクトリ/tmp/exa01_plus_adm03_configに書き込まれます。これらのファイルのコピーはクラスタへの変更を反映するようになっているため安全な場所に保存してください。

  5. Oracle EXAchkレポートを収集して、クラスタの正常性に問題がないことを確認します。

5.17 Oracle Grid InfrastructureおよびOracle Databaseの存在しないユーザー・ドメインの作成

ユーザー・ドメインは、システムにOracle Grid InfrastructureおよびOracle Databaseをインストールせずに作成することができます。新しいユーザー・ドメインの要素は、次の通りです。

  • オペレーティング・システム・イメージがOracle Linuxである。

  • 管理ネットワーク、クライアント・ネットワークおよびInfiniBandネットワークへアクセスできる。

  • Oracle Grid InfrastructureおよびOracle Databaseがインストールされていない。

Oracle Grid InfrastructureおよびOracle Databaseの存在しないユーザー・ドメインを作成する手順は、次の通りです。

  1. 未使用の新規IPアドレスおよびホスト名を新しいユーザー・ドメインに割り当てます。IPアドレスおよびホスト名は、管理ネットワーク、クライアント(SCAN)ネットワークおよびプライベートInfiniBandネットワークで必要です。

    ノート:

    アドレスごとにpingコマンドを使用して、該当のInfiniBandネットワークのIPアドレスが使用されていないことを確認します。ibhostsコマンドには、ユーザー・ドメインのエントリが含まれていないため、このコマンドを使用して、すべてのInfiniBandネットワークのIPアドレスが使用されていることを確認することはできません。

  2. 必要に応じて、更新されたユーザー・ドメイン(domU)システム・イメージ・ファイルを取得します。

    ユーザー・ドメインを作成するために、この手順の後で実行するexadata.img.domu_makerコマンドには、ユーザー・ドメイン(domU)システム・イメージ・ファイルSystem.first.boot.version.img/EXAVMIMAGESに必要です(versionは、管理ドメインのExadataソフトウェアのバージョンに一致し、管理ドメインで"imageinfo -ver"コマンドを実行することで確認できます)。

    たとえば、exadata.img.domu_makerを実行して、新しいユーザー・ドメインを作成し、管理ドメインのExadataソフトウェアのバージョンが12.1.2.1.1.150316.2の場合、ユーザー・ドメイン(domU)システム・イメージ・ファイル/EXAVMIMAGES/System.first.boot.12.1.2.1.1.150316.2.imgが存在する必要があります。

    # imageinfo -ver
    12.1.2.1.1.150316.2
    
    # ls -l /EXAVMIMAGES/System.first.boot.12.1.2.1.1.150316.2.img
    -rw-r--r-- 1 root root 13958643712 Mar 23 12:25 /EXAVMIMAGES/System.first.boot.12.1.2.1.1.150316.2.img
    

    ユーザー・ドメイン(domU)システム・イメージ・ファイルが存在しない場合は、My Oracle Supportから取得し、管理ドメインの/EXAVMIMAGESに配置する必要があります。詳細は、My Oracle Supportノート888828.1を参照してください。

  3. 次のコマンドを使用して、管理ドメインで、既存のXML構成ファイルをデプロイ済ユーザー・ドメインからコピーして、新しい名前のファイルにコピーします。

    # cp /EXAVMIMAGES/conf/existingDomainName-vm.xml /EXAVMIMAGES/conf/newDomainName-vm.xml
    

    前述のコマンドで、existingDomainName-vm.xmlは、デプロイされたユーザー・ドメインのXML構成ファイルで、newDomainName-vm.xmlは新しいファイルの名前です。

    次の例では、ユーザー・ドメイン"dm01db01vm01"の構成ファイルを、nondbdomain-vm.xmlにコピーします。

    # cp /EXAVMIMAGES/conf/dm01db01vm01-vm.xml /EXAVMIMAGES/conf/nondbdomain-vm.xml
    
  4. 管理ドメインで、次のようにして、新しいXMLファイルを編集します。

    1. すべての<Hostname>タグを変更して、対応するネットワークの新しいホスト名に一致させます。

    2. すべての<IP_address>タグを変更して、対応するネットワークの新しいIPアドレスに一致させます。

    3. <virtualMachine>タグを変更して、新しいホスト名を含めます。

    4. <hostName>タグを変更して、新しいホスト名を含めます。

    5. すべてのサブ要素を含む、<disk id="disk_2">および<disk id="disk_3">要素全体を削除します。開始<disk>タグから対応する終了</disk>の間のエントリ全体を削除する必要があります。

  5. 管理ドメインで、/opt/exadata_ovm/exadata.img.domu_makerコマンドを使用して、InfiniBandネットワークGUIDを新しいユーザー・ドメインに割り当てます。

    # /opt/exadata_ovm/exadata.img.domu_maker allocate-guids \
         /EXAVMIMAGES/conf/newDomainName-vm.xml              \
         /EXAVMIMAGES/conf/final-newDomainName-vm.xml
    
  6. 管理ドメインで、/opt/exadata_ovm/exadata.img.domu_makerコマンドを使用して、新しいユーザー・ドメインを作成します。

    # /opt/exadata_ovm/exadata.img.domu_maker start-domain \
         /EXAVMIMAGES/conf/final-newDomainName-vm.xml
    

5.18 ユーザー・ドメインの別のデータベース・サーバーへの移動

ユーザー・ドメインを別のデータベース・サーバーへ移動できます。

ターゲットのOracle Exadata Database Serverが、次の要件を満たしている必要があります。

  • ターゲット・データベース・サーバーに、同一リリースのOracle Exadata System SoftwareおよびOracle VMがインストールされている。

  • ターゲット・データベース・サーバーに、同一のネットワークが表示されている。

  • ターゲット・データベース・サーバーは、同一のOracle Exadata Storage Serverにアクセスできる。

  • ターゲット・データベース・サーバーで、ユーザー・ドメインの操作に必要な十分な空きリソース(メモリー、CPUおよびローカル・ディスク領域)が使用可能である。

    • 仮想CPUをオーバーコミットすると、すべてのドメインに割り当てられた仮想CPUを、システム上の物理CPU数より多く割り当てることができます。CPUのオーバーコミットは、過剰に収容されたリソースへの競合するワークロードが十分理解され、同時に発生する要求が物理能力を超えない場合にのみ、実行する必要があります。

    • メモリーをオーバーコミットすることはできません。

    • ディスク・イメージをターゲット・データベース・サーバーにコピーすると、ディスク・イメージ・ファイルの領域の割当てが増加する場合があります。これは、コピーされたファイルは、OCFS2 reflinkを利用してディスク領域を省略できないためです。

  • ユーザー・ドメイン名は、ターゲット・データベース・サーバーで未使用の名前にする必要があります。

次の手順に従い、ユーザー・ドメインを同一のOracle Exadata System Software構成内の新しいデータベース・サーバーに移動します。この手順のすべてのステップは、管理ドメインで実行してください。

  1. ユーザー・ドメイン名をシャットダウンします。
    # xm shutdown DomainName -w
    
  2. ユーザー・ドメインのディスク・イメージと構成ファイルをターゲット・データベース・サーバーにコピーします。

    次の例に示すDomainNameは、ドメインの名前に置き換えてください。

    # scp -r /EXAVMIMAGES/GuestImages/DomainName/ target:/EXAVMIMAGES/GuestImages
    
  3. ユーザー・ドメインのUUIDを取得します。
    # grep ^uuid /EXAVMIMAGES/GuestImages/DomainName/vm.cfg
    

    ユーザー・ドメイン UUIDは、49ffddce4efe43f5910d0c61c87bba58のようになります。

  4. ユーザー・ドメインのUUIDを使用して、ユーザー・ドメインのシンボリック・リンクを/OVS/Repositoriesからターゲット・データベース・サーバーにコピーします。
    # tar cpvf - /OVS/Repositories/UUID/ | ssh target_db_server "tar xpvf - -C /"
    
  5. ターゲット・データベース・サーバーで、ユーザー・ドメインを起動します。
    # xm create /EXAVMIMAGES/GuestImages/DomainName/xm.cfg
    

5.19 Oracle VMデプロイメントの管理ドメインとユーザー・ドメインのバックアップ

Oracle VMデプロイメントでは、管理ドメイン(dom0)とユーザー・ドメイン(domU)をバックアップする必要があります。

5.19.1 スナップショット・ベースのバックアップを使用した管理ドメインdom0のバックアップ

この手順は、管理ドメインdom0のスナップショット・ベースのバックアップを取得する方法を示しています。

論理ボリューム/dev/VGExaDb/LVDoNotRemoveOrUseは、スナップショットを作成できるだけの空き領域を常に確保するためのプレースホルダです。dbserver_backup.shを実行すると、プレースホルダLVMがスクリプトによって削除され、それによって生まれた空き領域がスナップショットに使用され、スナップショットの作成後に再びLVMが作成されます。ここで説明する手動手順を実行する場合は、これらのタスクをすべて手動で実行する必要があります。

次のステップで示す値は、例です。rootユーザーとして、すべてのステップを実行する必要があります。

  1. バックアップの保存先を準備します。

    バックアップ先は、書込み可能なNFSの場所など、ローカル・マシンの外部に存在するようにし、バックアップtarファイルを保持できる十分な大きさにする必要があります。カスタマイズされていないパーティションの場合、バックアップを保持するのに必要な領域は約60 GBです。

    次のコマンドを使用してバックアップ先を準備できます。

    # mkdir -p /remote_FS
    
    # mount -t nfs -o rw,intr,soft,proto=tcp,nolock ip_address:/nfs_location/ /remote_FS
    

    ip_addressは、NFSサーバーのIPアドレスで、nfs_locationは、バックアップを保持するNFSの場所です。

  2. / (ルート)ディレクトリをホストするファイル・システムのスナップショット・ベースのバックアップを取得します。
    1. LVDoNotRemoveOrUse論理ボリュームの有無をチェックします。

      このボリュームが存在する場合は、ボリュームを削除してスナップショット用の領域を確保します。次のスクリプトを実行してLVDoNotRemoveOrUse論理ボリュームの有無をチェックし、存在する場合は削除します。

      lvm lvdisplay --ignorelockingfailure /dev/VGExaDb/LVDoNotRemoveOrUse
      if [ $? -eq 0 ]; then
        # LVDoNotRemoveOrUse logical volume exists.
        lvm lvremove -f /dev/VGExaDb/LVDoNotRemoveOrUse
        if [ $? -ne 0 ]; then
             echo "Unable to remove logical volume: LVDoNotRemoveOrUse. Unable to proceed with backup"
        fi
      fi

      LVDoNotRemoveOrUse論理ボリュームが存在しない場合は、その理由を調査し、以降のステップには進みません。

    2. / (ルート)ディレクトリをホストするファイル・システムに、LVDbSys3_snapという名前のスナップショットを作成します。

      この例では、LVDbSys3がアクティブ・パーティションであることを前提とします。

      # lvcreate -L1G -s -n LVDbSys3_snap /dev/VGExaDb/LVDbSys3
      
    3. スナップショットにラベルを付けます。
      # e2label /dev/VGExaDb/LVDbSys3_snap DBSYSOVS_SNAP
      
    4. スナップショットをマウントします。
      # mkdir /root/mnt
      
      # mount /dev/VGExaDb/LVDbSys3_snap /root/mnt -t ext4
      
    5. バックアップのディレクトリに変更します。
      # cd /root/mnt
      
    6. バックアップ・ファイルを作成します。
      # tar -pjcvf /remote_FS/mybackup.tar.bz2 * /boot > /tmp/backup_tar.stdout 2> /tmp/backup_tar.stderr
      
    7. /tmp/backup_tar.stderrファイルをチェックして、重大なエラーがないかを確認します。

      tarオープン・ソケットの障害に関するエラーおよび他の同様のエラーは無視できます。

  3. スナップショットをアンマウントして、ルート・ディレクトリのスナップショットを削除します。
    # cd /
    # umount /root/mnt
    # /bin/rmdir /root/mnt
    # lvremove /dev/VGExaDb/LVDbSys3_snap
  4. NFS共有をアンマウントします。
    # umount /remote_FS
  5. 論理ボリューム/dev/VGExaDb/LVDoNotRemoveOrUseを再作成します。
    # lvm lvcreate -n LVDoNotRemoveOrUse -L1G VGExaDb

5.19.2 ユーザー・ドメインのバックアップ

ホスト上のすべてのユーザー・ドメインまたは個々のユーザー・ドメインのバックアップを作成できます。

ユーザー・ドメインのバックアップ方法は3つあります。

  • 方法1: Oracle Cluster File System (OCFS) reflinkを使用して記憶域リポジトリのすべてのユーザー・ドメインをバックアップし、一貫性のあるバックアップを取得する

    この方法では、/EXAVMIMAGES OCFS2ファイル・システムである記憶域リポジトリをバックアップします。この方法では、方法2または3よりもより堅牢で包括的なバックアップが可能です。方法3は、特にロール別に分離された環境で、迅速で簡単なバックアップ方法が提供されます。

    方法1は、管理ドメイン(dom0)の管理者がユーザー・ドメインのバックアップを担当する場合に最適です。

  • 方法2: Oracle Cluster File System (OCFS) reflinkを使用して記憶域リポジトリの個々のユーザー・ドメインをバックアップし、一貫性のあるバックアップを取得する

    /EXAVMIMAGES OCFS2ファイル・システムからバックアップするユーザー・ドメインを選択します。ユーザー・ドメインは、/EXAVMIMAGES/GuestImages/userディレクトリにあります。

    方法2は、管理ドメイン(dom0)の管理者がユーザー・ドメインのバックアップを担当する場合に最適です。

  • 方法3: スナップショット・ベースのバックアップを使用してユーザー・ドメインをバックアップする

    この方法では、ユーザー・ドメイン内部からスナップショット・ベースのバックアップを作成することで、単一のユーザー・ドメインをバックアップします。

    方法3は、ユーザー・ドメイン管理者がユーザー・ドメインのバックアップを担当している場合に最適です。

5.19.2.1 方法1: すべてのユーザー・ドメインをバックアップする

/EXAVMIMAGES OCFS2ファイル・システムであるストレージ・リポジトリをバックアップすることで、すべてのユーザー・ドメインをバックアップできます。

バックアップ先は、書込み可能なNFSの場所など、ローカル・マシンの外部に存在するようにし、バックアップを保持できる十分な大きさにする必要があります。バックアップに必要な領域は、システムにデプロイされるOracle VMの数に比例し、最大約1.6TBです。

この手順では、管理ドメインごとに15個以下のユーザー・ドメインがあることを前提としています。

  1. 次のスクリプトを使用して、バックアップ先を準備し、バックアップするユーザー・ドメインを準備します。
    ScriptStarttime=$(date +%s)
    printf "This script is going to remove the directory /EXAVMIMAGES/Backup.
    If that is not acceptable, exit the script by typing n, manually 
    remove /EXAVMIMAGES/Backup and come back to rerun the script. Otherwise, 
    press y to continue  :"
    read proceed 
    
    if [[ ${proceed} == "n" ]] || [[  ${proceed} == "N" ]]
    then
      exit 0
    fi 
    
    rm -rf /EXAVMIMAGES/Backup 
    
    ##  Create the Backup Directory 
    
    mkdirStartTime=$(date +%s)
    find /EXAVMIMAGES -type d|grep -v 'lost+found'|awk '{print "mkdir -p /EXAVMIMAGES/Backup"$1}'|sh
    mkdirEndTime=$(date +%s)
    mkdirTime=$(expr ${mkdirEndTime} - ${mkdirStartTime})
    echo "Backup Directory creation time :" ${mkdirTime}" seconds" 
    
    ##  Create reflinks for files not in /EXAVMIMAGES/GuestImages
    relinkothesStartTime=$(date +%s)
    find /EXAVMIMAGES/ -not -path "/EXAVMIMAGES/GuestImages/*" -not -path "/EXAVMIMAGES/Backup/*" -type f|awk '{print "reflink",$0,"/EXAVMIMAGES/Backup"$0}'|sh
    relinkothesEndTime=$(date +%s)
    reflinkothesTime=$(expr ${relinkothesEndTime} - ${relinkothesStartTime})
    echo "Reflink creation time for files other than in /EXAVMIMAGES/GuestImages :" ${reflinkothesTime}" seconds" 
    
    ##  Pause the user domains
    for hostName in $(xm list|egrep -v '^Domain-0|^Name'|awk '{print $1}')
    do
    PauseStartTime=$(date +%s)
    xm pause ${hostName}
    PauseEndTime=$(date +%s)
    PauseTime=$(expr ${PauseEndTime} - ${PauseStartTime})
    echo "PauseTime for guest - ${hostName} :" ${PauseTime}" seconds" 
    
    ## Create reflinks for all the files in /EXAVMIMAGES/GuestImages
    relinkStartTime=$(date +%s)
    find /EXAVMIMAGES/GuestImages/${hostName} -type f|awk '{print "reflink",$0,"/EXAVMIMAGES/Backup"$0}'|sh
    relinkEndTime=$(date +%s)
    reflinkTime=$(expr ${relinkEndTime} - ${relinkStartTime})
    echo "Reflink creation time for guest - ${hostName} :" ${reflinkTime}" seconds" 
    
    ## Unpause the user domains
    unPauseStartTime=$(date +%s)
    xm unpause ${hostName}
    unPauseEndTime=$(date +%s)
    unPauseTime=$(expr ${unPauseEndTime} - ${unPauseStartTime})
    echo "unPauseTime for guest - ${hostName} :" ${unPauseTime}" seconds" 
    
    ScriptEndtime=$(date +%s) 
    ScriptRunTime=$(expr ${ScriptEndtime} - ${ScriptStarttime}) 
    echo "ScriptRunTime ${ScriptRunTime} seconds”
  2. スナップショットのバックアップを作成します。

    ステップ1のスクリプトで作成された/EXAVMIMAGES/Backupディレクトリ内のreflinkファイルをリモートの場所にバックアップします。次に例を示します。

    1. /EXAVMIMAGES/Backupの下のすべてのファイルで構成されるtarballファイルを作成します。
    2. tarballをリモートの場所にコピーします。

    これにより、管理ドメイン(Dom0)が恒久的に失われたり破損した場合にリストア操作が可能になります。

  3. スクリプトによって作成されたreflinkを削除します。
5.19.2.2 方法2: 個々のユーザー・ドメインのバックアップ

/EXAVMIMAGESファイル・システム内の特定のフォルダをバックアップすることで、個々のユーザー・ドメインをバックアップできます。

バックアップ先は、書込み可能なNFSの場所など、ローカル・マシンの外部に存在するようにし、バックアップを保持できる十分な大きさにする必要があります。バックアップに必要な領域は、システムにデプロイされるOracle VMの数に比例し、最大約1.6TBです。

  1. 次のスクリプトを使用して、バックアップ先を準備し、バックアップするユーザー・ドメインを準備します。
    ScriptStarttime=$(date +%s)
    printf "This script is going to remove the directory /EXAVMIMAGES/Backup.
    If that is not acceptable, exit the script by typing n, manually 
    remove /EXAVMIMAGES/Backup and come back to rerun the script. Otherwise, 
    press y to continue  :"
    read proceed 
    
    if [[ ${proceed} == "n" ]] || [[  ${proceed} == "N" ]]
    then
      exit 0
    fi 
    
    rm -rf /EXAVMIMAGES/Backup 
    
    printf "Enter the name of the user domains to be backed up :"
    read userDomainName
    
    ##  Create the Backup Directory 
    
    mkdirStartTime=$(date +%s)
    find /EXAVMIMAGES/GuestImages/${userDomainName} -type d|grep -v 'lost+found'|awk '{print "mkdir -p /EXAVMIMAGES/Backup"$1}'|sh
    mkdirEndTime=$(date +%s)
    mkdirTime=$(expr ${mkdirEndTime} - ${mkdirStartTime})
    echo "Backup Directory creation time :" ${mkdirTime}" seconds" 
    
    ##  Pause the user domain
    PauseStartTime=$(date +%s)
    xm pause ${userDomainName}
    PauseEndTime=$(date +%s)
    PauseTime=$(expr ${PauseEndTime} - ${PauseStartTime})
    echo "PauseTime for guest - ${userDomainName} :" ${PauseTime}" seconds" 
    
    ## Create reflinks for all the files in /EXAVMIMAGES/GuestImages/${userDomainName}
    relinkStartTime=$(date +%s)
    find /EXAVMIMAGES/GuestImages/${userDomainName} -type f|awk '{print "reflink",$0,"/EXAVMIMAGES/Backup"$0}'|sh
    relinkEndTime=$(date +%s)
    reflinkTime=$(expr ${relinkEndTime} - ${relinkStartTime})
    echo "Reflink creation time for guest - ${userDomainName} :" ${reflinkTime}" seconds" 
    
    ## Unpause the user domain
    unPauseStartTime=$(date +%s)
    xm unpause ${userDomainName}
    unPauseEndTime=$(date +%s)
    unPauseTime=$(expr ${unPauseEndTime} - ${unPauseStartTime})
    echo "unPauseTime for guest - ${userDomainName} :" ${unPauseTime}" seconds"
    
    ScriptEndtime=$(date +%s) 
    ScriptRunTime=$(expr ${ScriptEndtime} - ${ScriptStarttime}) 
    echo "ScriptRunTime ${ScriptRunTime} seconds”
  2. スナップショットのバックアップを作成します。

    ステップ1のスクリプトで作成された/EXAVMIMAGES/Backupディレクトリ内のreflinkファイルをリモートの場所にバックアップします。次に例を示します。

    1. /EXAVMIMAGES/Backupの下のすべてのファイルで構成されるtarballファイルを作成します。
    2. tarballをリモートの場所にコピーします。

    これにより、管理ドメイン(Dom0)が恒久的に失われたり破損した場合にリストア操作が可能になります。

  3. スクリプトによって作成されたreflinkを削除します。
5.19.2.3 方法3: ユーザー・ドメイン内からユーザー・ドメインをバックアップする

ユーザー・ドメイン内からユーザー・ドメインのスナップショット・ベースのバックアップを取得できます。これは、ユーザー・ドメインを作業可能な状態にリストアするために使用できます。

すべてのステップはユーザー・ドメイン内から実行します。

ノート:

LVMスナップショットを使用してユーザー・ドメイン内からユーザー・ドメインをバックアップする方法では、リカバリ時の使用に関して制限があります。このようなバックアップは、ユーザー・ドメインがまだブート可能で、rootユーザーとしてログインできる場合のリカバリ用にのみ使用できます。これは、一部のファイルに損失または損傷が発生したが、ユーザー・ドメインがブートされ、/ (ルート)パーティションおよびブート・パーティションがマウントされた後に、tarバックアップからリストアできるような損傷です。そのような状況ではなくユーザー・ドメインをブートできない損傷の場合は、上述の方法1または2で作成したバックアップを使用してユーザー・ドメインをリカバリする必要があります。この場合は次の手順を実行して、ユーザー・ドメイン・レベルでリカバリ手順を実行する必要があります。

この手順では、次がバックアップされます。

  • LVDbSys1
  • LVDbOra1
  • /bootパーティション
  • Grid Infrastructureホーム
  • RDBMSホーム

rootユーザーとして、すべてのステップを実行する必要があります。

  1. バックアップの保存先を準備します。

    次の例で、ip_addressはNFSサーバーのIPアドレス、nfs_locationはバックアップを保持するNFSの場所です。

    # mkdir -p /remote_FS
    
    # mount -t nfs -o rw,intr,soft,proto=tcp,nolock ip_address:/nfs_location/ /remote_FS
  2. 次のように、/ (ルート)および/u01ディレクトリを含むファイル・システムのスナップショット・ベースのバックアップを取得します。
    1. ルート・ディレクトリを含むファイル・システムに、LVDbSys1_snapと言う名前のスナップショットを作成します。
      ボリューム・グループには、コマンドを正常に実行するのに少なくとも1 GBの空き領域が必要です。
      # lvcreate -L1G -s -n LVDbSys1_snap /dev/VGExaDb/LVDbSys1
    2. スナップショットにラベルを付けます。
      # e2label /dev/VGExaDb/LVDbSys1_snap DBSYS_SNAP
    3. スナップショットをマウントします。
      # mkdir /root/mnt
      
      # mount /dev/VGExaDb/LVDbSys1_snap /root/mnt -t ext4
    4. /u01ディレクトリにu01_snapという名前のスナップショットを作成します。
      # lvcreate -L256M -s -n u01_snap /dev/VGExaDb/LVDbOra1
    5. スナップショットにラベルを付けます。
      # e2label /dev/VGExaDb/u01_snap DBORA_SNAP
    6. スナップショットをマウントします。
      # mkdir -p /root/mnt/u01
      
      # mount /dev/VGExaDb/u01_snap /root/mnt/u01 -t ext4
    7. バックアップのディレクトリに変更します。
      # cd /root/mnt
    8. バックアップ・ファイルを作成し、前述の2つのスナップショット、/bootパーティション、Oracle Databaseホーム・ディレクトリおよびOracle Grid Infrastructureホーム・ディレクトリをバックアップします。

      次の例では、Grid_homeはOracle Grid Infrastructureホームの場所です(/u01/app/18.1.0/gridなど)。DB_homeはOracle Databaseホームの場所です(/u01/app/oracle/product/18.1.0/dbhome_1など)。

      # tar -pjcvf /remote_FS/mybackup.tar.bz2 * /boot Grid_home 
      DB_home > /tmp/backup_tar.stdout 2> /tmp/backup_tar.stderr
      
    9. /tmp/backup_tar.stderrファイルをチェックして、重大なエラーがないかを確認します。

      tarオープン・ソケットの障害に関するエラーおよび他の同様のエラーは無視できます。

  3. ルート・ディレクトリを含むファイル・システムのスナップショットをアンマウントおよび削除します。
    # cd /
    # umount /root/mnt/u01
    # umount /root/mnt
    # /bin/rmdir /root/mnt
    # lvremove /dev/VGExaDb/u01_snap
    # lvremove /dev/VGExaDb/LVDbSys1_snap
  4. NFS共有をアンマウントします。
    # umount /remote_FS

5.20 Oracle VMデプロイメントのリカバリ

重大な障害が発生してOracle VMが損傷した場合や、サーバー・ハードウェアを新しいハードウェアに交換した場合は、スナップショット・ベースのバックアップからOracle VMをリカバリできます。

たとえば、すべてのハード・ディスクを交換すると、システムの元のソフトウェアはトレースできません。これは、ソフトウェアの完全なシステムの交換と似ています。さらに、障害状態になる前にデータベース・サーバーが正常であったときに取得したLVMスナップショット・ベースのバックアップを使用するデータベース・サーバーの障害リカバリ方法を提供します。

この項で説明するリカバリ手順には、ストレージ・サーバーやOracle Databaseのデータのバックアップまたはリカバリは含まれていません。バックアップとリカバリ手順は定期的にテストすることをお薦めします。

5.20.1 データベース・サーバーのスナップショット・ベースのリカバリの概要

Oracle VMのリカバリは、一連のタスクで構成されています。

リカバリ手順では、仮想CD-ROMとしてdiagnostics.isoイメージを使用し、Integrated Lights Out Manager (ILOM)を使用してレスキュー・モードでOracle VMを再起動します。このステップの概要は、次のようになります。

  1. 次のものを再作成します。

    • ブート・パーティション

    • 物理ボリューム

    • ボリューム・グループ

    • 論理ボリューム

    • ファイル・システム

    • スワップ・パーティション

  2. スワップ・パーティションをアクティブ化します。

  3. /bootパーティションがアクティブなブート・パーティションであることを確認します。

  4. データをリストアします。

  5. GRUBを再構成します。

  6. サーバーを再起動します。

5.20.2 シナリオ1: 管理ドメインとそのユーザー・ドメインのバックアップからのリカバリ

管理ドメインとそのすべてのユーザー・ドメインは、バックアップからリカバリできます。

次の手順は、リカバリ・プロセスステップを示しています。システムにインストールされているOracle Exadata System Softwareのバージョンに応じて、次の手順のいずれかを選択します。

警告:

ディスクの既存のすべてのデータは、これらの手順の実行中に失われます。
5.20.2.1 管理ドメインとそのユーザー・ドメインのリカバリ(12.2.1.1.0より前のリリース)

重大な障害が発生してdom0が損傷した場合や、サーバー・ハードウェアを新しいハードウェアに交換した場合は、スナップショット・ベースのバックアップから管理ドメインをリカバリできます。

このリカバリ方法を使用する場合は、「スナップショット・ベースのバックアップを使用した管理ドメインdom0のバックアップ」のステップを完了していることが前提になります。

  1. NFSサーバーを準備して、バックアップ・アーカイブmybackup.tar.bz2をホストします。

    IPアドレスを使用して、NFSサーバーにアクセスできる必要があります。たとえば、IPアドレスnfs_ipを使用するNFSサーバーで/exportディレクトリがNFSマウントからエクスポートされる場合は、/exportディレクトリにmybackup.tar.bz2ファイルを置きます

  2. diagnostics.isoファイルを使用して、リカバリ・ターゲット・システムを再起動します。
    Oracle Exadata System Softwareユーザーズ・ガイド診断ISOファイルを使用したサーバーの起動を参照してください。
  3. 診断シェルにrootユーザーとしてログインします。
    プロンプトが表示されたら、診断シェルに入ります。

    次に例を示します。

    Choose from following by typing letter in '()':
    (e)nter interactive diagnostics shell. Must use credentials 
    from Oracle support to login (reboot or power cycle to exit
    the shell),
    (r)estore system from NFS backup archive, 
    Type e to enter the diagnostics shell and log in as the root user.
    プロンプトが表示されたら、rootユーザーとしてシステムにログインします。rootユーザーのパスワードの入力を求められ、それが不明である場合は、Oracleサポート・サービスに連絡してください。
  4. 必要に応じて、/opt/MegaRAID/MegaCli/MegaCli64を使用して、ディスク・コントローラを構成してディスクを設定します。
  5. 障害の発生後に論理ボリューム、ボリューム・グループおよび物理ボリュームが存在する場合は、それらを削除します。
    # lvm vgremove VGExaDb --force
    # lvm pvremove /dev/sda2 --force
  6. 既存のパーティションを削除し、ドライブをクリーン・アップします。
    # parted
    GNU Parted 2.1
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) rm 1 
    sda: sda2 sda3
    (parted) rm 2 
    sda: sda3
    (parted) rm 3 
    sda:
    (parted) q
    
    # dd if=/dev/zero of=/dev/sda bs=64M count=2
  7. 3つのパーティションを/dev/sdaに作成します。
    1. ディスク/dev/sdaの終了セクタを残りのdom0から取得し、変数に保存します。
      # end_sector=$(parted -s /dev/sda unit s print|perl -ne '/^Disk\s+\S+:\s+(\d+)s/ and print $1')
    2. ブート・パーティション/dev/sda1を作成します。
      # parted -s /dev/sda mklabel gpt mkpart primary 64s 1048639s set 1 boot on
    3. LVMを保持するパーティション/dev/sda2を作成します。
      # parted -s /dev/sda mkpart primary 1048640s 240132159s set 2 lvm on
    4. OCFS2記憶域リポジトリ・パーティション/dev/sda3を作成します。
      # parted -s /dev/sda mkpart primary 240132160s ${end_sector}s set 3
  8. /sbin/lvmコマンドを使用して論理ボリュームを再作成し、mkfsを使用してファイル・システムを作成します。
    1. 物理ボリュームおよびボリューム・グループを作成します。
      # lvm pvcreate /dev/sda2
      # lvm vgcreate VGExaDb /dev/sda2
      
    2. / (ルート)ディレクトリを含むファイル・システムの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSys3 -L30G VGExaDb
      # mkfs.ext4 /dev/VGExaDb/LVDbSys3
      # e2label /dev/VGExaDb/LVDbSys3 DBSYSOVS
      
    3. スワップ・ディレクトリの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSwap1 -L24G VGExaDb
      # mkswap -L SWAP /dev/VGExaDb/LVDbSwap1
      
    4. バックアップ・パーティションの論理ボリュームを作成して、その上部にファイル・システムを構築します。
      # lvm lvcreate -n LVDbSys2 -L30G VGExaDb
      # mkfs.ext4 /dev/VGExaDb/LVDbSys2
      
    5. 予約パーティション用の論理ボリュームを作成します。
      # lvm lvcreate -n LVDoNotRemoveOrUse –L1G VGExaDb

      ノート:

      この論理ボリュームにファイル・システムを作成しないでください。
    6. /dev/sda1パーティションにファイル・システムを作成し、ラベルを付けます。

      次のmkfs.ext3コマンドで、inodeサイズを128に設定するには-I 128オプションが必要です。

      # mkfs.ext3 -I 128 /dev/sda1
      # tune2fs -c 0 -i 0 /dev/sda1
      # e2label /dev/sda1 BOOT
      
  9. すべてのパーティションのマウント・ポイントを作成して、各パーティションをマウントします。

    たとえば、/mntが最上位ディレクトリとして使用されると、マウントされるパーティションのリストは次のようになります。

    • /dev/VGExaDb/LVDbSys3 on /mnt

    • /dev/sda1 on /mnt/boot

    次の例では、ルート・ファイル・システムをマウントし、2つのマウント・ポイントを作成します。

    # mount /dev/VGExaDb/LVDbSys3 /mnt -t ext4
    # mkdir /mnt/boot
    # mount /dev/sda1 /mnt/boot -t ext3
    
  10. eth0でネットワークを起動し、ホストのIPアドレスおよびネットマスクを割り当てます。
    # ifconfig eth0 ip_address_for_eth0 netmask netmask_for_eth0 up
    # route add -net 0.0.0.0 netmask 0.0.0.0 gw gateway_ip_address
    
  11. バックアップを保持するNFSサーバーをマウントします。
    # mkdir -p /root/mnt
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  12. スナップショット・ベースのバックアップを使用した管理ドメインdom0のバックアップで作成したバックアップから、ルート・ディレクトリ(/)とブート・ファイル・システムをリストアします。
    # tar -pjxvf /root/mnt/backup-of-root-and-boot.tar -C /mnt
  13. リストアした/dev/sda1パーティションをアンマウントし、/bootに再マウントします。
    # umount /mnt/boot
    # mkdir /boot
    # mount /dev/sda1 /boot -t ext3
    
  14. 次のコマンドを使用して、grubブート・ローダーを設定します。
    # grub --device-map=/boot/grub/device.map << DOM0_GRUB_INSTALL
    root (hd0,0)
    setup (hd0)
    quit
    DOM0_GRUB_INSTALL
    
  15. /bootパーティションをアンマウントします。
    # umount /boot
  16. diagnostics.isoファイルを切り離します。

    ILOM Webインタフェースを使用して「Storage Devices」ダイアログに移動し、「Disconnect」をクリックします。

    「Storage Devices」ダイアログは、以前にdiagnostics.isoイメージを接続するために使用したインタフェースです。Oracle Exadata System Softwareユーザーズ・ガイド診断ISOファイルを使用したサーバーの起動を参照してください。

  17. リストアした/etc/fstabファイルを確認し、/EXAVMIMAGESおよび/dev/sda3への参照をコメント・アウトします。
    # cd /mnt/etc

    /EXAVMIMAGESまたは/dev/sda3を参照する行をすべてコメント・アウトします。

  18. システムを再起動します。
    # shutdown -r now

    これで、管理ドメイン(dom0)のリストア手順は完了です。

  19. 必要であれば、エイス・ラックに変換します。

    Exadata Database Machineエイス・ラックでリカバリを実行する場合は、「Oracle Exadata Database Machineエイス・ラックのOracle Linuxデータベース・サーバーのリカバリ後の構成」の手順を実行します。

  20. サーバーが再起動されたら、OCFS2ファイル・システムを/dev/sda3パーティションに構築します。
    # mkfs -t ocfs2 -L ocfs2 -T vmstore --fs-features=local /dev/sda3 --force
  21. OCFS2パーティション/dev/sda3/EXAVMIMAGESにマウントします。
    # mount -t ocfs2 /dev/sda3 /EXAVMIMAGES
  22. /etc/fstabで、前にコメント・アウトした/EXAVMIMAGESおよび/dev/sda3への参照を非コメント化します。
  23. 記憶域リポジトリ(/EXAVMIMAGES)バックアップを保持するバックアップNFSサーバーをマウントし、すべてのユーザー・ドメイン・イメージを保持する/EXAVMIMAGESファイル・システムをリストアします。
    # mkdir -p /root/mnt
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  24. /EXAVMIMAGESファイル・システムをリストアします。

    すべてのユーザー・ドメインをリストアするには、次のコマンドを使用します。

    # tar -Spxvf /root/mnt/backup-of-exavmimages.tar -C /EXAVMIMAGES

    単一のユーザー・ドメインをバックアップからリストアするには、かわりに次のコマンドを使用します。

    # tar -Spxvf /root/mnt/backup-of-exavmimages.tar -C /EXAVMIMAGES EXAVMIMAGES/<user-domain-name-to-be-restored>
  25. 各ユーザー・ドメインを起動します。
    # xm create /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg

この時点で、すべてのユーザー・ドメインがOracle Grid InfrastructureOracle Databaseインスタンスとともに稼働します。データベース・インスタンスは、その他の残存している管理ドメイン・ノードで形成されたOracle Real Application Clusters (Oracle RAC)クラスタに参加する必要があります。

5.20.2.2 管理ドメインとそのユーザー・ドメインのリカバリ(リリース12.2.1.1.0以降)

重大な障害が発生して管理ドメインが損傷した場合や、サーバー・ハードウェアを新しいハードウェアに交換した場合は、スナップショット・ベースのバックアップから管理ドメインをリカバリできます。

このリカバリ方法を使用する場合は、「スナップショット・ベースのバックアップを使用した管理ドメインdom0のバックアップ」のステップを完了していることが前提になります。

  1. NFSサーバーを準備して、バックアップ・アーカイブmybackup.tar.bz2をホストします。

    IPアドレスを使用して、NFSサーバーにアクセスできる必要があります。たとえば、IPアドレスnfs_ipを使用するNFSサーバーで/exportディレクトリがNFSマウントからエクスポートされる場合は、/exportディレクトリにmybackup.tar.bz2ファイルを置きます

  2. diagnostics.isoファイルを使用して、リカバリ・ターゲット・システムを再起動します。
    Oracle Exadata System Softwareユーザーズ・ガイド診断ISOファイルを使用したサーバーの起動を参照してください。
  3. 診断シェルにrootユーザーとしてログインします。
    プロンプトが表示されたら、診断シェルに入ります。

    次に例を示します。

    Choose from following by typing letter in '()':
    (e)nter interactive diagnostics shell. Must use credentials 
    from Oracle support to login (reboot or power cycle to exit
    the shell),
    (r)estore system from NFS backup archive, 
    Type e to enter the diagnostics shell and log in as the root user.
    プロンプトが表示されたら、rootユーザーとしてシステムにログインします。rootユーザーのパスワードの入力を求められ、それが不明である場合は、Oracleサポート・サービスに連絡してください。
  4. 必要に応じて、/opt/MegaRAID/storcli/storcli64 (またはOracle Exadata System Software 19cより前のリリースの場合は/opt/MegaRAID/MegaCli/MegaCli64)を使用して、ディスク・コントローラを構成してディスクを設定します。
  5. 障害の発生後に論理ボリューム、ボリューム・グループおよび物理ボリュームが存在する場合は、それらを削除します。
    # lvm vgremove VGExaDb --force
    # lvm pvremove /dev/sda2 --force
  6. 既存のパーティションを削除し、ドライブをクリーン・アップします。
    # parted
    GNU Parted 2.1
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) rm 1 
    [12064.253824] sda: sda2
    (parted) rm 2 
    [12070.579094] sda: 
    (parted) q
    
    # dd if=/dev/zero of=/dev/sda bs=64M count=2
  7. 2つのパーティションを/dev/sdaに作成します。
    1. ディスク/dev/sdaの終了セクタを残りのdom0から取得し、変数に保存します。
      # end_sector_logical=$(parted -s /dev/sda unit s print|perl -ne '/^Disk\s+\S+:\s+(\d+)s/ and print $1')
      # end_sector=$( expr $end_sector_logical - 34 )
      

      次のコマンドの開始および終了セクターの値は、残存している管理ドメインから取得されたものです。これらの値は時間とともに変化することがあるため、次のコマンドを使用して、これらの値を残りの管理ドメインから確認することをお薦めします。

      # parted -s /dev/sda unit S print
    2. ブート・パーティション/dev/sda1を作成します。
      # parted -s /dev/sda mklabel gpt mkpart primary 64s 1048639s set 1 boot on
    3. LVMを保持するパーティション/dev/sda2を作成します。
      # parted -s /dev/sda mkpart primary 1048640s 3509759966s set 2 lvm on
  8. /sbin/lvmコマンドを使用して論理ボリュームを再作成し、mkfsを使用してファイル・システムを作成します。
    1. 物理ボリュームおよびボリューム・グループを作成します。
      # lvm pvcreate /dev/sda2
      # lvm vgcreate VGExaDb /dev/sda2
      
    2. / (ルート)ディレクトリを含むファイル・システムの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSys3 -L30G VGExaDb
      # mkfs -t ext4 –b 4096 /dev/VGExaDb/LVDbSys3
      # e2label /dev/VGExaDb/LVDbSys3 DBSYSOVS
      
    3. スワップ・ディレクトリの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSwap1 -L24G VGExaDb
      # mkswap -L SWAP /dev/VGExaDb/LVDbSwap1
      
    4. バックアップ・パーティションの論理ボリュームを作成して、その上部にファイル・システムを構築します。
      # lvm lvcreate -n LVDbSys2 -L30G VGExaDb
      # mkfs -t ext4 –b 4096 /dev/VGExaDb/LVDbSys2
    5. 予約パーティション用の論理ボリュームを作成します。
      # lvm lvcreate -n LVDoNotRemoveOrUse –L1G VGExaDb

      ノート:

      この論理ボリュームにファイル・システムを作成しないでください。
    6. ゲスト記憶域リポジトリに論理ボリュームを作成します。
      # lvm lvcreate -l 100%FREE -n LVDbExaVMImages VGExaDb
      
    7. /dev/sda1パーティションにファイル・システムを作成し、ラベルを付けます。

      次のmkfs.ext3コマンドで、inodeサイズを128に設定するには-I 128オプションが必要です。

      # mkfs.ext3 -I 128 /dev/sda1
      # tune2fs -c 0 -i 0 /dev/sda1
      # e2label /dev/sda1 BOOT
      
  9. すべてのパーティションのマウント・ポイントを作成して、各パーティションをマウントします。

    たとえば、/mntが最上位ディレクトリとして使用されると、マウントされるパーティションのリストは次のようになります。

    • /dev/VGExaDb/LVDbSys3 on /mnt

    • /dev/sda1 on /mnt/boot

    次の例では、ルート・ファイル・システムをマウントし、2つのマウント・ポイントを作成します。

    # mount /dev/VGExaDb/LVDbSys3 /mnt -t ext4
    # mkdir /mnt/boot
    # mount /dev/sda1 /mnt/boot -t ext3
    
  10. eth0でネットワークを起動し、ホストのIPアドレスおよびネットマスクを割り当てます。
    # ifconfig eth0 ip_address_for_eth0 netmask netmask_for_eth0 up
    # route add -net 0.0.0.0 netmask 0.0.0.0 gw gateway_ip_address
    
  11. バックアップを保持するNFSサーバーをマウントします。
    # mkdir -p /root/mnt
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  12. スナップショット・ベースのバックアップを使用した管理ドメインdom0のバックアップで作成したバックアップから、ルート・ディレクトリ(/)とブート・ファイル・システムをリストアします。
    # tar -pjxvf /root/mnt/backup-of-root-and-boot.tar -C /mnt
  13. リストアした/dev/sda1パーティションをアンマウントし、/bootに再マウントします。
    # umount /mnt/boot
    # mkdir -p /boot
    # mount /dev/sda1 /boot -t ext3
    
  14. 次のコマンドを使用して、grubブート・ローダーを設定します。
    # grub --device-map=/boot/grub/device.map << DOM0_GRUB_INSTALL
    root (hd0,0)
    setup (hd0)
    quit
    DOM0_GRUB_INSTALL
    
  15. /bootパーティションをアンマウントします。
    # umount /boot
  16. diagnostics.isoファイルを切り離します。

    ILOM Webインタフェースを使用して「Storage Devices」ダイアログに移動し、「Disconnect」をクリックします。

    「Storage Devices」ダイアログは、以前にdiagnostics.isoイメージを接続するために使用したインタフェースです。Oracle Exadata System Softwareユーザーズ・ガイド診断ISOファイルを使用したサーバーの起動を参照してください。

  17. リストアした/etc/fstabファイルを確認し、/EXAVMIMAGESへの参照をコメント・アウトします。
    # cd /mnt/etc

    /EXAVMIMAGESを参照する行をすべてコメント・アウトします。

  18. システムを再起動します。
    # shutdown -r now

    これで、管理ドメイン(dom0)のリストア手順は完了です。

  19. 必要であれば、エイス・ラックに変換します。

    Exadata Database Machineエイス・ラックでリカバリを実行する場合は、「Oracle Exadata Database Machineエイス・ラックのOracle Linuxデータベース・サーバーのリカバリ後の構成」の手順を実行します。

  20. サーバーが再起動されたら、LVDbExaVMImages論理ボリュームにOCFS2ファイル・システムを構築します。
    # mkfs -t ocfs2 -L ocfs2 -T vmstore --fs-features=local /dev/VGExaDb/LVDbExaVMImages --force
  21. OCFS2パーティションを/EXAVMIMAGESにマウントします。
    # mount -t ocfs2 /dev/VGExaDb/LVDbExaVMImages /EXAVMIMAGES
  22. /etc/fstabで、前にコメント・アウトした/EXAVMIMAGESおよび/dev/mapper/VGExaDb-LVDbExaVMImagesへの参照を非コメント化します。
  23. 記憶域リポジトリ(/EXAVMIMAGES)バックアップを保持するバックアップNFSサーバーをマウントし、/EXAVMIMAGESファイル・システムをリストアします。
    # mkdir -p /root/mnt
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  24. /EXAVMIMAGESファイル・システムをリストアします。

    すべてのユーザー・ドメインをリストアするには、次のコマンドを使用します。

    # tar -Spxvf /root/mnt/backup-of-exavmimages.tar -C /EXAVMIMAGES

    単一のユーザー・ドメインをバックアップからリストアするには、かわりに次のコマンドを使用します。

    # tar -Spxvf /root/mnt/backup-of-exavmimages.tar -C /EXAVMIMAGES EXAVMIMAGES/<user-domain-name-to-be-restored>
  25. 各ユーザー・ドメインを起動します。
    # xm create /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg

この時点で、すべてのユーザー・ドメインがOracle Grid InfrastructureOracle Databaseインスタンスとともに稼働します。データベース・インスタンスは、その他の残存している管理ドメイン・ノードで形成されたOracle Real Application Clusters (Oracle RAC)クラスタに参加する必要があります。

5.20.2.3 管理ドメインとそのユーザー・ドメインのリカバリ(リリース18.1およびX7以降)

重大な障害が発生して管理ドメインが損傷した場合や、サーバー・ハードウェアを新しいハードウェアに交換した場合は、スナップショット・ベースのバックアップから管理ドメインをリカバリできます。

  1. NFSサーバーを準備して、バックアップ・アーカイブmybackup.tar.bz2をホストします。

    IPアドレスを使用して、NFSサーバーにアクセスできる必要があります。たとえば、IPアドレスnfs_ipを使用するNFSサーバーで/exportディレクトリがNFSマウントからエクスポートされる場合は、/exportディレクトリにmybackup.tar.bz2ファイルを置きます

  2. diagnostics.isoファイルを使用して、リカバリ・ターゲット・システムを再起動します。
    Oracle Exadata System Softwareユーザーズ・ガイド診断ISOファイルを使用したサーバーの起動を参照してください。
  3. 診断シェルにrootユーザーとしてログインします。
    プロンプトが表示されたら、診断シェルに入ります。

    次に例を示します。

    Choose from following by typing letter in '()':
    (e)nter interactive diagnostics shell. Must use credentials 
    from Oracle support to login (reboot or power cycle to exit
    the shell),
    (r)estore system from NFS backup archive, 
    Type e to enter the diagnostics shell and log in as the root user.
    プロンプトが表示されたら、rootユーザーとしてシステムにログインします。rootユーザーのパスワードの入力を求められ、それが不明である場合は、Oracleサポート・サービスに連絡してください。
  4. 必要に応じて、/opt/MegaRaid/storcli/storcli64 (またはOracle Exadata System Software 19cより前のリリースの場合は/opt/MegaRAID/MegaCli/MegaCli64)を使用して、ディスク・コントローラを構成してディスクを設定します。
  5. 障害の発生後に論理ボリューム、ボリューム・グループおよび物理ボリュームが存在する場合は、それらを削除します。
    # lvm vgremove VGExaDb --force
    # lvm pvremove /dev/sda3 --force
  6. 既存のパーティションを削除し、すべてのパーティションが削除されたことを確認します。
    # parted
    GNU Parted 2.1
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print 
    Model: AVAGO MR9361-16i (scsi)
    Disk /dev/sda: 4193GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system  Name     Flags
     1      32.8kB  537MB   537MB   ext4         primary  boot
     2      537MB   805MB   268MB   fat32        primary  boot
     3      805MB   4193GB  4192GB               primary  lvm
    
    (parted) rm 1
    [ 1730.498593]  sda: sda2 sda3 
    (parted) rm 2 
    [ 1736.203794]  sda: sda3
    
    (parted) rm 3 
    [ 1738.546845]  sda:
    (parted) print
     Model: AVAGO MR9361-16i (scsi)
    Disk /dev/sda: 4193GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start  End  Size  File system  Name  Flags
    
    (parted) q 
    Information: You may need to update /etc/fstab.
  7. 3つのパーティションを/dev/sdaに作成します。
    1. ディスク/dev/sdaの終了セクタを残りの管理ドメイン(dom0)から取得し、変数に保存します。
      # end_sector_logical=$(parted -s /dev/sda unit s print|perl -ne '/^Disk\s+\S+:\s+(\d+)s/ and print $1')
      # end_sector=$( expr $end_sector_logical - 34 )
      # echo $end_sector

      次のコマンドの開始および終了セクターの値は、残存している管理ドメインから取得されたものです。これらの値は時間とともに変化することがあるため、これらの値を残りのdom0から確認することをお薦めします。たとえば、8台のハード・ディスク・ドライブを持つExadata Database Machine X7-2データベース・サーバーの場合は、次のように表示されます。

      # parted -s /dev/sda unit s print
      Model: AVAGO MR9361-16i (scsi)
      Disk /dev/sda: 8189440000s
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      
      Number  Start     End          Size         File system  Name     Flags
       1      64s       1048639s     1048576s     ext4         primary  boot
       2      1048640s  1572927s     524288s      fat32        primary  boot
       3      1572928s  8189439966s  8187867039s               primary  lvm
      

      ノート:

      次のサブステップのs (セクター)値は、8個のハード・ディスク・ドライブを持つシステムに基づいています。4つのハード・ディスク・ドライブがある場合は、残りのノードの管理ドメインからパーティション表を表示し、それに応じてセクター値を調整する必要があります。
    2. ブート・パーティション/dev/sda1を作成します。
      # parted -s /dev/sda mklabel gpt mkpart primary 64s 1048639s set 1 boot on
    3. LVMを保持するパーティション/dev/sda2を作成します。
      # parted -s /dev/sda mkpart primary fat32 1048640s 1572927s set 2 boot on
    4. LVMを保持するパーティション/dev/sda3を作成します。
      # parted -s /dev/sda mkpart primary 1572928s 8189439966s set 3 lvm on
  8. /sbin/lvmコマンドを使用して論理ボリュームを再作成し、mkfsを使用してファイル・システムを作成します。
    1. 物理ボリュームおよびボリューム・グループを作成します。
      # lvm pvcreate /dev/sda3
      # lvm vgcreate VGExaDb /dev/sda3
      
    2. / (ルート)ディレクトリを含むファイル・システムの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSys3 -L30G VGExaDb
      # mkfs -t ext4 /dev/VGExaDb/LVDbSys3
      # e2label /dev/VGExaDb/LVDbSys3 DBSYSOVS
      
    3. スワップ・ディレクトリの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSwap1 -L24G VGExaDb
      # mkswap -L SWAP /dev/VGExaDb/LVDbSwap1
      
    4. バックアップ・パーティションの論理ボリュームを作成して、その上部にファイル・システムを構築します。
      # lvm lvcreate -n LVDbSys2 -L30G VGExaDb
      # mkfs -t ext4 /dev/VGExaDb/LVDbSys2
    5. スナップショットの作成に必要な予約パーティション用の論理ボリュームを作成します。
      # lvm lvcreate -n LVDoNotRemoveOrUse –L 1G VGExaDb

      ノート:

      この論理ボリュームにファイル・システムを作成しないでください。
    6. ゲスト記憶域リポジトリに論理ボリュームを作成します。
      # lvm lvcreate -l 100%FREE -n LVDbExaVMImages VGExaDb
      
    7. /dev/sda1パーティションにファイル・システムを作成し、ラベルを付けます。
      # mkfs.ext4 /dev/sda1
      # e2label /dev/sda1 BOOT
      # tune2fs -l /dev/sda1
    8. /dev/sda2パーティションにファイル・システムを作成し、ラベルを付けます。
      # mkfs.vfat -v -c -F 32 -s 2 /dev/sda2
      # dosfslabel /dev/sda2 ESP
  9. すべてのパーティションのマウント・ポイントを作成して、各パーティションをマウントします。

    たとえば、/mntが最上位ディレクトリとして使用されると、マウントされるパーティションのリストは次のようになります。

    • /dev/VGExaDb/LVDbSys3 on /mnt
    • /dev/sda1 on /mnt/boot
    • /dev/sda2 on /mnt/boot/efi

    次の例では、ルート(/)・ファイル・システムをマウントし、3つのマウント・ポイントを作成します。

    # mount /dev/VGExaDb/LVDbSys3 /mnt -t ext4
    # mkdir /mnt/boot
    # mount /dev/sda1 /mnt/boot -t ext4
    # mkdir /mnt/boot/efi
    # mount /dev/sda2 /mnt/boot/efi -t vfat
    
  10. eth0でネットワークを起動し、(DHCPを使用していない場合は)ホストのIPアドレスおよびネットマスクを割り当てます。

    DHCPを使用している場合、ホストのIPアドレスを手動で構成する必要はありません。

    # ip address add ip_address_for_eth0/netmask_for_eth0 dev eth0
    # ip link set up eth0
    # ip route add default via gateway_ip_address dev eth0
  11. バックアップを保持するNFSサーバーをマウントします。
    # mkdir -p /root/mnt
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  12. スナップショット・ベースのバックアップを使用した管理ドメインdom0のバックアップで作成したバックアップから、ルート・ディレクトリ(/)とブート・ファイル・システムをリストアします。
    # tar -pjxvf /root/mnt/backup-of-root-and-boot.tar -C /mnt
  13. efibootmgrコマンドを使用して、起動デバイスを設定します。
    1. Oracle Linuxの起動デバイスを無効にして削除します。エントリExadataLinux_1が表示された場合は、このエントリを削除して再作成します。

      次に例を示します。

      # efibootmgr
      BootCurrent: 000F
      Timeout: 1 seconds
      BootOrder: 000F,0000,0001,0002,0003,0004,0005,0007,0008,0009,000A,000D,000E
      Boot0000* ExadataLinux_1
      Boot0001* NET0:PXE IP4 Intel(R) I210 Gigabit  Network Connection
      Boot0002* NET1:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0003* NET2:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0004* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0005* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0007* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0008* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0009* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000A* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000D* Oracle Linux
      Boot000E* UEFI OS
      Boot000F* USB:SUN
      

      この例では、Oracle Linux (Boot00D)およびExadataLinux_1 (Boot000)を無効にして削除します。次のようなコマンドを使用して、起動デバイスを無効にして削除します。

      「Oracle Linux」の無効化:
      # efibootmgr -b 000D -A
      「Oracle Linux」の削除:
      # efibootmgr -b 000D -B
      古い「ExadataLinux_1」の無効化:
      # efibootmgr -b 0000 -A
      古い「ExadataLinux_1」の削除:
      # efibootmgr -b 0000 -B

    2. ExadataLinux_1の起動エントリを再作成してから、起動順序エントリを表示します。
      # efibootmgr -c -d /dev/sda -p 2 -l '\EFI\XEN\XEN.EFI' -L 
      'ExadataLinux_1'
      
      # efibootmgr
      BootCurrent: 000F
      Timeout: 1 seconds
      BootOrder: 0000,0001,0002,0003,0004,0005,0007,0008,0009,000A,000E,000F
      Boot0001* NET0:PXE IP4 Intel(R) I210 Gigabit  Network Connection
      Boot0002* NET1:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0003* NET2:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0004* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0005* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0007* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0008* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0009* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000A* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000E* UEFI OS
      Boot000F* USB:SUN
      Boot0000* ExadataLinux_1

      efibootmgrコマンドの出力で、ExadataLinux_1の起動順序番号をノートにとって、次のコマンドでその値を使用します。

      # efibootmgr -b (entry number) -A
      # efibootmgr -b (entry number) -a

      たとえば、ステップ13.aで示した前の出力では、ExadataLinux_1(Boot000)として表示されました。したがって、次のコマンドを使用します。

      # efibootmgr -b 0000 -A
      # efibootmgr -b 0000 -a
    3. 正しい起動順序を設定します。
      最初の起動デバイスとしてExadataLinux_1を設定します。残りのデバイスは、最後である必要があるUSB:SUNを除き、同じ起動順序のままである必要があります。
      # efibootmgr -o
      0000,0001,0002,0003,0004,0005,0007,0008,0009,000A,000E,000F
      

      起動順序は次のようになります。

      # efibootmgr
      BootCurrent: 000F
      Timeout: 1 seconds
      BootOrder: 0000,0001,0002,0003,0004,0005,0007,0008,0009,000A,000E,000F
      Boot0000* ExadataLinux_1
      Boot0001* NET0:PXE IP4 Intel(R) I210 Gigabit  Network Connection
      Boot0002* NET1:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0003* NET2:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0004* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0005* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0007* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0008* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0009* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000A* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000E* UEFI OS
      Boot000F* USB:SUN
    4. ubiosconfigコマンドを使用して、起動順序を確認します。
      # ubiosconfig export all -x /tmp/ubiosconfig.xml
      ExadataLinux_1のエントリがboot_orderの最初の子要素であることを確認します。
       <boot_order>
          <boot_device>
            <description>ExadataLinux_1</description>  
            <instance>1</instance>
          </boot_device>
          <boot_device>
            <description>NET0:PXE IP4 Intel(R) I210 Gigabit  Network
      Connection</description>
            <instance>1</instance>
          </boot_device>
      ...
  14. リストアした/etc/fstabファイルを確認し、/EXAVMIMAGESへの参照をコメント・アウトします。
    # cd /mnt/etc

    /EXAVMIMAGESを参照する行をすべてコメント・アウトします。

  15. diagnostics.isoファイルを切り離します。

    ILOM Webインタフェースを使用して「Storage Devices」ダイアログに移動し、「Disconnect」をクリックします。

    「Storage Devices」ダイアログは、以前にdiagnostics.isoイメージを接続するために使用したインタフェースです。Oracle Exadata System Softwareユーザーズ・ガイド診断ISOファイルを使用したサーバーの起動を参照してください。

  16. リストアされた/dev/sda1パーティションをアンマウントし、/dev/sda1/bootに再マウントできるようにします。
    # umount /mnt/boot/efi
    # umount /mnt/boot
    # umount /mnt
    # umount /root/mnt
  17. システムを再起動します。
    # shutdown -r now

    これで、管理ドメイン(dom0)のリストア手順は完了です。

  18. 必要であれば、エイス・ラックに変換します。

    Exadata Database Machineエイス・ラックでリカバリを実行する場合は、「Oracle Exadata Database Machineエイス・ラックのOracle Linuxデータベース・サーバーのリカバリ後の構成」の手順を実行します。

  19. サーバーが再起動されたら、LVDbExaVMImages論理ボリュームにOCFS2ファイル・システムを構築します。
    # mkfs -t ocfs2 -L ocfs2 -T vmstore --fs-features=local /dev/VGExaDb/LVDbExaVMImages --force
  20. OCFS2パーティションを/EXAVMIMAGESにマウントします。
    # mount -t ocfs2 /dev/VGExaDb/LVDbExaVMImages /EXAVMIMAGES
  21. /etc/fstabで、前にコメント・アウトした/EXAVMIMAGESおよび/dev/mapper/VGExaDb-LVDbExaVMImagesへの参照を非コメント化します。
  22. 記憶域リポジトリ(/EXAVMIMAGES)バックアップを保持するバックアップNFSサーバーをマウントし、/EXAVMIMAGESファイル・システムをリストアします。
    # mkdir -p /root/mnt
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  23. /EXAVMIMAGESファイル・システムをリストアします。

    すべてのユーザー・ドメインをリストアするには、次のコマンドを使用します。

    # tar -Spxvf /root/mnt/backup-of-exavmimages.tar -C /EXAVMIMAGES

    単一のユーザー・ドメインをバックアップからリストアするには、かわりに次のコマンドを使用します。

    # tar -Spxvf /root/mnt/backup-of-exavmimages.tar -C /EXAVMIMAGES EXAVMIMAGES/<user-domain-name-to-be-restored>
  24. 各ユーザー・ドメインを起動します。
    # xm create /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg

この時点で、すべてのユーザー・ドメインがOracle Grid InfrastructureOracle Databaseインスタンスとともに稼働します。データベース・インスタンスは、その他の残存している管理ドメイン・ノードで形成されたOracle RACクラスタに参加する必要があります。

5.20.3 シナリオ2: 管理ドメインの再イメージ化およびバックアップからのユーザー・ドメインのリストア

この手順では、管理ドメインを再イメージ化し、すべてのユーザー・ドメインを再構築します。

次の手順は、修復不可能な損傷が管理ドメインで発生したときに、管理ドメインのバックアップは存在しないが、すべてのユーザー・ドメインを収容しているストレージ・リポジトリ(/EXAVMIMAGESファイル・システム)のバックアップが利用可能な場合に使用できます。

  1. Oracle Exadata Database Serverの再イメージ化」の手順を使用して、ラック内のその他の管理ドメインで使用されているイメージで管理ドメインを再イメージ化します。
  2. 次のコマンドを実行します。
    # /opt/oracle.SupportTools/switch_to_ovm.sh
    
    # /opt/oracle.SupportTools/reclaimdisks.sh –free –reclaim
    
  3. Oracle Exadata Database Machineエイス・ラックでリカバリを実行する場合は、「Oracle Exadata Database Machineエイス・ラックのOracle Linuxデータベース・サーバーのリカバリ後の構成」の手順を実行します。
  4. OCFS2ファイル・システムを/dev/sda3パーティションに再構築します。
    # umount /EXAVMIMAGES
    
    # mkfs -t ocfs2 -L ocfs2 -T vmstore --fs-features=local /dev/sda3 --force
    
  5. OCFS2パーティション/dev/sda3/EXAVMIMAGESにマウントします。
    # mount -t ocfs2 /dev/sda3 /EXAVMIMAGES
    
  6. バックアップNFSサーバーをマウントして、ユーザー・ドメインのイメージを保持する/EXAVMIMAGESファイル・システムをリストアします。
    # mkdir -p /remote_FS
    
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /remote_FS
    
  7. /EXAVMIMAGESファイル・システムをリストアします。
    # tar -Spxvf /remote_FS/backup-of-exavmimages.tar -C /EXAVMIMAGES
    

    ノート:

    記憶域リポジトリのリストア処理では、ユーザー・ドメイン固有のファイル(/EXAVMINAGES/GuestImages/user_domain/下のファイル)が通常のファイルとしてリストアされ、これらのファイルがユーザー・ドメインの作成時に最初に記憶域リポジトリに作成されたOCFS2 reflinkとしてはリストアされません。そのため、/EXAVMINAGES内の領域使用量は、リストア処理後に、バックアップ時の元の領域使用量よりも増加することがあります。
  8. ネットワーク・ブリッジを手動で構成します。
    1. ovmutils RPMのバージョンを確認します。
      # rpm -qa|grep ovmutils
      
    2. ovmutils RPMのバージョンが12.1.2.2.0より前の場合は、次のステップを実行します。
      1. /opt/exadata_ovm/exadata.img.domu_makerをバックアップします。このバックアップ・コピーは後ほど必要になります。

        # cp /opt/exadata_ovm/exadata.img.domu_maker /opt/exadata_ovm/exad
        ata.img.domu_maker-orig
        
      2. viなどのテキスト・エディタで/opt/exadata_ovm/exadata.img.domu_makerファイルを開いて、g_do_not_set_bridge=yesを検索します。この文字列は、CASE文オプションnetwork-discovery)の数行下にあります。

        この文字列をg_do_not_set_bridge=noに変更します。

        /opt/exadata_ovm/exadata.img.domu_makerを保存して終了します。

      3. /EXAVMIMAGES/confディレクトリ内のすべてのXMLファイルに、手動で/opt/exadata_ovm/exadata.img.domu_makerを実行します。

        # cd /EXAVMIMAGES/conf
        # ls -1|while read file; do /opt/exadata_ovm/exadata.img.domu_maker 
        network-discovery $file /tmp/netdisc-$file; done
        
      4. バックアップ・コピーから/opt/exadata_ovm/exadata.img.domu_makerをリストアします。

        # cp /opt/exadata_ovm/exadata.img.domu_maker-orig /opt/exad
        ata_ovm/exadata.img.domu_maker
        
    3. ovmutils RPMのバージョンが12.1.2.2.0以降の場合は、次のコマンドを実行します。
      # /opt/exadata_ovm/exadata.img.domu_maker add-bonded-bridge-
      dom0 vmbondeth0 eth4 eth5
      
  9. /EXAVMIMAGES/GuestImagesディレクトリ内のユーザー・ドメイン・ディレクトリごとに、次のステップを実行します。
    1. ユーザー・ドメインのUUIDを取得します。
      # grep ^uuid /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg
      |awk -F"=" '{print $2}'|sed s/"'"//g|sed s/" "//g
      

      コマンドを実行すると、uuid値が返され、これは次のコマンドで使用されます。

    2. UUID用のサブディレクトリを作成します。
      # mkdir -p /OVS/Repositories/uuid 
    3. 新しいUUIDディレクトリ内にuser_domain_hostnamevm.cfgファイルに対するシンボリック・リンクを作成します。
      # ln -s /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg /OVS/Repositories/uuid/vm.cfg
    4. user_domain_hostnameの自動起動を構成します。
      # ln -s /OVS/Repositories/uuid/vm.cfg /etc/xen/auto/user_domain_hostname.cfg
    5. VirtualDisksサブディレクトリを作成します。
      # mkdir VirtualDisks
    6. VirtualDisksディレクトリに移動します。
      # cd VirtualDisks
    7. vm.cfgファイル内の4つのディスク・イメージ名を使用して、このディレクトリに4つのシンボリック・リンクを作成します(/EXAVMIMAGES/GuestImages/user_domain_hostnameディレクトリ内にある4つの*.imgファイルを指します)。

      たとえば、/OVS/Repositories/uuidディレクトリ内のサンプルvm.cfgファイルのサンプル・ディスク・エントリを次に示します。

      disk =  ['file:/OVS/Repositories/6e7c7109c1bc4ebba279f8
      4e595e0b27/VirtualDisks/dfd641a1c6a84bd69643da704ff98594.img,xv
      da,w','file:/OVS/Repositories/6e7c7109c1bc4ebba279f84e595e0b27/
      VirtualDisks/d349fd420a1e49459118e6a6fcdbc2a4.img,xvdb,w','file
      :/OVS/Repositories/6e7c7109c1bc4ebba279f84e595e0b27/VirtualDisk
      s/8ac470eeb8704aab9a8b3adedf1c3b04.img,xvdc,w','file:/OVS/Repos
      itories/6e7c7109c1bc4ebba279f84e595e0b27/VirtualDisks/333e7ed28
      50a441ca4d2461044dd0f7c.img,xvdd,w']
      

      /EXAVMIMAGES/GuestImages/user_domain_hostnameディレクトリ内にある4つの*.imgファイルをリスト表示できます。

      # ls /EXAVMIMAGES/GuestImages/user_domain_name/*.img
      /EXAVMIMAGES/GuestImages/user_domain_name/System.img
      /EXAVMIMAGES/GuestImages/user_domain_name/grid12.1.0.2.2.img
      /EXAVMIMAGES/GuestImages/user_domain_name/db12.1.0.2.2-3.img
      /EXAVMIMAGES/GuestImages/user_domain_name/pv1_vgexadb.img
      

      この例では、次のコマンドを使用して4つのシンボリック・リンクを作成できます(dbm01db08vm01は、ユーザー・ドメインのホスト名です)。

      # ln -s /EXAVMIMAGES/GuestImages/dbm01db08vm01/System.img
       $(grep ^disk /EXAVMIMAGES/GuestImages/dbm01db08vm01/vm.cfg|awk 
      -F":" '{print $2}'|awk -F"," '{print $1}'|awk -F"/" '{print $6}')
      
      # ln -s /EXAVMIMAGES/GuestImages/dbm01db08vm01/grid12.1.0.2.2.img
       $(grep ^disk /EXAVMIMAGES/GuestImages/dbm01db08vm01/vm.cfg|awk 
      -F":" '{print $3}'|awk -F"," '{print $1}'|awk -F"/" '{print $6}')
      
      # ln -s /EXAVMIMAGES/GuestImages/dbm01db08vm01/db12.1.0.2.2-3.img
       $(grep ^disk /EXAVMIMAGES/GuestImages/dbm01db08vm01/vm.cfg|awk 
      -F":" '{print $4}'|awk -F"," '{print $1}'|awk -F"/" '{print $6}')
      
      # ln -s /EXAVMIMAGES/GuestImages/dbm01db08vm01/pv1_vgexadb.img 
      $(grep ^disk /EXAVMIMAGES/GuestImages/dbm01db08vm01/vm.cfg|awk 
      -F":" '{print $5}'|awk -F"," '{print $1}'|awk -F"/" '{print $6}')
      
  10. 各ユーザー・ドメインを再起動します。
    # xm create /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg
    

この時点で、すべてのユーザー・ドメインがOracle Grid Infrastructureとデータベース・インスタンスとともに起動します。ノードは、その他の残存している管理ドメイン・ノードで形成されたOracle RACクラスタに参加する必要があります。

5.20.4 シナリオ3: スナップショット・バックアップからのユーザー・ドメインのリストアおよびリカバリ

失ったまたは損傷したユーザー・ドメイン内のファイルを、ユーザー・ドメイン内で作成したスナップショット・ベースのユーザー・ドメイン・バックアップを使用してリストアするには、次の手順を使用します。

この手順を使用するには、「方法3: ユーザー・ドメイン内からユーザー・ドメインをバックアップする」の手順を使用して、ユーザー・ドメインのバックアップを作成しておく必要があります。

  1. rootユーザーとしてユーザー・ドメインにログインします。
  2. バックアップNFSサーバーをマウントし、損傷または紛失が発生したファイルをリストアします。
    # mkdir -p /root/mnt
    
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  3. 損傷または紛失が発生したファイルをバックアップからステージング領域に抽出します。

    抽出されたファイルが保持されるように、ステージング領域を準備します。これには、バックアップLVM LVDbSys2を使用できます。

    # mkdir /backup-LVM
    
    # mount /dev/mapper/VGExaDb-LVDbSys2 /backup-LVM
    
    # mkdir /backup-LVM/tmp_restore
    
    # tar -pjxvf /root/mnt/tar_file_name -C /backup-LVM/tmp_restore absolute_path_of_file_to_be_restored
    
  4. 必要に応じて、損傷または紛失が発生したファイルを一時ステージング領域からリストアします。
  5. ユーザー・ドメインを再起動します。

5.21 Oracle VMで実行するOracle RACクラスタの削除

クラスタ内で実行中のデータベースおよびこのデータベースで使用中のOracle Exadata Storage Serverで保存するすべてのデータを含む、Oracle VMクラスタのすべてのOracle RACノードを削除します。

Oracle VMクラスタの一部のユーザー・ドメインを削除する場合、次の項を参照してください。

Oracle VMクラスタを削除するステップは、主に2つあります。

  • ユーザー・ドメイン・ファイルを管理ドメインから削除する。

  • 使用していないOracle Exadataグリッド・ディスクを削除する。

ノート:

Oracle Exadata Deployment Assistant xml構成ファイルを後で再び使用する場合、削除されたユーザー・ドメインの定義がOracle Exadata Deployment Assistantファイル内に残っているため、それらの構成ファイルは同期できません。

  1. 次のようなスクリプトを実行して、すべてのユーザー・ドメイン上のグリッド・ソフトウェア・オーナーを削除します。

    シェル・スクリプトの例では、2つのスクリプト、list_griddisk.shおよびdrop_griddisk.shが生成されます。これらは、後述する手順で実行します。指示があるまで、この生成されたスクリプトを実行しないでください。

    #!/bin/bash
     
    # Run this script as the Grid Infrastructure software owner.
    #
    # This script identifies griddisks used by this cluster and the cells to
    # which they belong, then creates two shell scripts - the list script to
    # show the current status, and the drop script to drop the griddisks.
    #
    # In order for the drop script to succeed, the griddisks must not be in use,
    # meaning databases and CRS are down, and the list script returns no output.
    #
    # The generated scripts are designed to run via dcli -x
     
    ORACLE_SID=$(awk -F: '/^+ASM/{print $1}' /etc/oratab)
    ORAENV_ASK=NO . oraenv >/dev/null
     
    listGriddiskScript=list_griddisk.sh
    dropGriddiskScript=drop_griddisk.sh
     
    rm -f $listGriddiskScript $dropGriddiskScript
     
    gridDiskList=$(asmcmd lsdsk --suppressheader | awk -F'/' '{print $NF}')
    if [[ ${PIPESTATUS[0]} != 0 ]]; then echo "asmcmd failed - exiting"; exit 1; fi
     
    cellList=$(echo "$gridDiskList" | awk -F_ '{print $NF}' | sort -u)
     
    for cell in $cellList; do
      myGriddisks=$(echo "$gridDiskList" | grep ${cell}$ | tr '\n' ',')
      echo "[[ \$(hostname -s) == ${cell} ]] && cellcli -e 'LIST GRIDDISK \
            ${myGriddisks%,} attributes name, asmDiskGroupName, asmModeStatus \
            where asmModeStatus != UNKNOWN'" >> $listGriddiskScript
      echo >> $listGriddiskScript
    done
     
    chmod +x $listGriddiskScript
     
    echo
    echo "Run the following command to list griddisks in use by this cluster:"
    echo
    echo "# dcli -l celladmin -c ${cellList//$'\n'/,} -x $listGriddiskScript"
    echo
     
    for cell in $cellList; do
      myGriddisks=$(echo "$gridDiskList" | grep ${cell}$ | tr '\n' ',')
      echo "[[ \$(hostname -s) == ${cell} ]] && cellcli -e 'DROP GRIDDISK \
            ${myGriddisks%,}'" >> $dropGriddiskScript
      echo >> $dropGriddiskScript
    done
     
    chmod +x $dropGriddiskScript
     
    echo
    echo "Stop CRS on all nodes in this cluster, then run the following"
    echo "command to drop all griddisks used by this cluster:"
    echo
    echo "# dcli -l celladmin -c ${cellList//$'\n'/,} -x $dropGriddiskScript"
    echo
     
    exit 
    
  2. 削除対象のすべてのユーザー・ドメイン内のデータベースおよびOracle Grid Infrastructureを停止します。
     # Grid_home/bin/crsctl stop crs -f
    
  3. 削除対象のいずれかのユーザー・ドメインから、前述の手順で生成されたlist_griddisk.shスクリプトを実行します。

    ノート:

    • dcliコマンドを使用してスクリプトを実行し、celladminユーザーとして構成内のすべてのOracle Exadata Storage Serverに接続します。

    • dcliコマンドを実行する前に、データベース・サーバーのグリッド・ソフトウェア所有者とセルのcelladminユーザーの間に、パスワードなしのSSH接続を設定します。そうしないでコマンドを実行すると、パスワードの入力が常に求められます。

    このコマンドの例を次に示します。

    $ dcli -l celladmin -c dm01celadm01,dm01celadm02,dm01celadm03  \
    -x list_griddisk.sh
    

    list_griddisk.shスクリプトは、グリッド・ディスクを出力しません。list_griddisk.shスクリプトがグリッド・ディスクを戻す場合、そのグリッド・ディスクは使用中であるとみなされます。

    list_griddisk.shスクリプトが空の出力を戻し、使用中のグリッド・ディスクがないことを確認してから、次の手順に進みます。Oracle Grid Infrastructureおよびデータベースが、削除するすべてのユーザー・ドメインで停止していることを確認してください。

  4. 削除対象のいずれかのユーザー・ドメインから、前述の手順で生成されたdrop_griddisk.shスクリプトを実行します。

    dcliコマンドを使用してスクリプトを実行し、celladminユーザーとして構成内のすべてのOracle Exadata Storage Serverに接続します。

    $ dcli -l celladmin -c dm01celadm01,dm01celadm02,dm01celadm03 \
    -x drop_griddisk.sh
    
  5. 削除対象の各ユーザー・ドメインの管理ドメインからexadata.img.domu_makerコマンドを実行します。

    このコマンドでユーザー・ドメインが削除されます。DomainNameがユーザー・ドメインの名前です。

    # /opt/exadata_ovm/exadata.img.domu_maker remove-domain DomainName
    

    次の例では、コマンドを実行して、2ノードOracle VM RACクラスタの2つのユーザー・ドメインを削除します。1つは、管理ドメインdm01db01上のユーザー・ドメインdm01db01vm04で、もう1つは、管理ドメインdm01db02上のユーザー・ドメインdm01db02vm04です。

    [root@dm01db01 ~] # /opt/exadata_ovm/exadata.img.domu_maker \
    remove-domain dm01db01vm04
    [INFO] Start with command line: /opt/exadata_ovm/exadata.img.domu_maker \
     remove-domain dm01db01vm04
    [INFO] Shutting down DomU dm01db01vm04
    [INFO] Autostart link for dm01db01vm04 deleted from /etc/xen/auto
    [INFO] Deleted OVM repository /OVS/Repositories/7bfd49d6bd5a4b2db2e46e8234788067 for DomU dm01db01vm04
    [INFO] Deleted guest vm /EXAVMIMAGES/GuestImages/dm01db01vm04 for \
    DomU dm01db01vm04
     
    [root@dm01db02 ~]# /opt/exadata_ovm/exadata.img.domu_maker \
    remove-domain dm01db02vm04
    [INFO] Start with command line: /opt/exadata_ovm/exadata.img.domu_maker \
    remove-domain dm01db02vm04
    [INFO] Shutting down DomU dm01db02vm04
    [INFO] Autostart link for dm01db02vm04 deleted from /etc/xen/auto
    [INFO] Deleted OVM repository /OVS/Repositories/1d29719ff26a4a17aca99b2f89fd8032 for DomU dm01db02vm04
    [INFO] Deleted guest vm /EXAVMIMAGES/GuestImages/dm01db02vm04  \
    for DomU dm01db02vm04
    

5.22 ユーザー・ドメインの削除

Oracle VMユーザー・ドメインは、OEDACLIまたはdomu_makerユーティリティを使用して削除できます。

5.22.1 OEDACLIを使用したOracle VMクラスタからのユーザー・ドメインの削除

ユーザー・ドメインは、OEDACLIを使用してOracle VMクラスタから削除できます。

次の手順で、クラスタからユーザー・ドメインが削除されます。ユーザー・ドメインがクラスタの一部ではない場合、クラスタに関連するコマンドをスキップできます。

  1. XML構成ファイル(たとえば、es.xml)をOEDACLIにロードします。
    ./oedacli -c full_path_to_XML_file
  2. 次のOEDACLIコマンドを使用して、クラスタ・ノードからデータベース・インスタンスを削除します。
    DELETE GUEST WHERE srcname=domain_FQDN stepname=ADD_INSTANCE
    SAVE ACTION
    MERGE ACTIONS
    DEPLOY ACTIONS
  3. 次のOEDACLIコマンドを使用して、クラスタからOracle Databaseホームを削除します。
    DELETE GUEST WHERE srcname=domain_FQDN stepname=EXTEND_DBHOME
    SAVE ACTION
    MERGE ACTIONS
    DEPLOY ACTIONS
  4. 次のOEDACLIコマンドを使用して、クラスタからユーザー・ドメインを削除します。
    DELETE GUEST WHERE srcname=domain_FQDN stepname=ADD_NODE
    SAVE ACTION
    MERGE ACTIONS
    DEPLOY ACTIONS
  5. 次のOEDACLIコマンドを使用して、ストレージ・サーバーへの接続を削除し、ユーザー・ドメインのユーザーを削除します。
    DELETE GUEST WHERE srcname=domain_FQDN stepname=CELL_CONNECTIVITY
    SAVE ACTION
    DELETE GUEST WHERE srcname=domain_FQDN stepname=CREATE_USERS
    SAVE ACTION
    MERGE ACTIONS
    DEPLOY ACTIONS
  6. 次のOEDACLIコマンドを使用して、ユーザー・ドメインを削除します。
    DELETE GUEST WHERE srcname=domain_FQDN stepname=CREATE_GUEST
    SAVE ACTION
    MERGE ACTIONS
    DEPLOY ACTIONS
  7. 更新された構成情報を保存します。
    更新された構成情報が保存されるディレクトリへのフルパスを指定します。
    SAVE FILES LOCATION=output_directory
  8. 管理ドメインユーザー・ドメインのリストを表示します。
    # xm list

    前のステップで削除したユーザー・ドメインはリストされなくなっています。

5.22.2 domu_makerを使用したOracle VMクラスタからのユーザー・ドメインの削除

domu_makerユーティリティを使用すると、Oracle VMクラスタから単一のOracle RACノードを削除できます。

Oracle Exadataグリッド・ディスクは、クラスタ内に残っているノードで使用中のため、削除しないでください。

ノート:

Oracle Exadata Deployment Assistant xml構成ファイルを後で再び使用する場合、削除されたユーザー・ドメインの定義がOracle Exadata Deployment Assistantファイル内に残っているため、それらの構成ファイルは同期できません。

  1. クラスタ・ノードを削除します。
  2. 次のコマンドを使用して、ユーザー・ドメインをシャットダウンし、削除します。DomainNameがドメインの名前です。
    # /opt/exadata_ovm/exadata.img.domu_maker remove-domain DomainName
    

    このコマンドは、ユーザー・ドメイン・ファイルを管理ドメインから削除します。

5.23 タグVLANインタフェースの実装

このトピックでは、Exadata上のOracle VM環境でのタグVLANインタフェースの実装について説明します。

Oracle Exadata Database Machine上のOracle VMゲストで稼働しているOracleデータベースは、Oracle Exadata Deployment Assistant (OEDA)構成ツールで定義されたクライアントEthernetネットワークを介してアクセスされます。管理ドメイン(dom0)およびユーザー・ドメイン(domU's)の両方で、クライアント・ネットワーク構成は、初回のデプロイメント中にOEDAインストール・ツールが最初のユーザー・ドメインを作成すると、自動的に実行されます。

次の図に、デフォルトの結合クライアント・ネットワーク構成を示します。

図5-1 Oracle Virtual EnvironmentのNICレイアウト

図5-1の説明が続きます
「図5-1 Oracle Virtual EnvironmentのNICレイアウト」の説明

ネットワークは、次のように構成されます:

  1. dom0では、OEDAで定義されて、domUクライアントへのアクセスが許可されているethスレーブ・インタフェース(たとえば、eth1とeth2またはeth4とeth5)が、検出、構成されて、起動しますが、IPは割り当てられません。

  2. dom0では、bondeth0マスター・インタフェースが構成され、起動しますが、IPは割り当てられません。

  3. dom0では、ブリッジ・インタフェースvmbondeth0が構成されますが、IPは割り当てられません。

  4. dom0では、特定のdomU's bondeth0インタフェースにマッピングされる仮想バックエンド・インタフェース(vif)がdomUごとに1つずつ構成され、起動しますが、IPは割り当てられません。これらのvifsは、ブリッジ・インタフェースvmbondeth0の上に構成されます。dom0 vifインタフェースと、これに対応するユーザー・ドメイン・インタフェース、bondeth0の間のマッピングは、/EXAVMIMAGES/GuestImages/user domain nameにあるvm.cfgと呼ばれるユーザー・ドメイン構成ファイルで定義されます。

デフォルトのインストールでは、単一のbondeth0と対応するvmbondeth0ブリッジ・インタフェースは、前述で説明するようにdom0内で構成されます。このbondeth0インタフェースは、デフォルトのAccess Virtual Local Area Network (Access VLAN)に基づいています。Access VLANに対して、bondeth0を構築するスレーブ・インタフェースで使用されるスイッチ上のポートが構成されます。

VLANタグ付けの使用

Exadataの仮想デプロイメントで、ユーザー・ドメインをまたいでネットワーク分離を有効にするなど、クライアント・ネットワーク上の他のVLANにアクセスする必要がある場合、802.1QベースのVLANタグ付けにより解決できます。次の図に、VLANタグ付けをしたクライアント・ネットワーク構成を示します。

図5-2 VLANタグ付けをしたOracle Virtual EnvironmentのNICレイアウト

図5-2の説明は図の下のリンクをクリックしてください。
「図5-2 VLANタグ付けをしたOracle Virtual EnvironmentのNICレイアウト」の説明

このようなクライアント・ネットワーク上の追加のタグ付けされたVLANインタフェースの構成方法および使用方法の手順は、My Oracle Supportノート2018550.1を参照してください。これらの手順の実行の前後に、Access VLANが継続して稼働および構成されている必要があります。Access VLANが無効にされることはありません。

5.24 Exadata Database MachineでのOracle VM Oracle RACクラスタ間のInfiniBandパーティションの実装

Exadata Database MachineOracle VMで実行しているOracle Real Application Clusters (Oracle RAC)クラスタの場合、カスタムのInfiniBandパーティション、専用のパーティション・キーおよびパーティション化表を使用することで、Oracle RACクラスタごとにInfiniBandネットワークのネットワーク・トラフィックを分離できます。

5.24.1 Oracle VMで実行するOracle RACクラスタ間のInfiniBandパーティションについて

InfiniBandパーティションは、相互の通信を許可されるInfiniBandノードまたはメンバーのグループを定義します。

セキュリティの見地から、結合システムの重要な要件の1つは、結合システム内の複数の環境間のネットワーク分離です。Oracle Exadata上でOracle VM Oracle Real Application Clusters (Oracle RAC)クラスタを使用した結合では、これは、1つのOracle RACクラスタのネットワーク・トラフィックが別のOracle RACクラスタにアクセスできないようするなどの、異なるOracle RACクラスタ同士の分離を意味します。Ethernetネットワークでは、このことは、My Oracle Supportドキュメント2018550.1で説明するように、VLANタグ付けを使用して実現します。InfiniBandネットワークでは、これは、カスタムInfiniBandパーティション、専用パーティション・キーおよびパーティション化表を使用して完成します。

InfiniBandパーティションでは、一意のパーティション・キーで識別されるパーティションが作成され、マスター・サブネット・マネージャで管理されます。メンバーは、これらのカスタム・パーティションに割り当てられます。パーティション内のメンバーは、メンバー自身同士でのみ通信できます(My Oracle Supportドキュメント2018550.1のAppendix 1で説明されているように、メンバーシップにより異なります)。1つのパーティションのメンバーは、別のパーティションのメンバーとは、メンバーシップにかかわらず、通信できません。これらのラインを継続して、特定の1つのクラスタのOracle VM Oracle RACノードが、クラスタウェア通信用の1つの専用パーティションと、ストレージ・セルとの通信用の1つのパーティションに割り当てられます。このようにして、1つのOracle RACクラスタのノードは、異なるパーティションに属する別のOracle RACクラスタのノードと通信できません。それぞれのOracle RACクラスタのノードには、それらに割り当てられた異なるパーティション・キーがあります。

デフォルトで、InfiniBandサブネット・マネージャは、パーティション・キー0x7FFF (制限されたメンバーシップ)または0xFFFF (完全なメンバーシップ)により識別される単一パーティションを提供します。カスタムのInfiniBandパーティションを使用していないExadata Database Machine上のOracle VMデプロイメントでは、すべてのユーザー・ドメイン間で、パーティション・キー0xFFFFが使用されます。

図5-3 クラスタ間でInfiniBandネットワーク分離がないOracle VM Oracle RACクラスタ

図5-3の説明が続きます
「図5-3 クラスタ間でInfiniBandネットワーク分離がないOracle VM Oracle RACクラスタ」の説明

Oracle VM Oracle RACクラスタ間の分離を実装するためにデフォルト以外のカスタム・パーティションを使用する場合は、次の図に示すように構成が変化します。新しいインタフェースclib0clib1 (クラスタpkey用)およびstib0stib1 (ストレージpkey用)が、それぞれのユーザー・ドメイン(domU's)に存在します。

管理ドメイン(dom0)では、InfiniBandインタフェースの変更はありません。

図5-4 InfiniBandパーティションを使用してクラスタ間でInfiniBandネットワーク分離があるOracle VM Oracle RACクラスタ

図5-4の説明が続きます
「図5-4 InfiniBandパーティションを使用してクラスタ間でInfiniBandネットワーク分離があるOracle VM Oracle RACクラスタ」の説明

5.24.2 OVM RACクラスタ間のInfiniBandパーティションを実装する際の要件

InfiniBandパーティションの構成前に、次のことを確認します。

  • ExadataシステムでOVMを構成しました。

  • すべてのユーザー・ドメインとストレージ・セルで、デフォルトのパーティション・キー0xFFFFを使用しています。

  • rootユーザー用に、いずれかの管理ドメイン(dom0ノード)からすべてのOVM RACクラスタ・ノード、ストレージ・セルおよびInfiniBandスイッチへの、パスワードなしのセキュア・シェル(SSH)・アクセスを設定しました。

  • InfiniBandスイッチがファームウェア・バージョン2.0.4以上で設置されています。

  • InfiniBandパーティションについて理解しています。

5.24.3 InfiniBandパーティションのネットワーク構成について

クラスタにInfiniBandパーティションが実装されたときに、クラスタpkeyインタフェースおよびストレージpkeyインタフェースで使用される各Oracle VM RACクラスタのIPアドレスとネットマスクのセットを計画して割り当てます。

Oracle VM RACクラスタ内では、クラスタpkeyのIPアドレスおよびネットマスクは、ストレージpkeyのIPアドレスおよびネットマスクとは別のサブネット上に存在する必要があります。

参考として、次の表に、ある特定のRACクラスタのものを示します。

表5-2 既存の構成

インタフェース名 IPアドレス ネットマスク

ib0

192.168.12.153

255.255.248.0

ib1

192.168.12.154

255.255.248.0

次の表は、そのOracle RACクラスタにInfiniBandパーティションを実装するときにpkeyインタフェースに必要な新しいIPアドレスとネットマスクを示しています。

表5-3 pkeyインタフェースによって要求される新しいIPアドレスとネットマスク

インタフェース名 IPアドレス ネットマスク

clib0

192.168.112.1

255.255.248.0

clib1

192.168.112.2

255.255.248.0

stib0

192.168.114.1

255.255.240.0

stib1

192.168.114.2

255.255.240.0

5.24.4 Oracle VM RACクラスタ間のInfiniBandパーティションの構成

ここでは、Oracle VMで実行するOracle RACクラスタ間のInfiniBandパーティションを構成するステップについて説明します。

この一連の手順では、Oracle RACクラスタで多少のダウンタイムが発生します。新しいインタフェースを使用するためにOracle RACクラスタを再起動すると、停止時間が発生します。

このタスクの開始前に、ファイルcreate_pkeys.tarをダウンロードして解凍しておきます。このファイルは、「ExadataでのOVM RACクラスタ間のInfiniBandパーティションの実装(My Oracle SupportのドキュメントID 2075398.1)」からダウンロードできます。このファイルは、管理ドメイン(dom0)ノードのいずれかにダウンロードする必要があります。これは、この手順のすべてのスクリプトを実行するために使用するノードです。この手順では、このノードをdriver_dom0と表記します。

tarファイルを解凍すると、3つのファイルが表示されます。

  • create_pkeys_on_switch.sh
  • run_create_pkeys.sh
  • create_pkey_files.sh
  1. pkeyインタフェースによって使用されるIPアドレスを割り当てます。

    クラスタにInfiniBandパーティションが実装されたときに、クラスタpkeyインタフェースおよびストレージpkeyインタフェースで使用される各Oracle VM RACクラスタのIPアドレスとネットマスクのセットを計画して割り当てます。

    具体例は、トピック「InfiniBandパーティションのネットワーク構成について」を参照してください。

  2. InfiniBandスイッチで、クラスタウェアで使用する専用パーティション(クラスタpkey)を作成します。また、Oracle RACクラスタ・ノードとストレージ・セルとの通信のために、すべてのOracle VM RACクラスタおよびストレージ・セルで使用する1つのパーティション(ストレージpkey)を作成します。

    サブネット・マネージャで簡単にパーティションを識別する手段として、各パーティションにpkeyを割り当てます。pkeyは15ビットの整数です。値0x0001と値0x7fffは、デフォルト・パーティションです。pkeyには、0x0002から0x7ffeまでの値を使用してください。

    1. rootユーザーに対して、driver_dom0管理ドメイン(dom0)ノードからInfiniBandファブリックのすべてのスイッチへのパスワードなしのssh等価を有効にします。

      次のようなコマンドを使用します。ib_switch_listはファブリックのすべてのInfiniBandスイッチのリストが含まれているファイルを表します(各スイッチ名は個別の行で示されています)。

      # dcli –g ib_switch_list -l root –k
    2. driver_dom0からスクリプトcreate_pkeys_on_switch.shを実行して、InfiniBandスイッチでパーティション・キーを作成および構成します。

      ノート:

      スクリプトcreate_pkeys_on_switch.shの実行ごとに、1つのパーティションが作成されます。作成するパーティションごとにスクリプトを1回実行する必要があります。たとえば、2つのOracle VM RACクラスタを含む環境に、1つのストレージ・パーティションと2つのクラスタ・パーティション(Oracle RACクラスタごとに1つ)の合計3つのパーティションを作成するとします。この例では、create_pkeys_on_switch.shを3回実行する必要があります。

      このスクリプトは、1つのノード(driver_dom0)のみで実行する必要があります。このスクリプトでは、スクリプトの実行時に入力として指定したすべてのスイッチにパーティションが作成されます。

    3. スクリプトの実行後、すべてのスイッチにパーティションが作成されたことを確認します。
      # /usr/local/sbin/smpartition list active no-page

      次の出力例には、デフォルトのパーティション(0x0001および0x7fff)と、追加のパーティション(0x0004)が示されています。pkeyが0x0004のパーティションは、IPoIB用に構成されていて、そのパーティションの完全なメンバーシップが割り当てられた2つのメンバー・ポートがあります。

      # Sun DCS IB partition config file
      #! version_number : 1
      #! version_number : 12
      Default=0x7fff, ipoib :
      ALL_CAS=full,
      ALL_SWITCHES=full,
      SELF=full;
      SUN_DCS=0x0001, ipoib :
      ALL_SWITCHES=full;
       = 0x0004,ipoib: 
      0x0021280001cf3787=full, 
      0x0021280001cf205b=full; 

      この段階で、すべての必要なパーティションを作成したことを確認します。

  3. Oracle VM RACノードとストレージ・セルでは、新しいIP over InfiniBand (IPoIB)インタフェース用のすべての関連ネットワーク構成ファイルを生成します。

    パーティションごとに、新しいIPoIBネットワーク・インタフェースが必要です。

    このステップでは、Oracle RACクラスタ・ノードに次の変更を加えます。

    • 次のファイルを変更します。

      • /etc/sysconfig/network-scripts/ifcfg-ib0
      • /etc/sysconfig/network-scripts/ifcfg-ib1
    • 次のファイルを削除します。

      • /etc/sysconfig/network-scripts/rule-ib0
      • /etc/sysconfig/network-scripts/rule-ib1
      • /etc/sysconfig/network-scripts/route-ib0
      • /etc/sysconfig/network-scripts/route-ib1
    • /etc/sysconfig/network-scriptsに次の新しいファイルを作成します。

      • ifcfg-clib0, ifcfg-clib1
      • rule-clib0, rule-clib1
      • route-clib0, route-clib1
      • ifcfg-stib0, ifcfg-stib1
      • rule-stib0, rule-stib1
      • route-stib0, route-stib1

    ノート:

    このステップが失敗した場合は、このステップを再実行する前に次の作業を行います。

    • すべてのファイルを/etc/sysconfig/network-scripts/backup-for-pkeysから/etc/sysconfig/network-scriptsにリストアします。
    • このステップでリストされる、新しく作成したファイルを削除します。
    1. driver_dom0ノードから、パーティション・キーについて構成する必要があるすべてのOracle RACクラスタ・ノードとストレージ・セルに向けたパスワードなしのsshが設定されていることを確認します。
    2. run_create_pkeys.shcreate_pkey_files.shが実行可能になっていて、driver_dom0の同じディレクトリ内にあることを確認します。
    3. run_create_pkeys.shを実行します。

      クラスタ・ノードについては、node_typeの値がcomputeのすべてのクラスタ・ノードに対して、スクリプトを合計4回実行する必要があります。

      このスクリプトの構文は次のとおりです。

      run_create_pkeys.sh node_name interface_name pkey_id 
      node_type pkey_ipaddr pkey_netmask pkey_interfaceType
      • node_nameでは、クラスタ・ノードを指定します。
      • interface_nameは、ib0またはib1のどちらかです。
      • pkey_idでは、0x接頭辞なしのpkeyを指定します。ここで使用している値は、ステップ2で入力したクラスタのpkey_id値から導出されるクラスタのパーティション・キーです。
      • node_typeは、computeまたはcellのどちらかです。
      • pkey_ipaddrでは、IPアドレスを指定します。
      • pkey_netmaskでは、CIDR形式(たとえば、/21)のネットマスクを指定します。
      • pkey_interfaceTypeは、計算ノード・タイプの場合はclusterまたはstorage、セル・ノード・タイプの場合はstorageです。

      ノート:

      クラスタpkeyインタフェースのpkey_ipaddrpkey_netmaskは、ストレージpkeyインタフェースのpkey_ipaddrpkey_netmaskとは別のサブネット上に存在している必要があります。

      次のコマンドを使用すると、ステップ2で入力したpkey_idの値から、run_create_pkeys.shスクリプトに使用するパーティション・キーの値を導出できます。

      FinalHexValue=$(echo "obase=16;ibase=2;$(expr 1000000000000000 
      + $(echo "obase=2;ibase=16;$(echo $HexValue|tr [:lower:] [:upper:])"|bc))"
      |bc|tr [:upper:] [:lower:])

      FinalHexValueは、ここのコマンドで入力する値です。HexValueは、ステップ2pkey_idに入力した値です。

      次の表は、クラスタ・ノードに対する4回の実行の入力例を示しています。

      表5-4 クラスタ・ノードに対する4回の実行

      実行 インタフェース名 pkey_id node_type pkey_ipaddress pkey_netmask pkey_interfaceType

      1

      ib0

      a000

      compute

      192.168.12.153

      /21

      cluster

      2

      ib1

      a000

      compute

      192.168.12.154

      /21

      cluster

      3

      ib0

      aa00

      compute

      192.168.114.15

      /20

      storage

      4

      ib1

      aa00

      compute

      192.168.114.16

      /20

      storage

      この例に示すように、スクリプトの実行のたびに「実行」列で示した値を使用します。この例のvm-guest-1は、クラスタ・ノードの名前です。

      # ./run_create_pkeys.sh vm-guest-1 ib0 a000 compute 192.168.12.153 /21 cluster
      

    この段階で、すべての必須のネットワーク・ファイル(このステップの最初に示したもの)は、Oracle VM RACクラスタ・ノードの新しいpkey対応ネットワーク・インタフェース向けに作成されています。

    また、再起動時に新しいネットワーク・インタフェースを使用するように、Oracle Grid Infrastructureも変更されています。コマンド$GRID_HOME/bin/oifcfg getifの出力では、クラスタ・インターコネクトに使用されるインタフェースのリストにclib0clib1が示されている必要があります。

  4. Oracle ASMおよびOracle RAC CLUSTER_INTERCONNECTSパラメータを変更します。
    1. Oracle RACクラスタ内のOracle ASMインスタンスごとに、SYSとしてSQL*Plusを使用してログインし、次のコマンドを実行します。
      ALTER SYSTEM SET cluster_interconnects='<cluster_pkey_IP_address_of_ib0>:
      <cluster_pkey_IP_address_of_ib1>' scope=spfile  sid='<name_of_current_ASM_instance>';

      次に例を示します。

      ALTER SYSTEM SET cluster_interconnects='192.168.12.153:192.168.12.154'
        scope=spfile  sid='+ASM1';
    2. Oracle RACクラスタ内のデータベース・インスタンスごとに、SQL*Plusを使用してログインし、Oracle RACインスタンスに対して同じコマンドを実行します。

      次に例を示します。

      ALTER SYSTEM SET cluster_interconnects='192.168.12.153:192.168.12.154'
        scope=spfile  sid='RACDB1';
    3. すべてのOracle RACクラスタ・ノードでCRS自動起動を停止して無効化します。
      # Grid_home/bin/crsctl stop crs
      
      # Grid_home/bin/crsctl disable crs

    この段階で、Oracle Grid Infrastructure、Oracle ASMインスタンスおよびOracle Databaseインスタンスが、新しく作成したネットワーク・インタフェースを使用するように変更されています。

  5. すべてのクラスタ・ノード(ユーザー・ドメイン)のcellip.oracellinit.oraを変更します。

    クラスタのいずれかのデータベース・サーバー・ノード(Oracle VM RACクラスタの場合はユーザー・ドメイン)で、次のステップを実行します。

    1. cellip.oraファイルとcellinit.oraファイルのバックアップを作成します。
      # cd /etc/oracle/cell/network-config
      # cp cellip.ora cellip.ora-bak
      # cp cellinit.ora cellinit.ora-bak
    2. cellip.ora-bakファイルに変更を加えることで、既存のIPアドレスをステップ7で設定するすべてのストレージ・セルの2つのストレージpkey IPアドレスに置き換えます。
      この2つのIPアドレスは、セミコロン(;)で区切ります。
    3. rootユーザーに対して、このクラスタ・ノードからすべてのクラスタ・ノードに向けたssh等価が設定されていることを確認します。
    4. すべてのクラスタ・ノードでcellip.oraファイルを置き換えます。

      次のコマンドを使用して、すべてのクラスタ・ノードでcellip.oraファイルのバックアップを作成してから置き換えます。この例のcluster_nodesは、Oracle VM RACクラスタのすべてのOracle RACクラスタ・ノードの名前が含まれているファイルを表します(各ノードは個別の行で示されています)。

      # /usr/local/bin/dcli -g cluster_nodes –l root 
      "/bin/cp /etc/oracle/cell/network-config/cellip.ora /e
      tc/oracle/cell/network-config/cellip-orig.ora"
      
      # /usr/local/bin/dcli -g cluster_nodes –l root –f celli
      p.ora-bak –d /etc/oracle/cell/network-config/cellip.ora
      
    5. /etc/oracle/cell/network-config/cellinit.ora-bakファイルを手動で編集して、既存のIPアドレスとネットマスクを、ステップ3で使用したクラスタ・ノードの2つのストレージpkey IPアドレスとネットマスクに置き換えます。
    6. rootユーザーに対して、このクラスタ・ノードからすべてのクラスタ・ノードに向けたssh等価が設定されていることを確認します。
    7. すべてのクラスタ・ノードでcellinit.oraファイルを置き換えます。

      このIPアドレスとネットマスクは、ステップ3の3回目と4回目の実行で使用されたものです。

      次のコマンドを使用して、すべてのクラスタ・ノードでcellinit.oraファイルのバックアップを作成してから置き換えます。この例のcluster_nodesは、Oracle VM RACクラスタのすべてのOracle RACクラスタ・ノードの名前が含まれているファイルを表します(各ノードは個別の行で示されています)。

      # /usr/local/bin/dcli -g cluster_nodes –l root 
      "/bin/cp /etc/oracle/cell/network-config/cellinit.ora /e
      tc/oracle/cell/network-config/cellinit-orig.ora"
      
      # /usr/local/bin/dcli -g cluster_nodes –l root –f cellini
      t.ora-bak –d /etc/oracle/cell/network-config/cellinit.ora
      
  6. 管理ドメイン(dom0)で、各ユーザー・ドメインのユーザー・ドメイン構成ファイルを、そのユーザー・ドメインに該当するパーティション・キーを使用するように変更します。

    管理ドメインのすべての関連vm.cfgファイルを変更します。このステップはOracle VM環境にのみ適用できます。すべての管理ドメインにログインして、ステップ2で作成したパーティション・キーが含まれるように、/EXAVMIMAGES/GuestImages/user_domain_name/vm.cfgを手動で編集します。

    たとえば、次の行を変更します。

    ib_pkeys = [{'pf':'40:00.0','port':'1','pkey':['0xffff'
    ,]},{'pf':'40:00.0','port':'2','pkey':['0xffff',]},]

    変更後:

    ib_pkeys = [{'pf':'40:00.0','port':'1','pkey':['0xa000'
    ,'0xaa00',]},{'pf':'40:00.0','port':'2','pkey':['0xa000
    ','0xaa00',]},]

    この例では、0xa000はステップ2で入力したクラスタのpkey_idから導出されるクラスタのパーティション・キーです。また、0xaa00はストレージのpkey_id値から導出されるストレージのパーティション・キーです。

    次のコマンドを使用して、ステップ2で入力したpkey_idの値からvm.cfgで使用するパーティション・キーの値を導出します。

    FinalHexValue=$(echo "obase=16;ibase=2;$(expr 100000000
    0000000 + $(echo "obase=2;ibase=16;$(echo $HexValue|tr 
    [:lower:] [:upper:])"|bc))"|bc|tr [:upper:] [:lower:])

    FinalHexValueは、vm.cfgに入力する値です。また、HexValueは、ステップ2pkey_idに対して入力した値です。

    ノート:

    環境に複数のOracle VM RACクラスタがある場合、次の2つのステップ(ステップ7とステップ8)は、すべてのOracle VM RACクラスタに対してステップ3からステップ6を実行した後で、1回のみ実行する必要があります。
  7. 新しく作成したIPoIBインタフェースを使用するようにストレージ・セルを変更します。
    1. run_create_pkeys.shcreate_pkey_files.shが使用可能になっていて、前のステップで使用したものと同じdriver_dom0ノードの同じディレクトリに存在することを確認します。
    2. driver_dom0から、パティション・キーの構成が必要になるすべてのストレージ・セルへのパスワードなしのsshが設定されていることを確認します。
    3. run_create_pkeys.shを実行します。

      ストレージ・サーバーの場合は、node_typeの値がcellのすべてのストレージ・サーバーにスクリプトを2回実行する必要があります。

      このスクリプトの構文は次のとおりです。

      run_create_pkeys.sh node_name interface_name pkey_id 
      node_type pkey_ipaddr pkey_netmask pkey_interfaceType
      • node_nameでは、ストレージ・サーバーを指定します。
      • interface_nameは、ib0またはib1のどちらかです。
      • pkey_idでは、0x接頭辞なしのpkeyを指定します。ここで使用している値は、ステップ2で入力したストレージのpkey_id値から導出されるクラスタのパーティション・キーです。
      • node_typeは、computeまたはcellのどちらかです。
      • pkey_ipaddrでは、IPアドレスを指定します。
      • pkey_netmaskでは、CIDR形式(たとえば、/21)のネットマスクを指定します。
      • pkey_interfaceTypeは、計算ノード・タイプの場合はclusterまたはstorage、セル・ノード・タイプの場合はstorageです。

      次のコマンドを使用すると、ステップ2で入力したpkey_idの値から、run_create_pkeys.shスクリプトに使用するパーティション・キーの値を導出できます。

      FinalHexValue=$(echo "obase=16;ibase=2;$(expr 1000000000000000 
      + $(echo "obase=2;ibase=16;$(echo $HexValue|tr [:lower:] [:upper:])"|bc))"
      |bc|tr [:upper:] [:lower:])

      FinalHexValueは、ここのコマンドで入力する値です。HexValueは、ステップ2pkey_idに入力した値です。

      次の表は、ストレージ・サーバーに対する2回の実行の入力例を示しています。

      表5-5 ストレージ・サーバーに対する2回の実行

      実行 インタフェース名 pkey_id node_type pkey_ipaddress pkey_netmask pkey_interfaceType

      1

      ib0

      aa00

      cell

      192.168.114.1

      /20

      storage

      2

      ib1

      aa00

      cell

      192.168.114.2

      /20

      storage

      この例に示すように、スクリプトの実行のたびに「実行」列で示した値を使用します。この例のcell01は、ストレージ・サーバーの名前です。

      # ./run_create_pkeys.sh cell01 ib0 aa00 cell 192.168.114.1 /20 storage
      

      ノート:

      スクリプトからの次のメッセージは無視できます。このタスクの最後にストレージを再起動すると、次の問題が処理されます。

      Network configuration altered. Please issue the following commands 
      as root to restart the network and open IB stack: 
        service openibd restart
        service network restart
      A restart of all services is required to put new network configuration into 
      effect. MS-CELLSRV communication may be hampered until restart.

    この段階で、ストレージ・サーバー(セル)は再起動時に新しいネットワーク・インタフェースを使用するように変更されています。

  8. 各ストレージ・サーバーの/opt/oracle.cellos/cell.confファイルを変更して、ストレージ・サーバーを再起動します。
    1. /opt/oracle.cellos/cell.confファイルのバックアップを作成します。
      # cd /opt/oracle.cellos
      # cp cell.conf cell.conf-prepkey
    2. /opt/oracle.cellos/cell.confのPkey構成の行を変更します。

      次の行を変更します。

      <Pkeyconfigured>no</Pkeyconfigured>

      変更後:

      <Pkeyconfigured>yes</Pkeyconfigured>

      2つのプライベート・インタフェース、ib0とib1について、次の行を変更します。

      <IP_enabled>yes</IP_enabled>

      変更後:

      <IP_enabled>no</IP_enabled>
    3. すべてのOracle VM RACノードでOracle Grid Infrastructureが停止していることを確認します。
    4. すべてのストレージ・セル・サーバーを再起動します。
      # shutdown -r now
    5. 新しいpkey対応ネットワーク・インタフェースが使用されていることを確認します。
      # cellcli -e list cell detail | egrep 'interconnect|ipaddress'

      出力には、新しいpkey対応インタフェース(stib0stib1)が新しいIPアドレスのセットとともに表示されます。

  9. Oracle RACクラスタを再起動します。
    1. 各ユーザー・ドメイン・ノードの対応する管理ドメインにログインします。
    2. 次のコマンドを実行します。
      # xm shutdown user_domain_name
      
      # xm create /EXAVMIMAGES/GuestImages/user_domain_name/vm.cfg
  10. すべてのクラスタ・ノードでOracle Grid Infrastructureスタックを起動して、完全に起動されていることを確認します。
    1. すべてのOracle RACクラスタ・ノードでOracle Grid Infrastructureスタックを起動して、自動起動を有効にします。
      # $GRID_HOME/bin/crsctl start crs
      
      # $GRID_HOME/bin/crsctl enable crs
    2. すべてのノードでOracle Grid Infrastructureを起動したら、新しく構成したpkeyインタフェースを使用するようにcluster_interconnectsパラメータが設定されていることを確認します。

      データベース・インスタンスにログインして、次の問合せを実行します。

      SQL> SELECT inst_id, value FROM gv$parameter 
      WHERE name = 'cluster_interconnects'
    3. Oracle Cluster Registry (OCR)から古いクラスタ・インターコネクト・インタフェースを削除します。
      # Grid_home/bin/oifcfg delif –global ib0/<old subnet>
      
      # Grid_home/bin/oifcfg delif –global ib1/<old subnet>

5.24.5 OVM RACクラスタ間のInfiniBandパーティションの実装: 制限されたメンバーシップの設定

2016年10月の12.1.0.2データベース・バンドル・パッチでセキュリティ拡張機能が導入され、2016年10月の12.1.0.2バンドル・パッチより前に使用されていた完全なメンバーシップのかわりに、制限されたメンバーシップを使用して、データベース・ノードのGUIDをストレージpkeyに割り当てることができます。これは、ストレージpkeyインタフェースを使用するとあるRACクラスタのあるRACノードが別のRACクラスタのRACノードと通信できるセキュリティ上の問題の対策になります。

完全なメンバーシップと制限されたメンバーシップ

InfiniBandパーティションは、相互の通信を許可されるInfiniBandノードのグループを定義します。InfiniBandパーティションで、マスター・サブネット・マネージャによって管理されるカスタムまたは一意のパーティション・キーを定義して、カスタムのパーティション・キーにメンバーを割り当てます。同じパーティション・キーを持つメンバーのみが相互に通信できます。1つのパーティション・キーのメンバーは、別のパーティション・キーを持つメンバーとは、メンバーシップのタイプにかかわらず、通信できません。1つのクラスタのOVM RACクラスタ・ノードには、クラスタウェア通信用の1つのパーティション・キーと、ストレージ・セルとの通信用の別のパーティション・キーが割り当てられます。このように、RACクラスタのノードは、異なるパーティション・キーが割り当てられた別のRACクラスタのノードとは通信できません。このことは、イーサネットの分野のタグ付けされたVLANと概念的に非常に似ています。

パーティション・キー(pkey)は15ビットの整数で、0x1から0x7FFFの値を持ちます。追加のビットであるメンバーシップ・ビットによって、パーティションのメンバーのメンバーシップが識別されます。メンバーシップは次のとおりです。

  • 完全: メンバーシップ・ビットは1に設定されます。完全なメンバーシップを持つメンバーは、相互に通信できることに加えて、同じパーティション・キー内の制限されたメンバーシップを持つメンバーと通信できます。

  • 制限: メンバーシップ・ビットは0に設定されます。パーティション内の制限されたメンバーシップを持つメンバーは、相互に通信できません。ただし、同じパーティション内の完全なメンバーシップを持つ他のメンバーと通信できます。

pkeyとメンバーシップ・ビットが組み合されて16ビットの整数を構成します。最も重要なビットはメンバーシップ・ビットです。

デフォルトで、InfiniBandサブネット・マネージャは、パーティション・キー0x7FFF (制限されたメンバーシップ)または0xFFFF (完全なメンバーシップ)により識別される単一パーティションを提供します。

HCAポートは、最大で128個のパーティションに参加できます。それぞれのパーティション・キーで新しいIPoIBネットワーク・インタフェースが提供されます。たとえば、パーティション・キー0xa001を持つInfiniBandポート1が新しいネットワーク・インタフェースになります。これらのインタフェースには、ifcfg-<interface>ファイル・パラメータによって意味のある名前が付けられます。

1つのInfiniBandノードを複数のパーティションのメンバーにできます。パケットがデータベース・ノードに到着すると、パケットのパーティション・キー(pkey)がサブネット・マネージャ構成と照合されます。この検証により、データベース・ノードが、それがメンバーになっているパーティションの外部の別のデータベース・ノードと通信できなくなります。

InfiniBandファブリック内のすべてのノードには、/sys/class/infiniband/mlx4_0/ports/[1-2]/pkeysで確認できるパーティション・キーの表があります。ノードのそれぞれのキュー・ペア(QP)には、その表の1つのエントリにマッピングされる索引(pkey)が関連付けられています。QPの送信キューからパケットが送信される場合は、索引付きのpkeyが添付されます。QPの受信キューでパケットを受信した場合は、索引付きのpkeyが受信パケットのものと比較されます。一致しない場合、パケットは警告なしで破棄されます。受信チャネル・アダプタはその到着を認識せず、同様に送信チャネル・アダプタも受信確認を取得しません。送信済パケットは単に失われたパケットとして示されます。受信パケットのpkeyがQPの受信キューの索引付きのpkeyと一致した場合にのみ、ハンドシェイクが行われてパケットが受け入れられ、送信チャネル・アダプタに確認が送信されます。このようにして、同じパーティションのメンバーのみが相互に通信でき、そのパーティションのメンバーではないホスト(つまり、パーティション表にそのpkeyを持たないホスト)とは通信できないようになっています。

次のステップで、2016年10月の12.1.0.2データベース・バンドル・パッチが適用されたpkey対応環境でこの拡張機能を設定する方法について説明します。次で説明するように、考えられるシナリオは2つあります。

ケース1.ローリング形式によるpkey対応環境での機能の実装

このケースでは、すでに2016年10月の12.1.0.2データベース・バンドル・パッチを適用しています。

次のステップを、1回に1つのノードに実行します。

  1. ノードでグリッド・インフラストラクチャを停止します。

    # $GI_HOME/bin/crsctl stop crs
  2. このユーザー・ドメインのOVM RACクラスタ・ノードを管理するdom0 (制御ドメイン)の2つのポートのGUIDを特定します。

    # /usr/sbin/ibstat | grep Port
  3. SMマスターがrootとして実行されているInfiniBandスイッチにログインします。

  4. InfiniBandスイッチで次のコマンドを実行します。

    # /usr/local/sbin/smpartition start
    
    # /usr/local/sbin/smpartition modify -n <storage pkey name> -port <Port GUID1 of the dom0 from step 2> -m limited
    
    # /usr/local/sbin/smpartition modify -n <storage pkey name> -port <Port GUID2 of the dom0 from step 2> -m limited
    
    # /usr/local/sbin/smpartition commit
  5. dom0のこのOVM RACユーザー・ドメイン・ノードのvm.cfgファイルを変更します。

    1. rootとしてdom0にログインします。

    2. /EXAVMIMAGES/GuestImages/<user domain name>/vm.cfgを編集して、次の例に示すようにパーティション・キーを変更します。

      次の行を変更します。

      ib_pkeys = [{'pf':'40:00.0','port':'1','pkey':[ '0xclpkey','0x<stpkey>',]},{'pf':'40:00.0','port':'2','pkey':[ '0xclpkey','0x<stpkey>',]},]

      次のように変更します。

      ib_pkeys = [{'pf':'40:00.0','port':'1','pkey':[ '0xclpkey','0x<mod_stpkey>',]},{'pf':'40:00.0','port':'2','pkey':[ '0xclpkey','0x<mod_stpkey>',]},]

      <mod_stpkey>は、次の式を使用して<stpkey>から導出されます。

      mod_stpkey=$(echo "obase=16;ibase=2;$(expr $(echo "obase=2;ibase=16;$(echo $stpkey|tr [:lower:] [:upper:])"|bc) - 1000000000000000)"|bc|tr [:upper:] [:lower:])

      前述の式の<stpkey><mod_stpkey>は、0xの接頭辞なしで指定されています。

  6. ユーザー・ドメインのRACノードの/etc/sysconfig/network-scripts/ifcfg-stib*ファイルを変更します。

    次の式を使用して、これらのファイルのPKEY_IDを編集します。

    mod_stpkey=$(echo "obase=16;ibase=2;$(expr $(echo "obase=2;ibase=16;$(echo $stpkey|tr [:lower:] [:upper:])"|bc) - 1000000000000000)"|bc|tr [:upper:] [:lower:])

    mod_stpkeyが新しいPKEY_IDで、stpkeyが古いPKEY_IDです。

    前述の式の<stpkey><mod_stpkey>は、0xの接頭辞なしで指定されています。

  7. ユーザー・ドメインのRACノードの/opt/oracle.cellos/pkey.confを変更します。

    ストレージ・ネットワークpkeyインタフェース(stib*)のPkeyを編集します。

    変更前:

    <Pkey>0xstpkey</Pkey>

    変更後:

    <Pkey>0xmod_stpkey</Pkey>

    mod_stpkeyは、次の式を使用してstpkeyから導出されます。

    mod_stpkey=$(echo "obase=16;ibase=2;$(expr $(echo "obase=2;ibase=16;$(echo $stpkey|tr [:lower:] [:upper:])"|bc) - 1000000000000000)"|bc|tr [:upper:] [:lower:])

    前述の式で使用されているstpkeymod_stpkeyは、0xの接頭辞なしで指定されています。

  8. OVM RACユーザー・ドメイン・ノードを再起動します。

    1. rootとしてdom0にログインします。

    2. 次のコマンドを実行します。

      # xm shutdown <user domain name>
      
      # xm create /EXAVMIMAGES/GuestImages/<user domain name>/vm.cfg
  9. クラスタ・ノードでGrid Infrastructureスタックが完全に稼働していることを確認します。

  10. 残りのクラスタ・ノードに対して、1回に1つのノードでこのステップを繰り返します。

ケース2.ローリング形式による2016年10月の12.1.0.2データベース・バンドル・パッチの適用中のpkey対応環境での機能の実装

次のステップを、1回に1つのノードに実行します。

  1. クラスタ・ノードで2016年10月の12.1.0.2データベース・バンドル・パッチを適用します。

  2. パッチが適用されたノードで前述のケース1のステップ1から10を繰り返します。

  3. 次のクラスタ・ノードに進み、前述のステップ1および2を繰り返します。

ノート:

dom0のGUIDが制限されたメンバーシップに変換された後、すべての新しいクラスタのデプロイメントには、2016年10月のデータベース・バンドル・パッチが前提条件として含められるようになります。

5.25 Oracle VM環境でのOracle EXAchkの実行

Exadata Database Machineでの仮想化は、Oracle EXAchkバージョン12.1.0.2.2以降でサポートされています。

Exadata Database Machine Oracle VM環境でOracle EXAchk監査チェックの完全なセットを実行するには、Oracle EXAchkをインストールして、次のように複数の場所から実行する必要があります。

  • 1つの管理ドメイン(dom0)から

  • Oracle VM Oracle Real Application Clusters (Oracle RAC)クラスタごとに1つのユーザー・ドメイン(domU)から

たとえば、4つのOracle VM Oracle RACクラスタを含む2つのデータベース・サーバー(両方のデータベース・サーバーで合計8つのdomU、クラスタごとに2つのノード)を搭載しているExadata Database Machineクオータ・ラックでは、次のようにOracle EXAchkを個別に5回実行する必要があります。

  1. 最初のクラスタの最初のユーザー・ドメイン(domU)でOracle EXAchkを実行します。

  2. 2番目のクラスタの最初のユーザー・ドメイン(domU)でOracle EXAchkを実行します。

  3. 3番目のクラスタの最初のユーザー・ドメイン(domU)でOracle EXAchkを実行します。

  4. 4番目のクラスタの最初のユーザー・ドメイン(domU)でOracle EXAchkを実行します。

  5. 最初の管理ドメイン(dom0)でOracle EXAchkを実行します。

Oracle EXAchkによって実行される監査チェックは、次の表に指定されています。

表5-6 Oracle EXAchkによって実行される監査チェック

Oracle EXAchkのインストールおよび実行先 実行される監査チェック

管理ドメイン(dom0)

ハードウェアおよびオペレーティング・システム・レベルのチェック対象:

  • データベース・サーバー(管理ドメイン)
  • ストレージ・サーバー
  • RDMAネットワーク・ファブリック
  • RDMAネットワーク・ファブリックのスイッチ

ユーザー・ドメイン(domU)

ユーザー・ドメインのオペレーティング・システム・レベル・チェックおよびOracle Grid InfrastructureおよびOracle Databaseのチェック

Oracle EXAchkコマンドラインのオプション

Oracle EXAchkには、専用のコマンドライン・オプションが不要です。Exadata Database Machine Oracle VM環境で実行されていることと、管理ドメインとユーザー・ドメインのどちらで実行されているのかを自動的に検出し、適用可能な監査チェックを実行します。たとえば、最も簡単なケースとして、コマンドライン・オプションなしでOracle EXAchkを実行できます。

./exachk

管理ドメインでOracle EXAchkを実行すると、RDMAネットワーク・ファブリックからアクセス可能なすべてのデータベース・サーバー、ストレージ・サーバーおよびRDMAネットワーク・ファブリック・スイッチで監査チェックが実行されます。

サーバーまたはスイッチのサブセットでOracle EXAchkを実行するには、次のコマンドライン・オプションを使用します。

表5-7 Oracle EXAchkのコマンドライン・オプション

オプション 説明

-clusternodes

データベース・サーバーのカンマ区切りリストを指定します。

-cells

ストレージ・サーバーのカンマ区切りリストを指定します。

-ibswitches

RDMAネットワーク・ファブリック・スイッチのカンマ区切りリストを指定します。

たとえば、Exadata Database Machineフル・ラックの最初のクオータ・ラックのみが仮想化用に構成されているとしても、RDMAネットワーク・ファブリック経由ですべてのコンポーネントにアクセス可能ならば、データベース・サーバーdm01adm01から次のようなコマンドを実行できます。

./exachk -clusternodes dm01adm01,dm01adm02
   -cells dm01celadm01,dm01celadm02,dm01celadm03
   -ibswitches dm01swibs0,dm01sw-iba0,dm01sw-ibb0