NTNX>日記

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

Nutanix CE で Acropolis Container Services (ACS) 。Part.4

ACS の Nutanix Volume Plug-In による Docker Data Volume を、Docker Host 側から見てみようと思います。ACS では、Nutanix の Acropolis Block Services (ABS) という機能による iSCSI 接続の Volume を使用しています。

前回はこちら。

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

続きを読む

Nutanix CE で Acropolis Container Services (ACS) 。Part.3

今回は、Docker Data Volume の Nutanix Volume Plug-In をセットアップして、Docker コンテナを起動をしてみます。 

前回はこちら。

前回作成した Docker Host VM「docker-vm-01」が起動しています。

[gowatana@vm01 bin]$ docker-machine ls
NAME           ACTIVE   DRIVER    STATE     URL                     SWARM   DOCKER    ERRORS
docker-vm-01   -        nutanix   Running   tcp://10.1.1.204:2376           v1.12.2

 

続きを読む

Nutanix CE で Acropolis Container Services (ACS) 。Part.1

Acropolis Container Services (ACS) を、Nutanix CE で試してみました。
ACS は Nutanix 環境で Docker を使いやすくするための機能群です。今のところ、対応しているハイパーバイザは Acropolis Hypervisor (AHV) だけのようです。

Nutanix Web サイトでの ACS の説明は、下記にあります。

Nutanix Bible での ACS の説明は、このあたりです。

ACS 関連のドキュメントやファイルは、Nutanix コミュニティ サイトからでもダウンロードできます。

Download Acropolis Container Services (Docker)
※NEXT アカウントでのログインが必要です。

続きを読む

Nutanix Cmdlets を PowerShell で読み込む。(Add-PSSnapin)

Nutanix Cmdlets は、デスクトップなどのショートカットアイコンから起動できます。

f:id:gowatana:20161015032705p:plain

ショートカットは、Nutanix Cmdlets のインストール時に作成されるものです。

ある日気が付いたら、Windows 10 にインストールしていた Nutanix Cmdlets が、デスクトップのショートカットから起動できなくなりました。

ショートカットの Run.bat を実行すると・・・

f:id:gowatana:20161015032852p:plain

Run.bat から読み込む PowerShell の Snapin を読み込んでみました。

 

続きを読む

Oracle Database on Acropolis Block Services。(Meetup #14)

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 の 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 の話の一部でした。

Nutanix CE の Acropolis Block Services (ABS) の様子。

Acropolis Block Services (ABS) とは、Nutanix DSF(分散ストレージファブリック) の vDisk を、Volume Group (VG) として提供する機能です。

分散Volume の提供方法は 2パターンあります。

  1. Nutanix 上の VM に直接接続する。
  2. VG が iSCSI Target になる。

 今回は、主に iSCSI Target になる 方についての話です。

Nutanix Bible の ABS

ABS については、このあたりに記載されています。

http://nutanixbible.com/#anchor-block-services-76

日本語版の説明は、このあたりです。2016年09月ごろの時点では Volumes API という項目に記載されていますが、内容は ABS についてです。

http://nutanixbible.jp/#anchor-volumes-api-69

 

ABS の構成要素

ABS は下記の構成要素をもちます。 

Data Services IP

  • Nutanix クラスタ単位で設定できる VIP。
  • iSCSI Initiator からのログインで使用される。
  • AOS 4.7 ~

Volume Group (VG)

  • iSCSI target と Volume (DSF vDisk)のグループ。
  • 集中管理(Prism で ということ?)
  • クローン(スナップショット)は VG 単位で実行できる。

Disk(s)

  • Nutanix DSF 上の vDisk。
  • VG に含まれる vDisk ごとに、iSCSI Target が作成される。
  • iSCSI 接続すると、LUN に見える。

Attachment

  • VM または iSCSI Initiator IQN を指定して接続許可を設定できる。

 

絵で描くと、このような感じです。

iSCSI Target として接続する場合は、Nutanix 環境外のサーバ(iSCSI Initiator)からでも接続可能です。その際は、Nutanix クラスタ単位で設定する、「Data Services IP」アドレスに接続すします。

f:id:gowatana:20161004212606p:plain

iSCSI 概要と、ABS の iSCSI

iSCSI でのストレージ接続は、ストレージ装置側が iSCSI Target で、接続する側は iSCSI Initiator で接続します。iSCSI Initiator は、IQN というアドレス(iqn.~)をもち、iSCSI Target 側では、接続を許可する Initiator の IQN を登録します。

一般的な iSCSI ストレージでは、Target ごとに複数の LUN(ディスク)を提供することができますが、ABS では LUN ごとに Target が作成されます。

f:id:gowatana:20161004212933p:plain

たとえば、Oracle Linux 7 (Red Hat や CentOS も同じ)では、iSCSI Initiator の RPM(iscsi-initiator-utils)をインストールすると、IQN が自動生成されます。

[root@ora-rac-01 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.2
[root@ora-rac-01 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1988-12.com.oracle:c3faf81f5064

Nutanix Prism から見た ABS

ABS は Prism (Nutanix の Web UI)から利用できます。

iSCSI Target への接続で指定する Data Services IP は、Nutanix Cluster の VIP とは別に設定します。

f:id:gowatana:20161004214249p:plain

Prism の「Storage」→「Table」→「Volume Group」画面で、ABS の VG を見ることができます。VG を選択すると、VG に含まれる vDisk も見ることができます。例では「vg-rac-data」という VG に 10GB の vDisk が含まれていることが分かります。

f:id:gowatana:20161004214357p:plain

接続対象の指定は VG 単位で、iSCSI Target にするか、VM に直接接続(Attach to a VM)するか設定できます。例では IQN を 2つ登録することで、2台のサーバから VG に iSCSI 接続可能にしています。複数の IQN を登録する場合は、「Share across multiple iSCSI Initiator or multiple VMs」のチェックを ON にします。

f:id:gowatana:20161004214730p:plain

CVM のコマンドラインから見た ABS

Nutanix の CVM にログインして、ncli コマンドから ABS を見てみます。

まず、ncli volume-group get コマンドで、VG「vg-rac-data」を見てみると、この VG には UUID=~9b66 の vDisk が含まれることが分かります。

f:id:gowatana:20161004215415p:plain

上記の体裁を整えてみました。これは、Prism からみた VG と同じものです。10GB の vDisk をもち、IQN が 2つ登録されています。

iSCSI Target

  • vg-rac-data-b26cea52-9902-4e9c-9583-a3f4a1f53be3

Disks

  • VM Disk Size=10 GiB
  • VM Disk UUID=f938867c-98b1-46d7-8f71-75b6e8049b66

Shared

  • true

Attachment List

  • iSCSI Initiator=iqn.1988-12.com.oracle:c3faf81f5064
  • iSCSI Initiator=iqn.1988-12.com.oracle:2c55924aed52

virtual-disk list コマンドで vDisk の一覧を見ると、UUID=~9b66 をもつ vDisk ファイルの格納されているパスがわかります。

f:id:gowatana:20161004215848p:plain

CVM の nfs_ls で、vDisk の格納されているパスを見てみると、実際に 10GB のファイルが存在しています。ABS で Volume として提供する vDisk は、Nutanix で VM に割り当てる vDisk と同じように Nutanix DSF に配置されている vDisk です。

f:id:gowatana:20161004220033p:plain

Linux iSCSI Initiator から ABS に接続した様子

Oracle Linux の iSCSI Initiator から、ABS の VG に接続してみました。

今回の環境概要です。Linux からは、Data Service IP アドレスを指定して接続(iscsiadm コマンドでログイン)します。

f:id:gowatana:20161004220713p:plain

iscsiadm コマンドで、Data Service IP を指定して接続しました。

接続後の Linux でパスベースの /dev/disk/by-path/~ デバイスを確認すると、ちゃんと Data Service IP をもとにしたデバイス名になっています。

f:id:gowatana:20161004220831p:plain

iscsiadm コマンドでセッション情報を見てみると、Data Service IP アドレスではなく、実際は CVM の IP アドレスに接続していることがわかります。また、TCP 3260 番ポートではなく、3205番ポートで接続していました。

f:id:gowatana:20161004221123p:plain

 lsof コマンドを実行してみると、iscsid が 3205 番ポートで接続しています。

f:id:gowatana:20161004221428p:plain

CVM 側で lsof コマンドを実行してみると、stargate という Nutanix 独自のコンポーネントが TCP/3205 をリスニングしていることがわかります。

f:id:gowatana:20161004221615p:plain

今回は 3-Node の Nutanix Cluster です。黒枠ごとに別ノードなのですが、クライアントから Target ごと(= vDisk ごと)に分散して接続されていることがわかります。3 Node とも 3205 番ポートをリスニングしています。1つの Initiator (サーバ)から 1つの Target に対して複数パスのセッションをはるのではなく、Target ごとに接続先 CVM を別にする、という分散をしています。

f:id:gowatana:20161004221809p:plain

Linux から ABS VG への接続(2パターンそれぞれ)

以前、VM への直接接続と、iSCSI Target 接続とを両方ためしてみた投稿です。

おまけ: CVM 障害時の様子

たまたま iSCSI で ABS に接続しているときに CVM が落ちたので、様子を見てみました。

  • iSCSI Initiator は、しばらく External Data Service IP に接続したあと、別の CVM に接続している様子。
  • Oracle RAC 共有ディスクで VG を使用していても、インスタンスは落ちなかった。ただし無負荷・・・

障害発生前は、CVM に接続さえていて・・・

f:id:gowatana:20161004225519p:plain

障害発生すると、External Data Service IP Address(Data Service IP)にしばらく接続。一瞬というわけではなく、しばらくは(厳密ではないが1分くらいは経過していたような)そのまま。

f:id:gowatana:20161004225531p:plain

しばらく待つと、別の CVM に接続される。

f:id:gowatana:20161004225539p:plain

 

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

 

Nutanix CE の ABS Volume を Oracle で相互利用してみる。Part.3

Nutanix CE の Acropolis Block Services(ABS)ボリュームのデータを、2台の Oracle Database サーバ間で移行をしてみようと思います。

前回はこちら。

今回は、Nutanix の VG クローンと、Oracle の Transportable Tablespace (TTS) を利用してデータ移行してみます。

f:id:gowatana:20160904230248p:plain

続きを読む
©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。