今回は、Docker Machine の Nutanix ドライバを使用して、AHV に Docker Host VM をデプロイします。
続きを読む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 の説明は、このあたりです。
- Container Services
http://nutanixbible.com/#anchor-container-services-83
ACS 関連のドキュメントやファイルは、Nutanix コミュニティ サイトからでもダウンロードできます。
Download Acropolis Container Services (Docker)
※NEXT アカウントでのログインが必要です。
Nutanix Cmdlets を PowerShell で読み込む。(Add-PSSnapin)
Nutanix Cmdlets は、デスクトップなどのショートカットアイコンから起動できます。
ショートカットは、Nutanix Cmdlets のインストール時に作成されるものです。
ある日気が付いたら、Windows 10 にインストールしていた Nutanix Cmdlets が、デスクトップのショートカットから起動できなくなりました。
ショートカットの Run.bat を実行すると・・・
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 に接続します。
ABS の VG によるディスクは、lsscsi で見ると「NUTANIX VDISK」と表示されます。
今回は /dev/sdc と認識されています。
パーティションを作成します。
パーティションに、ASM Disk ラベルを作成します。
Node#2 から。
Node#2 からも、iSCSI Target に接続します。
Node#2 からは、ASM Disk としてスキャンすると、さきほど作成した ASM Disk ラベルが認識できます。
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 というライブラリを使用しています。
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(外部)としています。
作成した ASM の DG は、OS コマンドではなく SQL 文や、asmcmd コマンドで確認することができます。
asmcmd で見た様子です。
SQL で見た様子です。今回作成した DG_DATA という DG はこのように見えます。
Oracle Database の表領域(Tablespace)は、ASM DG の上に作成される ASM File に紐づきます。
以下は RAC データベース作成後の様子ですが、FILE_NAME 列で表領域 のパスを見ると「⁺DG_DATA/~」となっており、ASM DG 上に Oracle DB のデータファイルがあることがわかります。DG はパスの先頭が「+」になります。
Oracle Database でのデータ管理では、テーブルなどのオブジェクトは表領域のうえに配置されるので、それより下のレイヤは、Nutanix ABS の VG だったとしても Oracle のデータ管理のしくみ自体は特に変わりません。
以上、Meetup#14 の話の一部でした。
Nutanix CE の Acropolis Block Services (ABS) の様子。
Acropolis Block Services (ABS) とは、Nutanix DSF(分散ストレージファブリック) の vDisk を、Volume Group (VG) として提供する機能です。
分散Volume の提供方法は 2パターンあります。
- Nutanix 上の VM に直接接続する。
- 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」アドレスに接続すします。
iSCSI 概要と、ABS の iSCSI
iSCSI でのストレージ接続は、ストレージ装置側が iSCSI Target で、接続する側は iSCSI Initiator で接続します。iSCSI Initiator は、IQN というアドレス(iqn.~)をもち、iSCSI Target 側では、接続を許可する Initiator の IQN を登録します。
一般的な iSCSI ストレージでは、Target ごとに複数の LUN(ディスク)を提供することができますが、ABS では LUN ごとに Target が作成されます。
たとえば、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 とは別に設定します。
Prism の「Storage」→「Table」→「Volume Group」画面で、ABS の VG を見ることができます。VG を選択すると、VG に含まれる vDisk も見ることができます。例では「vg-rac-data」という VG に 10GB の vDisk が含まれていることが分かります。
接続対象の指定は VG 単位で、iSCSI Target にするか、VM に直接接続(Attach to a VM)するか設定できます。例では IQN を 2つ登録することで、2台のサーバから VG に iSCSI 接続可能にしています。複数の IQN を登録する場合は、「Share across multiple iSCSI Initiator or multiple VMs」のチェックを ON にします。
CVM のコマンドラインから見た ABS
Nutanix の CVM にログインして、ncli コマンドから ABS を見てみます。
まず、ncli volume-group get コマンドで、VG「vg-rac-data」を見てみると、この VG には UUID=~9b66 の vDisk が含まれることが分かります。
上記の体裁を整えてみました。これは、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 ファイルの格納されているパスがわかります。
CVM の nfs_ls で、vDisk の格納されているパスを見てみると、実際に 10GB のファイルが存在しています。ABS で Volume として提供する vDisk は、Nutanix で VM に割り当てる vDisk と同じように Nutanix DSF に配置されている vDisk です。
Linux iSCSI Initiator から ABS に接続した様子
Oracle Linux の iSCSI Initiator から、ABS の VG に接続してみました。
今回の環境概要です。Linux からは、Data Service IP アドレスを指定して接続(iscsiadm コマンドでログイン)します。
iscsiadm コマンドで、Data Service IP を指定して接続しました。
接続後の Linux でパスベースの /dev/disk/by-path/~ デバイスを確認すると、ちゃんと Data Service IP をもとにしたデバイス名になっています。
iscsiadm コマンドでセッション情報を見てみると、Data Service IP アドレスではなく、実際は CVM の IP アドレスに接続していることがわかります。また、TCP 3260 番ポートではなく、3205番ポートで接続していました。
lsof コマンドを実行してみると、iscsid が 3205 番ポートで接続しています。
CVM 側で lsof コマンドを実行してみると、stargate という Nutanix 独自のコンポーネントが TCP/3205 をリスニングしていることがわかります。
今回は 3-Node の Nutanix Cluster です。黒枠ごとに別ノードなのですが、クライアントから Target ごと(= vDisk ごと)に分散して接続されていることがわかります。3 Node とも 3205 番ポートをリスニングしています。1つの Initiator (サーバ)から 1つの Target に対して複数パスのセッションをはるのではなく、Target ごとに接続先 CVM を別にする、という分散をしています。
Linux から ABS VG への接続(2パターンそれぞれ)
以前、VM への直接接続と、iSCSI Target 接続とを両方ためしてみた投稿です。
おまけ: CVM 障害時の様子
たまたま iSCSI で ABS に接続しているときに CVM が落ちたので、様子を見てみました。
- iSCSI Initiator は、しばらく External Data Service IP に接続したあと、別の CVM に接続している様子。
- Oracle RAC 共有ディスクで VG を使用していても、インスタンスは落ちなかった。ただし無負荷・・・
障害発生前は、CVM に接続さえていて・・・
障害発生すると、External Data Service IP Address(Data Service IP)にしばらく接続。一瞬というわけではなく、しばらくは(厳密ではないが1分くらいは経過していたような)そのまま。
しばらく待つと、別の CVM に接続される。
以上、Meetup#14 の話の一部でした。
Nutanix CE の ABS Volume を Oracle で相互利用してみる。Part.3
Nutanix CE の Acropolis Block Services(ABS)ボリュームのデータを、2台の Oracle Database サーバ間で移行をしてみようと思います。
前回はこちら。
今回は、Nutanix の VG クローンと、Oracle の Transportable Tablespace (TTS) を利用してデータ移行してみます。
続きを読むNutanix CE の ABS Volume を Oracle で相互利用してみる。Part.2
Nutanix CE の Acropolis Block Services(ABS)ボリュームのデータを、2台の Oracle Database サーバ間で移行をしてみようと思います。
今回は、データ移行元の DB サーバで、移行用データの用意をします。
続きを読むNutanix CE の ABS Volume を Oracle で相互利用してみる。Part.1
Nutanix CE の Acropolis Block Services(ABS)ボリュームが、Oracle Database での利用も想定しているようです。ためしに、2台の Oracle Database サーバで、ABS ボリュームを利用したデータ移行をしてみようと思います。
今回のサーバ構成
Oracle DB のサーバは 2台用意します。
移行元: Oracle DB Server ‐ A(以下 ora-sv-a)
- Nutanix AHV の VM
- Nutanix CE 用の物理サーバがないので ESXi での Nested Nutanix CE を利用。
移行先: Oracle DB Server - A(以下 ora-sv-b)
- Nutanix Cluster の外部にあるサーバ役。
- 今回は ESXi 上の VM として構築。
移行元 / 移行先の OS / Oracle のソフトウェア構成は合わせてあります。
- OS: Oracle Linux 7
- Oracle Database 12c R1
- Oracle Database は、シングル インスタンス(シングルノード)。
- Oracle Grid Infrastructure あり。Oracle ASM、Oracle Restart 構成。
データ移行のシナリオ
下記のような前提で、データ移行してみます。
- ora-sv-a にある Oracle DB 「oradba」のデータを、ora-sv-b の Oracle DB 「oradbb」に移行する。Oracle DB は移行先で作成ずみ。
- DB 全体ではなく一部の表領域のみ移行してみる。
- Oracle Database のストレージは、Oracle ASM を使用する。Oracle のデータファイルは、ASM Disk Group に格納している。
- 移行対象の表領域は、独立した Oracle ASM Disk Group に配置する。
Nutanix ABS の VG 構成
- 移行対象となる Oracle DB のデータ配置領域として Nutanix ABS の ボリューム グループ(VG)を用意する。
- ora-sv-a 用に VG を 1つ作成して、ボリュームは2つ含める。
- ボリューム 1つめは、ASM Diskとして使用する。
- ボリューム 2つめは、Oracle TTS のダンプファイルを配置しておく。
※このボリュームは必須ではない。 - ora-sv-b に接続する VG は、移行手順のなかで ora-sv-a の VG をクローンして作成する。
Nutanix ABS ボリューム のサーバとの接続
移行元、移行先の ABS ボリュームの接続方法は、あえて別の方法にします。
- 移行元の ora-sv-a では、Nutanix AHV の機能で、VM へ直接接続する。AHV(KVM)の VM から、 QEMU の iSCSI イニシエータで接続され、ゲスト OS の Linux からは 直接接続された SCSI ディスクのように見える。
- 移行先の ora-sv-b では、Linux OS がもつ iSCSI イニシエータで接続する。
今回は Oracle ASM を使用します。
移行先サーバにボリュームを接続しただけでは Oracle Database が表領域として認識しないので、Oracle TTS(Transportable Tablespace)という機能を使用します。
移行先サーバには、下記のように移行ます。
- ora-sv-a で使用していた Nutanix VG を Clone して ora-sv-b に接続する。
- ASM で管理されているデータを、Oracleトランスポータブル表領域(TTS)として移行先の Oracle Database にインポートする。
つづく。
Nutanix CE ABS の VG を Linux に 「Attach to a VM」 接続してみる。
Nutanix CE の Acropolis Block Services(ABS) の Volume Group(VG)を、Linux VM に「Attach to a VM」で接続してみました。この場合、ゲスト OS の iSCSI Initiator ではなく、Acropolis Hypervisor(AHV = KVM) の、QEMU がもつ iSCSI Initiator 機能で VM に直接 vDisk が接続されます。
VG は、以前の投稿で作成した「vg01」を流用します。
VG には、8GB、40GB の 2つの vDisk を含みます。
続きを読む