VMware Hands-on Labs - HOL-HBD-1686_JA


実習ラボの概要: HOL-HBD-1686 - VMware vCloud® Air™ Data Services with Continuent

実習ラボのガイダンス


HOL2015-1686: 「vCloud Air Data Services - Continuent」

説明:

ここでは、MySQL のクラスタリングと高可用性に関連する VMware Continuent の主な機能について説明します。具体的な内容は、同一サイト内でのクラスタリング、別のサイト上のバックアップ クラスタへほぼリアルタイムでレプリケーションやフェイルオーバーを実行する機能、マルチサイトのアクティブ / アクティブ クラスタ、およびビッグデータ (Hadoop) の統合です。

モジュール:

モジュール 1: 「概要」 [初心者レベル、30 分]

Continuent と DBaaS (サービスとしてのデータベース)、およびそれぞれの機能について概説します。

モジュール 2: 「主な機能」 [初心者レベル、30 分]

1 つのサイト内に MySQL クラスタリングを導入し、クライアント アプリケーションに影響を与えることなく、計画的ダウンタイムと計画外のダウンタイムを処理します。さらに、別のサイトのバックアップ MySQL クラスタにも同じ機能を拡張します。

モジュール 3: 「マルチサイトのアクティブ / アクティブ MySQL クラスタ」 [上級レベル、15 分]

複数のサイトにまたがるアクティブ / アクティブ MySQL クラスタを使用して、クライアント アプリケーションが複数のサイトで並行してデータベースを読み書きできるようにします。

モジュール 4: 「ビッグデータ (Hadoop) の統合」 [上級レベル、15 分]

MySQL から Hadoop へほぼリアルタイムでデータをレプリケートし、リアルタイム データを使用して Hadoop 分析を実行できるようにします。

 


 

アクティベーション プロンプトまたはウォーターマーク

 

実習ラボを初めて開始すると、Windows がアクティベートされていないことを示すウォーターマークがデスクトップに表示される場合があります。  

仮想化の大きなメリットの 1 つが、仮想マシンを移動して任意のプラットフォームで実行できる点です。 ハンズオン ラボも、このメリットにより複数のデータセンターから実行できます。 ただし、こうしたデータセンターは必ずしも同じタイプのプロセッサを使用しているとは限りません。そのため、インターネットを介して Microsoft のアクティベーション チェックが行われます。

ご安心ください。VMware とハンズオン ラボは、Microsoft のライセンス要件に完全に準拠しています。 ご利用の実習ラボは自己完結型ポッドであるため、Windows アクティベーションに必要なインターネットへのフル アクセス権限がありません。 インターネットへのフル アクセス権限がないと、この自動プロセスは失敗し、このウォーターマークが表示されます。

実習ラボには影響しません。 ご不明な点やご心配な点がありましたら、お気軽にサポートまでお問い合わせください。サポートは、VMworld のハンズオン ラボ コーナー、エキスパート主導のワークショップ、またはオンラインで受け付けています。ハンズオン ラボをより良くするために、ご意見をお聞かせください。

 

モジュール 1: Continuent の概要 (30 分)

実習ラボの概要


優れた俊敏性とカスタマー エクスペリエンスがビジネスに求められる現在、次世代 「SMAC (Social Mobile Analytics Cloud)」 アプリケーションの需要が高まっています。多くの IT アーキテクトは、クラウド ネイティブ アプリケーション、サービスとしてのデータベース (DBaaS)、サービスとしてのプラットフォーム (PaaS) といった新しい IT ソリューションを利用して、こうしたアプリケーションを実現しようとしています。

VMware では、次世代 SMAC アプリケーションの構築を支援するため、弊社のパブリック クラウド サービス 「vCloud Air」 にさまざまな 「アプリケーション サービス」 を導入しています。これらのアプリケーション サービスには、アプリケーションのデータ層の構築に役立つ一連の 「データ サービス」 も含まれています。

お客様がパブリック クラウドを基盤とする次世代の 「クラウド ネイティブ」 アプリケーションを構築するにあたり、データ層に重要な設計パターンがあることがわかりました。

このハンズオン ラボでは、これらの設計パターンに関連する主要な VMware ソリューションの 1 つ、VMware Continuent について説明します。VMware Continuent は、vCloud Air 環境とオンプレミス環境を対象とするデータベース クラスタリング / レプリケーション テクノロジーです。エンタープライズ クラスの高可用性、グローバルな冗長性を備えたディザスタ リカバリ、パフォーマンスの拡張、および異種データのリアルタイム統合を実現します。

主なメリットは次のとおりです。

詳しくは http://www.vmware.com/products/continuent/をご覧ください。

 


Continuent の概要


VMware Continuent を使用すると、ビジネス クリティカルなデータベース アプリケーションを実行している企業で、商用レベルの高可用性 (HA)、グローバルな冗長性を備えたディザスタ リカバリ (DR)、およびパフォーマンスの拡張を低コストで実現できます。クラウドまたはプライベート データセンターにデータベース クラスタを容易に作成できるので、システム障害が発生してもデータの可用性が損なわれません。

さらに、リレーショナル データベースのデータが高性能な NoSQL エンジンやデータ分析エンジンへ複製されるので、ビッグデータの分析結果に基づいて、より的確に経営判断を下すことができます。


 

主なユースケースとメリット

Continuent の主なメリットとユースケースは次のとおりです。企業が直面しているビジネス課題や技術的な課題の解決に役立ちます。

 

 

Continuent の概要ビデオ (2 分 7 秒)

 
 

Continuent ソリューションの概要を紹介する短いビデオです。このビデオには音声が含まれています。ヘッドフォンをお使いの場合は、プラグをヘッドフォン ジャックにしっかりと差し込んでください。音声が小さい場合や聞こえない場合は、プラグが正しく差し込まれていない可能性があります。

 

モジュール 2: Continuent - 主な機能 (30 分)

モジュール 2 に必要な環境の準備


必要に応じて、実習ラボのどのモジュールからでも実行できるようにするため、一連のスクリプトが用意されています。各モジュールのはじめにスクリプトを実行して、実習ラボのトポロジーを準備してください。いつでも次のモジュールに進み、該当するモジュールのセットアップ スクリプトを実行できます。

このモジュールでは、「module2」 という名前のスクリプトを実行します。次ページの手順に従ってください。


 

PuTTY の起動

 

  1. デスクトップにある PuTTY アイコンをダブルクリックして開きます。PuTTY は SSH クライアントです。
  2. 「db1.vsphere.corp.local」 というサーバ名をダブルクリックして、このサーバへの ssh セッションを開きます。

注: この実習ラボ環境のすべてのサーバと ControlCenter については、証明書認証が構成済みです。そのため、SSH セッションを開始する際、認証情報を入力しなくてもシステムにログインできます。

 

 

モジュール 2 のセットアップ スクリプトの実行

 

  1. コマンド プロンプトに 「module2」 と入力して、<Enter> キーを押します。
  2. スクリプトが完了するまでに 1 ~ 2 分かかります。スクリプトが完了してコマンド プロンプトに戻ったら、「source ~/.bash_profile」 と入力して <Enter> キーを押します。

最初の手順ではスクリプトの出力が表示されますが (Cleanup と Install)、2 つ目のコマンドでは出力は表示されません。

 

 

PuTTY の終了

 

これで、モジュール 2 の準備が完了しました。次のセクションに進んでモジュール 2 を開始する前に、PuTTY を閉じてください。

  1. PuTTY ウィンドウの右上にある赤い X をクリックします。
  2. [OK] をクリックします。

 

モジュールの概要


このモジュールでは、1 つのサイト内および地理的に離れた 2 つのサイトに MySQL のクラスタリングとフェイルオーバーを構築し、この環境で役立つ Continuent の機能について説明します。

  1. ここでは、Continuent の以下の機能を使用します。
    1. アプリケーションの稼動を妨げたり、クラスタに接続しているクライアント アプリケーションに影響を与えたりすることなく、MySQL クラスタのトポロジーを再構成する。
    2. MySQL インスタンスの障害を自動的に検出。さらに、クラスタに接続しているクライアント アプリケーションに影響を与えることなく、(必要に応じて) 新しい MySQL インスタンスをマスター ロールに昇格する。
    3. 以前に障害が発生した MySQL インスタンスをリカバリしてクラスタに戻す。
    4. クライアント アプリケーションに影響を与えることなく、地理的に別のサイトへマスターを移行する。
  2. ここでは、地理的に離れた 2 つのサイトに、MySQL インスタンスのクラスタを 2 つ構成します。Continuent の構成方法は 「マルチサイト シングルマスター」 トポロジーです。このトポロジーでは、1 つの 「マスター」 MySQL インスタンスが 2 つのサイトのすべての書き込み操作を処理します。このことは、クライアント アプリケーションからはわかりません。読み取り操作は、2 つのサイトのどの MySQL インスタンスからでも実行できます。

次のページの図は、このトポロジーを示しています。

Continuent でサポートされているさまざまな MySQL クラスタリング トポロジーについて詳しくは、https://www.vmware.com/files/pdf/products/continuent/VMware-Continuent-Benefits-And-Configurations-Whitepaper.pdfをご覧ください。

このモジュールの予定所要時間は 30 分です。


 

マルチサイト シングルマスター トポロジー

 

 

MySQL クラスタのトポロジー


まず、MySQL 環境に接続してトポロジーを確認してみましょう。


 

PuTTY の起動

 

db1.vsphere.corp.local への PuTTY セッションを開きます。

  1. デスクトップにある PuTTY アイコンをダブルクリックして開きます。PuTTY は SSH クライアントです。
  2. 「db1.vsphere.corp.local」 というサーバ名をダブルクリックして、このサーバへの ssh セッションを開きます。

注: この実習ラボ環境のすべてのサーバと ControlCenter については、証明書認証が構成済みです。そのため、SSH セッションを開始する際、認証情報を入力しなくてもシステムにログインできます。

 

 

MySQL クラスタのトポロジーを確認

 

  1. PuTTY のコマンド プロンプトに 「cctrl -multi」 と入力して、<Enter> キーを押します。
  2. 「[LOGICAL] / >」 というプロンプトが表示されたら、「ls」 (小文字の L) と入力して <Enter> キーを押します。

この環境の全体的なトポロジーに関する情報が表示されます。 「vsphere」 と 「vca」 という 2 つの地理的サイトが、「global」 という Continuent クラスタの一部になっています。

「cctrl」 は、インストールされているクラスタを管理するための Continuent のコマンドです。クラスタや構成に関する情報を取得したり、管理したりするときに役立ちます。「ls」 は、現在のスコープに関する情報を表示するコマンドです。

 

 

MySQL クラスタのトポロジーを確認: マスターとスレーブ

 

ここでは、「global」 という名前の全体的なトポロジーを確認します。global は、vsphere と vca という 2 つのサイトで構成されています。

  1. 「use global」 と入力して <Enter> キーを押します。
  2. 「ls」 と入力して <Enter> キーを押します。
  3. 「composite」 トポロジーが構成されており、vsphere というサイトでマスターが実行されていることがわかります。
  4. スレーブは vca というサイトで実行されています。

 

 

MySQL クラスタのトポロジーを確認: vsphere

 

ここでは、vsphere というサイトに接続して、このサイトのトポロジーに関する情報を確認します。長くなるためスクリーンショットには途中までしか表示されていませんが、vsphere サイトのその他のノード (db2.vsphere.corp.local と db3.vsphere.corp.local) に関する情報も表示されます。

  1. PuTTY のコマンド プロンプトに 「use vsphere」 と入力して、<Enter> キーを押します。
  2. 「ls」 と入力して <Enter> キーを押します。

vsphere というサイトのトポロジーが表示されます (スクリーンショットを参照)。次の情報に注目してください。

 

 

MySQL クラスタのトポロジーを確認: vca

 

  1. PuTTY のコマンド プロンプトに 「use vca」 と入力して、<Enter> キーを押します。
  2. 「ls」 と入力して <Enter> キーを押します。

このサイトには、「db1.vca.corp.local」 という独自のコーディネータがあります。この MySQL インスタンスのロールが 「relay」 になっていることに注目してください。

 

 

PuTTY の終了

 

  1. 次の手順に進む前に PuTTY を閉じましょう。PuTTY ウィンドウの右上にある X をクリックします。
  2. [OK] ボタンをクリックします。

 

正常なフェイルオーバー処理のテスト


ここでは、管理フェイルオーバー (正常) と自動フェイルオーバー (異常) の両方のフェイルオーバー処理について確認します。管理フェイルオーバーが発生するのは、マスター ノードで計画的なメンテナンスが行われる場合です。したがって、vsphere サイトを正常にシャットダウンして、vca サイトにインスタンスを移動します。自動フェイルオーバーが発生するのは、現在のマスター ノード (この例では vsphere) でなんらかの障害 (サーバのクラッシュなど) が発生した場合です。インスタンスは自動的に vca に移動されます。これは異常なシャットダウンと見なされるため、一貫性のある安全な方法でインスタンスが自動的に移動されます。


 

計画的な移行

ここでは、管理者としてマスターを別の MySQL インスタンスに移行して、クライアント アプリケーションが新しいマスターにシームレスに再接続することを確認します。

先に説明したとおり、これは、メンテナンス (パッチの適用、アップグレードなど) の実行時にマスターをシャットダウンする通常のプロセスです。

 

 

PuTTY の起動

 

ここで実行するのは計画的なメンテナンスであるため、どのノードがマスターかはわかっているはずです (db1.vsphere.corp.local です)。このノードをオフラインにするため、いずれかのスレーブ ノードから MySQL インスタンスに接続します。

  1. デスクトップにある PuTTY アイコンをダブルクリックして開きます。PuTTY は SSH クライアントです。
  2. 「db2.vsphere.corp.local」 というサーバ名をダブルクリックして、このサーバへの ssh セッションを開きます。

 

 

マスター ノードの選択

 

ローカル Continuent Connector サービスへの MySQL 接続を開きます。

  1. PuTTY のコマンド プロンプトに 「tpm connector」 と入力して、<Enter> キーを押します。
  2. コマンド プロンプトに 「select @@hostname;」 と入力して <Enter> キーを押します。
注: 「select @@hostname;」 コマンドを入力する際、末尾のセミコロン (;) を忘れないでください。

db1.vsphere.corp.local に接続していることがわかります (黄色のハイライト)。ローカル Connector サービスでは自動的にマスター インスタンスにルーティングされます。

 

 

マスター ノードの移行

 

マスターを db1.vsphere.corp.local から db3.vsphere.corp.local に移行します。そのためには次のコマンドを実行します。

  1. コマンド プロンプトに 「exit」 と入力し、<Enter> キーを押して、MySQL の CLI を終了します。
  2. コマンド プロンプトに 「cctrl -multi」 と入力して <Enter> キーを押します。
  3. コマンド プロンプトに 「use vsphere」 と入力して <Enter> キーを押します。
  4. コマンド プロンプトに 「switch to db3.vsphere.corp.local」 と入力して <Enter> キーを押します。
  5. 移行が成功したことを確認します。  

これで、MySQL インスタンスが db3.vsphere.corp.local で実行されるようになりました。前に説明したとおり、これは正常な計画的移行です。次に、同じ方法で、インスタンスをリモート サイトに移行してみましょう。

 

 

マスター ノードをリモート サイトへ移行

ここでは、MySQL インスタンスをローカル サイト (vsphere) からリモート サイト (vca) へ移行します。

 

 

vca への移行

 

  1. PuTTY のコマンド プロンプトに 「use global」 と入力して、<Enter> キーを押します。
  2. コマンド プロンプトに 「switch to vca」 と入力して <Enter> キーを押します。
  3. 移行が成功したことを確認します。

 

 

vca 上でマスターを確認

 

  1. コマンド プロンプトに 「exit」 と入力して <Enter> キーを押します。
  2. コマンド プロンプトに 「tpm connector」 と入力して <Enter> キーを押します。
  3. コマンド プロンプトに 「select @@hostname;」 と入力して <Enter> キーを押します (末尾のセミコロン (;) を忘れないでください)。
  4. マスター ノードに再接続されます。マスター ノードは、現在は vca というリモート サイトの db1.vca.corp.local で実行されています。

 

 

PuTTY の終了

 

これでこのセクションは終了です。PuTTY セッションを閉じて、次のレッスンへ進みましょう。

  1. PuTTY ウィンドウの右上にある赤い X をクリックします。
  2. [OK] をクリックします。

 

自動フェイルオーバーのテスト


ここでは、マスターが突然クラッシュした場合のシナリオについて説明します。この場合、Continuent が自動的に障害を検出して、マスターを Continuent クラスタ内の別のノードに移行します。


 

障害のシミュレーション

ノード障害のシナリオをテストするため、現在のマスター ノードで mysql サービスを停止します。サービスが停止すると、Continuent が新しいマスター ノードを選出して、そのノードに MySQL インスタンスを移行します。

ここまで手順どおりに操作している場合、現在のマスター ノードは db1.vca.corp.local のはずです。以降の手順をスムーズに実行できるように、最初にマスター ノードを確認します。

では、始めましょう。

 

 

PuTTY の起動

 

  1. デスクトップにある PuTTY アイコンをダブルクリックして開きます。PuTTY は SSH クライアントです。
  2. 「db1.vca.corp.local」 というサーバ名をダブルクリックして、このサーバへの ssh セッションを開きます。

 

 

マスター ノードの確認

 

2 つのコマンドを実行するだけで、マスター ノードの現在の場所を確認できます。

  1. コマンド プロンプトに 「tpm connector」 と入力して <Enter> キーを押します。
  2. コマンド プロンプトに 「select @@hostname;」 と入力して <Enter> キーを押します (末尾のセミコロン (;) を忘れないでください)。
  3. マスター ノードが db1.vca.corp.local で実行されていることがわかります。

別のノードがマスターになっていても問題はありません。そのノードへの PuTTY セッションを開いて、そのまま先に進むことができます (以降の手順では、該当するノードの名前を使用してください)。また、前の手順に戻り、マスターを db1.vca.corp.local に移動することもできます。

 

 

障害のシミュレーション

 

マスター ノードが db1.vca.corp.local にあることを確認できたので、mysql サービスを停止して障害をシミュレートします。

  1. コマンド プロンプトに 「exit」 と入力して <Enter> キーを押します。
  2. コマンド プロンプトに 「sudo /etc/init.d/mysql stop」 と入力して <Enter> キーを押します。

MySQL サービスをシャットダウンするというメッセージが表示され、2 ~ 3 分後に 「SUCCESS」 と表示されます。

 

 

新しいマスター ノードの確認

 

db1.vca.corp.local 上の mysql サービスが停止すると、Continuent が新しいマスターを選出して、その新しいマスターに MySQL インスタンスを移行します。インスタンスが現在どこで実行されているか見てみましょう。

  1. コマンド プロンプトに 「tpm connector」 と入力して <Enter> キーを押します。
  2. コマンド プロンプトに 「select @@hostname;」 と入力して <Enter> キーを押します (末尾のセミコロン (;) を忘れないでください)。
  3. マスター ノードが db2.vca.corp.local または db3.vca.corp.local で実行されていることがわかります。

 

 

PuTTY の終了

 

これで、モジュール 2 は終了です。PuTTY セッションを閉じて、次のレッスンへ進みましょう。

  1. PuTTY ウィンドウの右上にある赤い X をクリックします。
  2. [OK] をクリックします。

このレッスンにご参加いただき、ありがとうございました。他のモジュールにもぜひご参加ください。

 

次のステップ


Composite クラスタのトポロジーについて詳しくは、http://docs.continuent.com/continuent-tungsten-4.0/deployment-composite.htmlをご覧ください。

クラスタ メンバーのさまざまな役割と責任については、http://docs.continuent.com/continuent-tungsten-4.0/introduction.htmlをご覧ください。


モジュール 3: Continuent - マルチサイトのアクティブ / アクティブ MySQL クラスタ (15 分)

モジュール 3 に必要な環境の準備


必要に応じて、実習ラボのどのモジュールからでも実行できるようにするため、一連のスクリプトが用意されています。各モジュールのはじめにスクリプトを実行して、実習ラボのトポロジーを準備してください。いつでも次のモジュールに進み、該当するモジュールのセットアップ スクリプトを実行できます。

このモジュールでは、「module3」 という名前のスクリプトを実行します。次ページの手順に従ってください。


 

PuTTY の起動

 

  1. デスクトップにある PuTTY アイコンをダブルクリックして開きます。PuTTY は SSH クライアントです。
  2. 「db1.vsphere.corp.local」 というサーバ名をダブルクリックして、このサーバへの ssh セッションを開きます。

注: この実習ラボ環境のすべてのサーバと ControlCenter については、証明書認証が構成済みです。そのため、SSH セッションを開始する際、認証情報を入力しなくてもシステムにログインできます。

 

 

モジュール 3 のセットアップ スクリプトの実行

 

  1. コマンド プロンプトに 「module3」 と入力して <Enter> キーを押します。
  2. スクリプトが完了するまでに 1 ~ 2 分かかります。スクリプトが完了してコマンド プロンプトに戻ったら、「source ~/.bash_profile」 と入力して <Enter> キーを押します。

最初の手順ではスクリプトの出力が表示されますが (Cleanup と Install)、2 つ目のコマンドでは出力は表示されません。エラーが発生することはまずありませんが、発生した場合はその旨を伝えてください。

これで、モジュール 3 の準備が完了しました。

 

モジュールの概要


Continuent ではマルチサイトの 「アクティブ / アクティブ」 MySQL クラスタを構成できます。クライアント アプリケーションは、別々の場所にある 2 つのサイトで同時に書き込み操作を実行できます。

2 つのデータセンターで同時に書き込みを実行するには、クライアント アプリケーションが適切に設計されている必要があります。Continuent で推奨されるベスト プラクティスについては、http://docs.continuent.com/continuent-tungsten-4.0/deployment-msmm.html#deployment-msmm-prepare をご覧ください。

このトポロジーを 「マルチサイト マルチマスター」 トポロジーと呼びます。次のページの図は、この実習ラボで構成するトポロジーを示しています。

Continuent でサポートされているさまざまな MySQL クラスタリング トポロジーについて詳しくは、https://www.vmware.com/files/pdf/products/continuent/VMware-Continuent-Benefits-And-Configurations-Whitepaper.pdfをご覧ください。

このモジュールでは、Continuent の以下の機能を使用します。


 

マルチサイト マルチマスター トポロジー

 

 

MySQL クラスタのトポロジー


まず、MySQL 環境に接続してトポロジーを確認してみましょう。


 

PuTTY の起動

 

前の手順ですでに db1.vsphere.corp.local への PuTTY セッションを開いてあるため、この手順は省略してかまいません。db1.vsphere.corp.local への PuTTY セッションを開いていない場合はこの手順を実行してください。

  1. デスクトップにある PuTTY アイコンをダブルクリックして開きます。PuTTY は SSH クライアントです。
  2. 「db1.vsphere.corp.local」 というサーバ名をダブルクリックして、このサーバへの ssh セッションを開きます。

注: この実習ラボ環境のすべてのサーバと ControlCenter については、証明書認証が構成済みです。そのため、SSH セッションを開始する際、認証情報を入力しなくてもシステムにログインできます。

 

 

ローカル MySQL クラスタのトポロジーを確認

 

  1. PuTTY のコマンド プロンプトに 「cctrl -multi」 と入力して、<Enter> キーを押します。
  2. 「[LOGICAL] / >」 というプロンプトが表示されたら、「ls」 と入力して <Enter> キーを押します。

「cctrl」 は、インストールされているクラスタを管理するための Continuent のコマンドです。クラスタや構成に関する情報を取得したり、管理したりするときに役立ちます。「ls」 は、現在のスコープに関する情報を表示するコマンドです。

ローカル サイトのトポロジーに関する情報が表示されます。 PuTTY に表示される情報が前のモジュール (モジュール 2) とは異なることに注意してください。前の例で構成したのは 2 つのサイトにまたがる 「シングル マスター」 トポロジーでしたが、モジュール 3 で使用するのはマルチサイト マルチマスター トポロジーです。

現在の設定では、互いに独立した 2 つの MySQL クラスタが 2 つのサイトで構成されています。前の手順で ls コマンドを実行したときに両方のサイトは表示されず、1 つのサイト (vsphere) のみが表示されたのはそのためです。

 

 

リモート MySQL クラスタのトポロジーを確認

 

次に、いずれかのリモート サーバへの新しい PuTTY セッションを開きます。PuTTY では複数のセッションを開くことができるため、前のセッションを閉じる必要はありません。 リモート サイトに接続するにはどの dbx.vca サーバを選択してもかまいませんが、ここでは db1.vca.corp.local に接続します。

  1. デスクトップにある PuTTY アイコンをダブルクリックして開きます。PuTTY は SSH クライアントです。
  2. 「db1.vca.corp.local」 というサーバ名をダブルクリックして、このサーバへの ssh セッションを開きます。

 

 

リモート MySQL クラスタのトポロジーを確認

 

  1. PuTTY のコマンド プロンプトに 「cctrl -multi」 と入力して、<Enter> キーを押します。
  2. 「[LOGICAL] / >」 というプロンプトが表示されたら、「ls」 と入力して <Enter> キーを押します。

リモート サイト (vca) のみが表示されます。これで、それぞれ固有のマスター ノードを持つ 2 つの独立したクラスタがあることを確認できました。

今度はさらに一歩進んで、このマルチサイト マルチマスター トポロジーがどのように連携するのかを見てみましょう。

 

 

グローバル トポロジーの確認

 

db1.vca.corp.local の PuTTY セッションで作業を続けます。 次のコマンドを実行する前に、表示されるデータを見やすくするために PuTTY ウインドウを拡大しておきます。PuTTY ウィンドウの右上にある四角いアイコンをクリックして、ウィンドウを最大化することもできます。

  1. PuTTY のコマンド プロンプトに 「exit」 と入力して、<Enter> キーを押します。
  2. PuTTY のコマンド プロンプトに 「multi_trepctl --by-service」 と入力して、<Enter> キーを押します。

先に進む前に、スクリーンショットでハイライトされているサーバを見てください。これらは、このトポロジーのマスター ノードです。マスター ノードは、db1.vsphere.corp.local と db1.vca.corp.local になっているはずです。ハンズオン ラボの性質上、マスター ノードがこれとは異なる場合もありますが、その場合も問題はありません。「master」 と表示されているノードをメモして、以降の手順でそれらのノードを使用してください。

生成される出力から、6 つのノードがそれぞれ各クラスタの一部になっていることがわかります。ローカル レベルでは各クラスタのローカル ノードしか表示されませんが、グローバル レベルでは、クラスタですべてのノードが使用されていることがわかります。そのため、データベースへの書き込み操作が複数のサイトで同時に実行されて、堅牢なアクティブ / アクティブ インフラストラクチャが実現されます。

次の 2 つのセクションでは、この 2 つのサイトでデータがどのようにレプリケーションされ、障害が発生するとどうなるのかを確認します (ヒント: アプリケーションへの影響はありません)。

 

クラスタ間のデータ レプリケーションを確認


では、Continuent がこの 2 つのクラスタの間でデータをどのようにレプリケーションするのか見てみましょう。現在、db1.vsphere.corp.local と db1.vca.corp.local への 2 つの PuTTY セッションが開いているはずです。開いていない場合は、この 2 つのサーバへの PuTTY セッションをもう一度開いてください。


 

両方のクラスタのクライアント アプリケーションの起動

前の手順で、どのノードがマスターになっているのかを確認しました。これらのマスター ノードは、クライアント アプリケーションが MySQL データベースで書き込みや読み取りを行う際に接続するノードです。

 

 

マスター ノードの選択

 

db1.vsphere.corp.local に接続している PuTTY セッションで、ローカル Continuent Connector サービスへの MySQL 接続を開きます。

  1. PuTTY のコマンド プロンプトに 「tpm connector」 と入力して、<Enter> キーを押します。
  2. コマンド プロンプトに 「select @@hostname;」 と入力して <Enter> キーを押します (末尾のセミコロン (;) を忘れないでください)。

注: 「select @@hostname;」 コマンドを入力する際、末尾のセミコロン (;) を忘れないでください。末尾のセミコロン (;) を入力し忘れてエラーから回復できなくなった場合は、<Ctrl> + <C> キーを押して、手順 1 からやり直してください。

まだ db1.vsphere.corp.local (黄色のハイライト) がマスターであることがわかります。

 

 

ローカル クラスタにスキーマを挿入

 

次に、データベースにデータを追加するアプリケーションをシミュレートします。「vsphere_foo」 という名前の新しいスキーマをローカル vsphere クラスタに作成します。引き続き、db1.vsphere.corp.local に接続している PuTTY セッションを使用します。

まだ mysql のコマンド ライン インターフェイス (CLI) にいることを確認してください。PuTTY セッションに 「mysql>」 と表示されているはずです (スクリーンショットを参照)。表示されていない場合は、「tpm connector」 と入力して <Enter> キーを押します。

  1. PuTTY のコマンド プロンプトに 「create schema vsphere_foo;」 と入力して、<Enter> キーを押します (末尾のセミコロン (;) を忘れないでください)。
  2. コマンド プロンプトに 「show schemas;」 と入力して <Enter> キーを押します (末尾のセミコロン (;) に注意)。

注: これらのコマンドを入力する際、末尾のセミコロン (;) を忘れないでください。末尾のセミコロン (;) を入力し忘れてエラーから回復できなくなった場合は、<Ctrl> + <C> キーを押して、手順 1 からやり直してください。

これで、データベースに vsphere_foo スキーマが追加されました (ハイライトされている部分)。次に、これがリモート サイトにレプリケーションされているかどうかを見てみましょう。

 

 

リモート MySQL クラスタへのデータ レプリケーション

 

db1.vca.corp.local に接続している PuTTY セッションに切り替えて、ローカル Continuent Connector サービスへの MySQL 接続を開きます。

  1. PuTTY のコマンド プロンプトに 「tpm connector」 と入力して、<Enter> キーを押します。
  2. コマンド プロンプトに 「select @@hostname;」 と入力して <Enter> キーを押します。

注: 「select @@hostname;」 コマンドを入力する際、末尾のセミコロン (;) を忘れないでください。 末尾のセミコロン (;) を入力し忘れてエラーから回復できなくなった場合は、<Ctrl> + <C> キーを押して、手順 1 からやり直してください。

db1.vca.corp.local (黄色のハイライト) がマスターであることがわかります。

 

 

リモート MySQL クラスタへのデータ レプリケーション

 

リモート MySQL クラスタ (vca) を調べて、先ほど作成したスキーマが vsphere インスタンスからレプリケーションされていることを確認します。PuTTY ウィンドウを切り替えて、db1.vca.corp.local に接続しているセッションを使用します。

  1. mysql> プロンプトに 「show schemas;」 と入力して <Enter> キーを押します (末尾のセミコロン (;) に注意)。

注: 末尾のセミコロン (;) を入力し忘れてエラーから回復できなくなった場合は、<Ctrl> + <C> キーを押して、手順 1 からやり直してください。

vsphere_foo スキーマ (黄色のハイライト) がリモート インスタンスにレプリケーションされていることがわかります。

 

 

ローカル サイトへのデータ レプリケーション

 

このレプリケーションは双方向であるため、今度はリモート クラスタ (vca) に新しいスキーマを作成してみましょう。新しいスキーマ (vca_foo) を作成したら、それが vca と vsphere の両方のクラスタのスキーマ リストに表示されることを確認します。

  1. db1.vca.corp.local の PuTTY セッションで、mysql> プロンプトに 「create schema vca_foo;」 と入力して、<Enter> キーを押します (末尾のセミコロン (;) に注意)。
  2. mysql> プロンプトに 「show schemas;」 と入力して <Enter> キーを押します (末尾のセミコロン (;) に注意)。
  3. db1.vsphere.corp.local に接続している PuTTY セッションに切り替えて、mysql> プロンプトに 「show schemas;」 と入力して <Enter> キーを押します (末尾のセミコロン (;) に注意)。

注: 末尾のセミコロン (;) を入力し忘れてエラーから回復できなくなった場合は、<Ctrl> + <C> キーを押して、手順をやり直してください。

スクリーンショットのように、vca_foo スキーマ (黄色のハイライト) が両方のリストに表示されます。

 

 

サイト間の行レベルのレプリケーション

 

次に、スキーマにデータを挿入して、それがもう一方のサイトにどのようにレプリケーションされるのかを見てみましょう。

ローカル サイト (vsphere) で、「names」 という名前の新しいテーブルを作成して 2 つの行を挿入します。間もなくこのデータがリモート サイト (vca) に表示されます。参考のために、ここで実行する MySQL コマンドを以下に示します。これらのコマンドは、デスクトップにある README.txt ファイルからコピーして mysql> コマンド プロンプトに貼り付けることができます。Putty では、右クリックするだけでテキストを貼り付けることができます。

use vsphere_foo;

create table names (id int primary key auto_increment, name varchar(32));

insert into names (name) values ('jon'), ('alan');

select * from vsphere_foo.names;

以下のコマンドは db1.vsphere.corp.local の PuTTY セッションで実行することに注意してください。

  1. mysql> プロンプトに 「use vsphere_foo;」 と入力して <Enter> キーを押します。
  2. mysql> プロンプトに 「create table names (id int primary key auto_increment, name varchar(32));」 と入力して <Enter> キーを押します。
  3. mysql> プロンプトに 「insert into names (name) values ('jon'), ('alan');」 と入力して <Enter> キーを押します。
  4. mysql> プロンプトに 「select * from vsphere_foo.names;」 と入力して <Enter> キーを押します。
  5. 「jon」 と 「alan」 という値を含む 2 つの行を持つテーブルが表示されます。

 

 

サイト間の行レベルのレプリケーション

 

次に、vca クラスタを調べて、テーブルとデータがレプリケーションされていることを確認します。以下のコマンドは db1.vca.corp.local の PuTTY セッションで実行することに注意してください。

  1. mysql> プロンプトに 「select * from vsphere_foo.names;」 と入力して <Enter> キーを押します。
  2. 「jon」 と 「alan」 という値を含む 2 つの行を持つテーブルが正常にレプリケーションされていることがわかります。

 

トポロジー変更後のデータ レプリケーションを確認


これまでに、Continuent が 2 つのサイトの間でデータをレプリケーションできることを確認しました。今度は、クラスタのトポロジーに変更を加えてもレプリケーションがシームレスに続行されることを確認します。


 

レプリケーション構成の確認

 

まず、ローカル サイト (vsphere) を見てみましょう。すでに db1.vsphere.corp.local への PuTTY 接続が開いているはずです。次の手順では大量のテキストが生成されるため、PuTTY ウィンドウの右上にある最大化ボタンをクリックしてウィンドウを拡大しておくことをお勧めします。

  1. mysql> プロンプトに 「exit」 と入力して <Enter> キーを押します。
  2. コマンド プロンプトに 「mm_trepctl status」 と入力して <Enter> キーを押します。

「mm_trpctl status」 コマンドは、現在のホストのレプリケーション構成の詳細を取得する際に使用します。レプリケーションの組み合わせ候補、現在のレプリケーション元、およびレプリケーションのステータスが表示されます。

次の構成設定とメトリックを確認してください (スクリーンショットのハイライト部分)。

 

 

リモート サイトのトポロジーの変更

 

では、リモート サイト (vca) に切り替えてトポロジーを変更してみましょう。マスター ロールをクラスタの別のノードに移動します。db1.vca.corp.local に接続している PuTTY セッションに切り替えることに注意してください。

  1. mysql> プロンプトに 「exit」 と入力して <Enter> キーを押します。
  2. コマンド プロンプトに 「cctrl -multi」 と入力して <Enter> キーを押します。
  3. コマンド プロンプトに 「use vca」 と入力して <Enter> キーを押します (注: これにより、正しいサイトを使用していることを確認できます。エラーが表示される場合は、使用している PuTTY セッションが正しくない可能性があります)。
  4. コマンド プロンプトに 「switch to db3.vca.corp.local」 と入力して <Enter> キーを押します。

表示される出力で、db3.vca.corp.local が新たにマスターになったこと、db1.vca.corp.local はクラスタのスレーブ ノードになったことを確認します。では、これがレプリケーションにどのように影響するのか見てみましょう。

 

 

リモート サイトのレプリケーション構成を確認

 

vca サイトのレプリケーション ステータスを調べて、前の手順でクラスタのトポロジーが変更されてもレプリケーションが引き続き正常に行われていることを確認します。次のコマンドでは大量の情報が表示されるため、前の手順と同様に PuTTY ウィンドウを最大化しておくことをお勧めします。

  1. [LOGICAL] /vca > プロンプトに 「ls」 と入力して <Enter> キーを押します。
  2. 現在マスターになっているノード (db3.vca.corp.local) を見つけます。スクリーンショットのハイライト部分に注目してください。これらは重要なポイントです。まず、db3.vca.corp.local がマスター ノード (master) になっており、現在オンライン (ONLINE) であることがわかります。2 つ目のポイントは、progress=6 という項目です。これは、mm_trepctl status コマンドの appliedLastSeqno と相関関係にあります。この値が 2 つのサイトで一貫している必要があります。これについては次の手順で確認します。最後のポイントは、「Status [OK]」 というメッセージです。これは、クラスタとレプリケーションが正常に機能していることを示します。なお、この情報を確認するためには、必ずしもマスター ノードを調べる必要はありません。この情報はスレーブ ノードでも一貫しています。
HOL の性質上、progress と appliedLastSeqno の値が 6 にならない場合もあります。値は違っていてもかまいませんが、その値がクラスタ間で一貫している必要があります。たとえば、progress=8 と表示された場合は、次の手順で appliedLastSeqno も 8 になっている必要があります。

 

 

更新されたレプリケーション トポロジーを確認

 

次に、ローカル サイト (vsphere) に戻って、リモート サイト (vca) でマスターが移行されてもレプリケーションが続行されていることを確認します。vsphere のレプリケーション トポロジーは、前の手順で行ったトポロジー変更に基づいて自動的に調整されています。

  1. コマンド プロンプトに 「mm_trepctl status」 と入力して <Enter> キーを押します。
  2. appliedLastSeqno を調べて、前の手順の progress= の値と一致していることを確認します。
  3. pipelineSource パラメータを確認します。

現在のレプリケーション元が db1.vca.corp.local であること、レプリケーションが最新の状態 (最後にレプリケーションされたレコードの連番が 6) であることがわかります (先に説明したとおり、実際の値が違っている場合もありますが、その場合も、前の手順の progress= の値と同じになっている必要があります)。

 

 

PuTTY の終了

 

これで、モジュール 3 は終了です。PuTTY セッションを閉じて、次のレッスンへ進みましょう。

  1. PuTTY ウィンドウの右上にある赤い X をクリックします。
  2. [OK] をクリックします。

このレッスンにご参加いただき、ありがとうございました。他のモジュールにもぜひご参加ください。

 

モジュール 4: Continuent - ビッグデータ (Hadoop) との統合 (15 分)

モジュール 4 に必要な環境の準備


必要に応じて、実習ラボのどのモジュールからでも実行できるようにするため、一連のスクリプトが用意されています。各モジュールのはじめにスクリプトを実行して、実習ラボのトポロジーを準備してください。いつでも次のモジュールに進み、該当するモジュールのセットアップ スクリプトを実行できます。

このモジュールでは、「module4」 という名前のスクリプトを実行します。次ページの手順に従ってください。


 

PuTTY の起動

 

  1. デスクトップにある PuTTY アイコンをダブルクリックして開きます。PuTTY は SSH クライアントです。
  2. 「db1.vsphere.corp.local」 というサーバ名をダブルクリックして、このサーバへの ssh セッションを開きます。
注: この実習ラボ環境のすべてのサーバと ControlCenter については、証明書認証が構成済みです。そのため、SSH セッションを開始する際、認証情報を入力しなくてもシステムにログインできます。

 

 

モジュール 4 のセットアップ スクリプトの実行

 

  1. コマンド プロンプトに 「module4」 と入力して <Enter> キーを押します。
  2. スクリプトが完了するまでに 1 ~ 2 分かかります。スクリプトが完了してコマンド プロンプトに戻ったら、「source ~/.bash_profile」 と入力して <Enter> キーを押します。

最初の手順ではスクリプトの出力が表示されますが (Cleanup と Install)、2 つ目のコマンドでは出力は表示されません。エラーが発生することはまずありませんが、発生した場合はその旨を伝えてください。

 

モジュールの概要


Continuent では、RDBMS と分析エンジンをリアルタイムで統合できます。高性能な NoSQL エンジンやデータ分析エンジンへデータが迅速かつ効率的に複製されるので、ビッグデータの分析結果に基づいて、より的確に経営判断を下すことができます。

なお、Continuent でこの機能がサポートされているデータベースは MySQL と Oracle です。

このモジュールでは、Continuent で MySQL から Hadoop へのレプリケーションを行えることを確認します。

次のページの図は、MySQL データベースから Hadoop へのデータの流れを示しています。


 

リレーショナル データベースから Hadoop へのデータの流れ

 

 

Hadoop へのデータ レプリケーションを確認


ここでは、MySQL データベースにいくつかのレコードを挿入して、それらが Hadoop にレプリケーションされることを確認します。


 

MySQL クラスタのトポロジーを確認

 

  1. MySQL への接続とクラスタのトポロジーを確認します。コマンド プロンプトに 「cctrl」 と入力して <Enter> キーを押します。
  2. 「[LOGICAL] / >」 というプロンプトが表示されたら、「ls」 (小文字の L) と入力して <Enter> キーを押します。

 

 

クラスタ ハートビートの生成

 

次に、クラスタ ハートビート イベントを生成します。cluster heartbeat コマンドを実行すると、ローカル クラスタからハートビート イベントが送信されて、すべてのレプリケータが動作していることが確認されます。連番の数字の増加によってクラスタが正常に動作していることがわかります。

  1. クラスタ ハートビートを生成します。「[LOGICAL] /vsphere >」 というプロンプトに 「cluster heartbeat」 と入力して、<Enter> キーを押します。
  2. cluster heartbeat コマンドを繰り返し実行します。
  3. 「cctrl」 コマンドを終了します。「exit」 と入力して <Enter> キーを押します。

 

 

MySQL データベースにデータを挿入

 

1. データベースにデータを挿入します。コマンド プロンプトに 「tungsten_create_load --threads=10」 と入力して <Enter> キーを押します。

10 秒ほど経ったら <Ctrl> + <C> キーを押します。ここで挿入するデータはこの程度で十分です。

2. データが挿入されたことを確認します。コマンド プロンプトに 「trepctl status」 と入力して <Enter> キーを押します。

3. appliedLastSeqno フィールドの値を確認します。この値は、データベースに挿入されたレコードの数を示します。実際の値はスクリーンショットとは異なります。手順 1 でスクリプトを実行した時間によって値が変わるためです。

 

 

MySQL データベースのデータ レコードを確認

 

次のコマンドを実行して、データベースのデータ レコードを確認します。

  1. tpm db
  2. show schemas;
  3. use tungsten_create_load;
  4. show tables;
  5. select * from tungsten_create_load.values;

 

 

Hadoop サーバのデータ レコードを確認

 

次に、Hadoop を実行しているサーバにレコードがレプリケーションされたことを確認します。「hdfs」 というサーバにログインして、レプリケーションのステータスと HDFS を確認します。そのためには次のコマンドを実行します。

  1. ssh hdfs
  2. trepctl status

 

 

Hadoop ファイル システム (HDFS) のデータ レコードを確認

 

最後に、Hadoop ファイル システム (HDFS) にレコードが挿入されて、分析操作を実行できるようになっていることを確認します。そのためには、「hadoop fs -ls /user/tungsten/staging/vsphere/tungsten_create_load/values」 というコマンドを実行します (スクリーンショットを参照)。

 

Hive による Hadoop でのデータ アクセスを確認


Apache Hive は、分散ストレージに格納されている大規模なデータセットの照会および管理のためのデータ ウェアハウス ソフトウェア ツールです。そのデータを構造化して、HiveQL という SQL に似た言語で照会するためのメカニズムを提供します。この言語では、従来の map や reduce のプログラマが独自の mapper や reducer をプラグインとして使用することもできます。そのロジックを HiveQL で表現するのが難しい場合や効率的でない場合に便利です。

Continuent によってレプリケーションされたデータも、Hadoop の他のデータセットと同様に Hive でアクセスできます。そのためには、以降のハイライトされているコマンドを実行します。

これらのコマンドは非常に長いため、ブラウザ ウィンドウの左上にある [SEND TEXT] ボタンを使用してこのマニュアルからコピーして貼り付けてください。README.txt ファイルからコピーして貼り付けることもできます。


 

Hive でデータベース ビューを作成

 

スクリーンショットのように、「sudo hive -e "CREATE DATABASE vsphere_tungsten_create_load;」 というコマンドを入力します。

 

 

Hive でマテリアライズド ビューを作成

 

スクリーンショットのように、次のコマンドを入力します。

sudo /opt/continuent/software/continuent-tools-hadoop/bin/load-reduce-check --no-compare -m /opt/continuent/share/materialize.json -s tungsten_create_load -Ujdbc:mysql:thin://db1.vsphere.corp.local:13306/tungsten_create_load -utungsten -psecret -S vsphere

 

 

Hive クエリによるデータの確認

 

スクリーンショットのように、次のコマンドを入力します。

  1. sudo hive
  2. select * from vsphere_tungsten_create_load.stage_xxx_values;

これで、モジュール 4 とこのハンズオン ラボは終了です。ありがとうございました。

 

まとめと詳細情報


VMware Continuentを使用すると、リレーショナル データベースのデータが高性能な NoSQL エンジンやデータ分析エンジンへ複製されるので、ビッグデータの分析結果に基づいて、より的確に経営判断を下すことができます。また、ビジネス クリティカルなデータベース アプリケーションを実行している企業で、商用レベルの高可用性 (HA)、グローバルな冗長性を備えたディザスタ リカバリ (DR)、およびパフォーマンスの拡張を低コストで実現できます。クラウドまたはプライベート データセンターにデータベース クラスタを容易に作成できるので、システム障害が発生してもデータの可用性が損なわれません。

詳しくは、http://www.vmware.com/products/continuent/をご覧ください。60 日間の無償評価版もご利用いただけます。 特定のニーズや環境についてのご相談は、continuent-sales@vmware.comから専任の担当者にお問い合わせください


Conclusion

Thank you for participating in the VMware Hands-on Labs. Be sure to visit http://hol.vmware.com/ to continue your lab experience online.

Lab SKU: HOL-HBD-1686_JA

Version: 20151214-044441