NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix ABS の VG で Oracle ASM ディスクグループを作成してみる。

Nutanix ABS の VG を Linux に認識させて、Oracle ASM のディスクグループにしてみます。

ABS については、こちらもどうぞ。

今回は、すでに Oracle の Grid Infrastructure はインストール済みで、ASM インスタンスも構築済みの状態です。

Oracle RAC の共有ディスクとして使用するつもりで、Oracle Linux 7 サーバ 2台の Node#1 (ora-rac-01)と Node#2 (ora-rac-02)から接続します。

iSCSI 接続

Node #1 から。

RAC Node#1 にする Linux から、iSCSI Target に接続します。

f:id:gowatana:20161005082043p:plain

ABS の VG によるディスクは、lsscsi で見ると「NUTANIX VDISK」と表示されます。
今回は /dev/sdc と認識されています。

f:id:gowatana:20161005082051p:plain

パーティションを作成します。

f:id:gowatana:20161005082101p:plain

パーティションに、ASM Disk ラベルを作成します。

f:id:gowatana:20161005082118p:plain

Node#2 から。

Node#2 からも、iSCSI Target に接続します。

f:id:gowatana:20161005082511p:plain

Node#2 からは、ASM Disk としてスキャンすると、さきほど作成した ASM Disk ラベルが認識できます。

f:id:gowatana:20161005082522p:plain

Linux に複数のデバイスを接続するとき、とくに外部ストレージに接続する場合は「/dev/sd?」のような名前は永続的ではなく、OS 再起動時に変わったりします。たとえば、「複数の Linux でそれぞれ /dev/sde と見えているデバイスが、じつは別のディスクになっている」のようなことが発生します。

当然ながら、Nutanix ABS の iSCSI 接続でもデバイス名が入れ替わることがあります。Linux 側の仕組みの問題のため、ABS では VG と vDisk の構成を「VG あたり 1 vDisk」にしても、「VG あたり複数 vDisk」にしても、複数の iSCSI デバイスを接続すれば発生します。

ASM で使用するデバイスであれば、対策として ASM Disk ラベルを使用すれば、OS再起動時なども変更されない、永続的なデバイス名でディスクを指定することができます。これは、ASMLib というライブラリを使用しています。

f:id:gowatana:20161005082901p:plain

ASM Disk Group の作成

これは Node#1 からだけ作成します。ちなみに、ここまでで iSCSI 接続したデバイスとは、別のデバイスで ASM Disk Gropu 作成しています。

ASM Disk Group(DG) は、SQL 文で作成することもできますが、今回は asmca という Oracle Grid Infrastructure に含まれるユーティリティで作成しています。

  • GUI で起動することもできますが、サイレントモード(-silent)で使用しています。
  • DG 名として、DG_DATA としています。
  • DG に含めるディスクは、ASM Disk ラベルのデバイス名を指定しています。
    (ちなみに前出のスライドで指定したデバイスとは別のデバイスです。)
  • DG でのデータの冗長性指定は、Nutanix ABS 側でも冗長化されるので EXTERNAL(外部)としています。

f:id:gowatana:20161005082638p:plain

作成した ASM の DG は、OS コマンドではなく SQL 文や、asmcmd コマンドで確認することができます。

asmcmd で見た様子です。

f:id:gowatana:20161005082806p:plain

SQL で見た様子です。今回作成した DG_DATA という DG はこのように見えます。

f:id:gowatana:20161005082814p:plain

Oracle Database の表領域(Tablespace)は、ASM DG の上に作成される ASM File に紐づきます。
以下は RAC データベース作成後の様子ですが、FILE_NAME 列で表領域 のパスを見ると「⁺DG_DATA/~」となっており、ASM DG 上に Oracle DB のデータファイルがあることがわかります。DG はパスの先頭が「+」になります。

Oracle Database でのデータ管理では、テーブルなどのオブジェクトは表領域のうえに配置されるので、それより下のレイヤは、Nutanix ABS の VG だったとしても Oracle のデータ管理のしくみ自体は特に変わりません。

f:id:gowatana:20161005082823p:plain

以上、Meetup#14 の話の一部でした。