Nutanix Meetup #14 にて、
Nutanix Acropolis Block Services (ABS) と Oracle Database の話をしてみました。
ABS は Oracle RAC の共有ディスクとしての使用も想定されているとのことで、.NEXT Conference では Keynote のデモで ABS での RAC が登場していました。そこで、私もためしにやってみました。ただし手順が長大になるので、今回は話は Linux から ABS の VG に iSCSI 接続して Oracle ASM で使用可能にするあたりのみです。
Nutanix の ABS とは
まず、ABS の様子についてはこちらをどうぞ。
今回のサーバ構成
ESXi 上の Nested Nutanix CE 環境です。Nutanix CE は 3 Node のクラスタ、Oracle RAC は 2 Node クラスタにしました。Oracle Database サーバの OS は Oracle Linux にしています。
Oracle RAC のサーバから Nutanix ABS の VG への iSCSI 接続は、RAC のサーバから見てストレージ用のネットワーク セグメントを使用しました。現状の Nutanix CE の ABS だと、Data Service IP は CVM と 同ネットワークに配置することになるようです。iSCSI Initiator からの接続は、vDisk ごとに別 CVM に分散されていて、障害時は別の CVM にリダイレクトされるようになります。
簡単に、Oracle RAC に関連するファイルと格納場所(ローカルディスクか共有ストレージか)をまとめてみました。今回、共有ストレージに配置されるデータはすべて ABS にのせました。
ASM (Oracle Automatic Storage Management)
ASM は、Oracle Database 専用のストレージ管理機能で、ボリュームマネージャ + ファイルシステム の役割を持ちます。
ASM は、従来の raw デバイス / 共有ファイルシステムのかわりとして Oracle Database のデータを格納します。ブロックレベルアクセスの共有ディスクは ORACLE は ASM がおすすめの様子。
Nutanix 環境で ASM を使用する場合は、データの冗長化は Nutanix DSF (ASM から見ると Nutanix は 2つ以上のデータ ミラーリングをする共有ストレージ装置)で担保できます。そのため ASM Disk Group での冗長性の指定は、ASM では冗長化しない「External Redundancy」がよいようです。冗長化は Nutanix DSF にまかせます。
ABS と Oracle ASM
Oracle RAC 構築は、おおまかには下記のような流れになります。
- OS インストール&事前設定
- iSCSI 接続(共有ディスク)→ ABSのVGに接続。
- Grid Infrastructure インストール~Clusterware + ASMの構成
- ASM Disk Group 作成 → ABSのVGをOracleで利用する。
- Oracle Database インストール
- Oracle RAC データベース作成
手順的に、特に ABS が関係するのは、「iSCSI 接続」と「ASM Disk Group 作成」のところです。
ABS ⁺ Oracle RAC をやってみて気づいたこと
Linux OS で認識する、iSCSI のデバイス名について
Linux ゲストOS側の iSCSI Initiator で VG 接続すると、デバイス名がノードによって変わるので要注意です。ASM で使用するのであれば、たとえば ASM Disk ラベルをつけて、そのデバイス名を指定するとよいと思います。
VG / Volume (vDisk) の構成について
vDisk ごとにTarget作成されるので、vDisk ごとにことなる CVM 経由でのアクセスとなるように自動分散されていました。負荷分散のため VG にあえて複数 vDisk を作成する、という使い方ができそうです。
Nutanix 側で vDisk の Clone (Snapshot) ができるため、Oracle のバックアップ目的などで「begin backup → ストレージ装置側でスナップショット取得 → end backup」といった使い方もできそうです。クローンは VG 単位なので、この場合はデータ用の vDisk を独立した VG にしておくとよいと思います。
ネットワーク構成について
iSCSI でマルチパス構成とするときに 2つのネットワークセグメントを用意する(NIC を 2つ使用するが、それぞれ別経路とする)ことがありますが、ABS で設定できる Data Service IP は1つなので、CVM 側を複数セグメント構成にすることはできなそうです。そのため、接続する側の Linux と、接続される CVM(の 起動するハイパーバイザ) と、 ネットワーク接続の冗長化はどちらも NIC をチーミングしておく必要がありそうです。
Oracle の DB データを ABS 上で移動してみた話
Meetup#14 では内容を話しませんでしたが、ためしに ABS のボリュームクローンと Oracle TTS で簡易的なデータ移行らしきことをしてみました。
当日の様子
RAC Expert が語る・・・ただの iSCSI と ASM Disk Group 作成・・・
.@gowatana さんによるOracle on Acropolis Block Servicesの解説。 #Nutanix pic.twitter.com/7V25CqggFs
— Satoshi SHIMAZAKI (@smzksts) 2016年9月27日
以上。