Oracle VMでは、ストレージ・リポジトリの概念を使用して、Oracle VMリソースが存在する場所を定義します。 リソースには、ゲスト仮想マシン、仮想マシン・テンプレート(ゲスト・シード・イメージ)、ISOイメージ、共有仮想ディスクなどがあります。
ストレージ・リポジトリは、ゲストのライブ移行、高可用性(HA)およびローカル・ストレージに使用されます。
この章では、Oracle VM Serverのストレージ・リポジトリの管理について説明します。 内容は次のとおりです。
/OVSディレクトリは、デフォルトのパーティション・レイアウトを使用してOracle VM Serverをインストールする場合に作成されるデフォルトのストレージ・リポジトリの場所です。
Oracle VM Managerでサーバー・プールを作成すると、NFS、OCFS2、ext3などのソース・タイプを使用してストレージ・リポジトリが自動的にマウントされます。 また、ストレージ・リポジトリのディレクトリ構造も、ストレージ・リポジトリの/OVSディレクトリ下に自動的に作成されます。 表9-1「/OVSディレクトリの内容」に、これらのディレクトリを示します。
表9-1 /OVSディレクトリの内容
ディレクトリ名 | 説明 |
---|---|
Oracle VM Managerを使用してインポートされたISOファイルが含まれます。 |
|
パブリックとして配置されたゲスト仮想マシンが含まれます。 |
|
ゲスト仮想マシン・テンプレートが含まれます。 |
|
共有仮想ディスクが含まれます。 |
|
仮想マシンのイメージおよび構成ファイルが含まれます。 |
/OVSディレクトリはクラスタ・ルートであり、/var/ovs/mount/uuidディレクトリにマウントされているシンボリック・リンクです。 たとえば、マウント・コマンドは、次のような出力を表示します。
# mount example.com:/OVS on /var/ovs/mount/F4135C096045458195057412169071E5 type nfs (rw,addr=192.168.2.20)
また、lsコマンドは、次のような出力を表示します。
# ls -l /OVS lrwxrwxrwx 1 root root 47 Sep 18 16:15 /OVS -> /var/ovs/mount/F4135C096045458195057412169071E5
ストレージ・リポジトリは、Oracle VM Agentによって管理されます。 ストレージ・リポジトリを作成すると、Oracle VM AgentはOracle VM Agentデータベースに構成情報を保存します。 Oracle VMリソース用に複数のストレージ・リポジトリを保持できます。
Oracle VM Managerを使用してサーバー・プールを作成すると、クラスタ内の他のノード(Oracle VM Server)にストレージ・リポジトリが自動的に伝播されます。
ストレージ・リポジトリは、/opt/ovs-agent-2.3/utils/repos.pyスクリプト使用して管理できます。 repos.pyスクリプトは、サーバー・プール・マスターで実行する必要があります。
この項では、repos.pyスクリプトのオプションについて説明します。 このスクリプトには、次の操作のためのコマンドがあります。
repos.pyスクリプトには、スクリプト・パラメータに関するヘルプを表示する機能も含まれています。 repos.pyスクリプトのオプションの完全なリストを表示するには、次のように入力します。
/opt/ovs-agent-2.3/utils/repos.py [-h | --help]
repos.pyスクリプトを使用して、すべてのストレージ・リポジトリを表示できます。 ストレージ・リポジトリを表示する場合、このスクリプトは次のパラメータを取ります。
/opt/ovs-agent-2.3/utils/repos.py [-l | --list]
ストレージ・リポジトリを表示します。
リポジトリの表示に使用される出力形式は、次のとおりです。
[* | Del | New | R] uuid => source
ストレージ・リポジトリのステータス。 このステータスは空か、または次のいずれかになります。
*: ストレージ・リポジトリのクラスタ・ルート。 クラスタ・ルートは、/OVSディレクトリにリンクされ、Oracle VM Agentとストレージ・リポジトリの主要なメタデータをすべて格納します。
Del: ストレージ・リポジトリは削除されています。
New: ストレージ・リポジトリは作成されています。
R: ストレージ・リポジトリはクラスタ・ルートとして新たに割り当てられていますが、初期化はされていません。
ストレージ・リポジトリのUUID(ユニバーサル・ユニーク識別子)。
ストレージ・リポジトリに使用されるブロック・デバイスまたはファイル・システムへのパス。
たとえば、ストレージ・リポジトリを表示するには、次のように入力します。
# /opt/ovs-agent-2.3/utils/repos.py -l
この例では、出力に2つのストレージ・リポジトリが表示されます。2つ目の出力が、クラスタ・ルートとして設定されるデフォルトのストレージ・リポジトリです。
[ ] e9253250-7955-4773-9e26-5954a5e95e57 => /dev/mpath/mpath1 [ * ] f4135c09-6045-4581-9505-7412169071e5 => example.com:/OVS
repos.pyスクリプトを使用して、ファイル・システムまたは共有仮想ディスクをストレージ・リポジトリとして追加できます。 このスクリプトは、ファイル・システムまたは共有仮想ディスクをストレージ・リポジトリとして識別し、Oracle VM Agentデータベースのストレージ・リポジトリ構成を更新して、識別したストレージ・リポジトリを有効にします。 このコマンドを使用して、1つ以上のストレージ・リポジトリを作成できます。 ストレージ・リポジトリを追加する場合、このスクリプトは次のパラメータを取ります。
/opt/ovs-agent-2.3/utils/repos.py [-n | --new] storage
ストレージ・リポジトリを追加します。
追加されるファイル・システムへのブロック・デバイス・パス。
既存のサーバー・プールにさらにストレージ・リポジトリを追加する場合は、そのストレージ・リポジトリのディレクトリを作成し、クラスタ内のすべてのノードにそのストレージ・リポジトリをマウントするために、そのストレージ・リポジトリを初期化する必要があります。 ストレージ・リポジトリを初期化する方法については、第9.2.4項「ストレージ・リポジトリの初期化」を参照してください。
たとえば、ストレージ・リポジトリを作成するには、サーバー・プール・マスターで次のように入力します。
# /opt/ovs-agent-2.3/utils/repos.py -n example.com:/test
この例では、出力に、新規とマークされているストレージ・リポジトリが表示されます。
[ NEW ] af60bcea-c588-4b51-8bec-d89d1a490e2e => example.com:/test
repos.pyスクリプトを使用して、ストレージ・リポジトリを削除できます。 ストレージ・リポジトリがマウントされている場合は、削除される前に自動的にアンマウントされます。 クラスタ・ルートとして設定されているストレージ・リポジトリを削除すると、クラスタ構成が削除されます。 ストレージ・リポジトリを削除する場合、このスクリプトは次のパラメータを取ります。
/opt/ovs-agent-2.3/utils/repos.py [-d | --delete] uuid
ストレージ・リポジトリを削除します。
ストレージ・リポジトリのUUID(ユニバーサル・ユニーク識別子)。
たとえば、ストレージ・リポジトリを削除するには、サーバー・プール・マスターで次のように入力します。
# /opt/ovs-agent-2.3/utils/repos.py -d af60bcea-c588-4b51-8bec-d89d1a490e2e
この例では、出力に、削除済とマークされているストレージ・リポジトリが表示されます。
[ DEL ] af60bcea-c588-4b51-8bec-d89d1a490e2e => example.com:/test
1つのサーバー・プール内に複数のストレージ・リポジトリを作成できます。 既存のサーバー・プールにさらにストレージ・リポジトリを追加する場合は、まずそのストレージ・リポジトリを追加し、次にそのストレージ・リポジトリのディレクトリを作成してクラスタ内のすべてのノードにそのストレージ・リポジトリをマウントするために、そのストレージ・リポジトリを初期化する必要があります。 ストレージ・リポジトリを初期化する場合、このスクリプトは次のパラメータを取ります。
/opt/ovs-agent-2.3/utils/repos.py [-i | --init]
必要に応じてストレージ・リポジトリのディレクトリを作成してクラスタ内のすべてのノードにマウントすることによって、ストレージ・リポジトリを初期化します。
たとえば、ストレージ・リポジトリを初期化するには、サーバー・プール・マスターで次のように入力します。
# /opt/ovs-agent-2.3/utils/repos.py -i
サーバー・プール内のクラスタ・ルートとして1つのストレージ・リポジトリを選択できます。 また、サーバー・プール内のOracle VM Serverが1つのみの場合は、ローカル・ディスクをストレージ・リポジトリとして選択し、それをクラスタ・ルートとして設定することもできます。 ストレージ・リポジトリをクラスタ・ルートとして設定する場合、このスクリプトは次のパラメータを取ります。
/opt/ovs-agent-2.3/utils/repos.py [-r | --root] uuid
ストレージ・リポジトリをクラスタ・ルートとして設定します。
ストレージ・リポジトリのUUID(ユニバーサル・ユニーク識別子)。
クラスタ・ルートを設定した後、クラスタ内のすべてのノードにストレージ・リポジトリをマウントするために、そのストレージ・リポジトリを初期化する必要があります。 ストレージ・リポジトリを初期化する方法については、第9.2.4項「ストレージ・リポジトリの初期化」を参照してください。
たとえば、ストレージ・リポジトリをクラスタ・ルートとして設定するには、サーバー・プール・マスターで次のように入力します。
# /opt/ovs-agent-2.3/utils/repos.py -r e9253250-7955-4773-9e26-5954a5e95e57
この例では、出力に、クラスタ・ルートとマークされているストレージ・リポジトリが表示されます。
[ * ] e9253250-7955-4773-9e26-5954a5e95e57 => /dev/mpath/mpath1