無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 14 MySQL Cluster :: 14.12 MySQL Cluster での高速インターコネクトを使用する :: 14.12.1 SCI ソケットを使用するための MySQL Cluster の設定
« 14.12 MySQL Cluster での高速インターコネクトを使用する

14.12.2 Cluster インターコネクトの理解する »
Section Navigation      [Toggle]
  • 14.12 MySQL Cluster での高速インターコネクトを使用する
  • 14.12.1 SCI ソケットを使用するための MySQL Cluster の設定
  • 14.12.2 Cluster インターコネクトの理解する

14.12.1. SCI ソケットを使用するための MySQL Cluster の設定

この項では、クラスタを通常の TCP/IP 通信に SCI ソケットを使用できるようにするために設定について説明します。この説明は 2004 年 10 月 1 日現在の SCI Socket バージョン 2.3.0 に基づいています。

必要条件

SCI ソケットを使用するマシンは SCI カード実装が必要です。

SCI ソケットはどのバージョンの MySQL Cluster でも使用できます。それは既に MySQL Cluster で利用できる通常のソケット呼び出しを使用していますので特別な構築は必要ありません。しかし、SCI Soket は現在 Linux 2.4 および 2.6 kernels 上でしかサポートされていません。SCI トランスポーターはその他のオペレーティング システムでも検証されていますが今までのところ弊社では Linux 2.4 でしかこれらの検証を行っておりません。

これらは SCI Socket の使用する際の基本的な要件です。

  • SCI Socket ライブラリの構築。

  • SCI Socket kernel ライブラリのインストール。

  • 1 つ以上の設定ファイルのインストール。

  • SCI Socket kernel ライブラリはマシン全体あるいは MySQL Cluster プロセスが実行されるシェルのいずれかに有効でなければなりません。

このプロセスは SCI Socket をインターノード通信に使用する際のクラスタの各マシンに繰返されます。

SCI Socket を動作させるには 2 つのパッケージを取り出す必要があります。

  • SCI Socket ライブラリの DIS サポート ライブラリを含むソースコード パッケージ。

  • SCI Socket ライブラリそのもののソースコード パッケージ

現在は、これらはソースコードのフォーマットでしか利用できません。本マニュアルを書いている段階でのこれらのパッケージの最新のバージョンは (それぞれ) DIS_GPL_2_5_0_SEP_10_2004.tar.gz および SCI_SOCKET_2_3_0_OKT_01_2004.tar.gz が利用できました。これらは (または最新バージョン) は http://www.dolphinics.no/support/downloads.html で入手できます。

パッケージのインストール

これらのライブラリのパッケージを入手したら、以下のステップでそれらを適切なディレクトリに解凍し、そこで SCI Socket ライブラリを DIS コードの下のディレクトリに入れます。次に、ライブラリを構築する必要があります。この例ではこのタスクを実行するための Linux/x86 でのコマンドを示します。

shell> tar xzf DIS_GPL_2_5_0_SEP_10_2004.tar.gz
shell> cd DIS_GPL_2_5_0_SEP_10_2004/src/
shell> tar xzf ../../SCI_SOCKET_2_3_0_OKT_01_2004.tar.gz
shell> cd ../adm/bin/Linux_pkgs
shell> ./make_PSB_66_release

これらの ライブラリを 64 ビットのプロセッサに構築できます。64 ビット拡張を使用してライブラリを Opteron CPU に構築するには、make_PSB_66_X86_64_release を実行します。make_PSB_66_release ではありません。それを Itanium マシンに構築した場合には、 make_PSB_66_IA64_release を使用する必要があります。X86-64 バリアントは Intel EM64T アーキテクチャで動作しますが、これはまだ (弊社の知っている限り) まだ検証されていません。

構築が完了したら、コンパイルしたライブラリは zip の tar ファイルで DIS-<operating-system>-time-date の名前で検索できます。ここでパッケージを適切なスペースにインストールします。この例ではインストールを /opt/DIS に入れます。(注:多くの場合以下をシステム root ユーザーとして実行する必要があります。)

shell> cp DIS_Linux_2.4.20-8_181004.tar.gz /opt/
shell> cd /opt
shell> tar xzf DIS_Linux_2.4.20-8_181004.tar.gz
shell> mv DIS_Linux_2.4.20-8_181004 DIS

ネットワークの設定

すべてのライブラリおよびバイナリが準備できたら、SCI カードが SCI アドレス スペースで適切なノード ID を持っているか確認する必要があります。

次に進む前にネットワーク構成で決める必要があります。これ例で使用できるネットワーク構成は 3 種類あります。

  • 簡単な一次元リング

  • スイッチ ポートと毎に 1 つのリングを持つ 1 つ以上の SCI スイッチ

  • 2 あるいは 3次元トーラス

これらの各トポロジにはノード ID を提供するそれぞれの手法があります。簡単にそれぞれについて説明します。

簡単なリングは非ーゼロの 4 の倍数を使用します。 4, 8, 12,...

次の例は SCI スイッチを使用しています。SCI スイッチには 8 ポートあり、それぞれのポートはリングをサポートします。異なるリングは異なるノード ID スペースを使用することを確認する必要があります。一般的な設定では、最初のポートは 64 (4 ? 60) 以下のノード ID を使用し、次の 64 ノード ID (68 ? 124) は次のポートに割り当てられ、そのように続いてノード ID 452 ? 508 は 8 番目のポートに割り当てられます。

2、3 次元のトーラス ネットワーク構成は各ノードは各次元のどこに配置され、最初の次元で各ノードを 4 で増分し、2 次元では 64、および (適用できる場合) 3 次元では 1024 で増分します。さらに詳しい説明については Dolphin 社のウェブ サイト を参照してください。

弊社の試験ではスイッチを使用しました。大きなクラスタのインストールでは 2 あるいは 3 次元のローラス構成を使用します。スイッチを使用する利点は、2 つの SCI および 2 つのスイッチでは、比較的容易に冗長ネットワークを構築でき、そこでは SCI ネットワークの標準フェールオーバー時間は 一般的に100 ミリセカンドです。これは MySQL Cluster の SCI トランスポーターでサポートされており、現在 SCI Socket に導入するために開発中です。

2D/3D トーラスでのファールオーバーは可能ですがすべてのノードに対して新しいルート インデックスを送る必要があります。しかし、これには それを完了するには 100 ミリセカンドあるいはそれくらいが必要で、多くの高可用性を要求されるケースで使用せきなればなりません。

クラスタのデータ ノードをスイッチのアーキテクチャに適切に配置することで、2 つのスイッチを使用して 16 台のコンピュータをインターコネクトし 1 つの不具合が他の 1 つ以上に影響を及ぼさない構成を構築できます。32 台のコンピュータと 2 つのスイッチで、1 つの不具合が 2 つい上のノードの損失につながらないようにクラスタを設定することができます。この場合、その組のノードが影響されたかを知ることも可能です。このように、2 つのノードを個別のノード グループに配置することで、「安全な」 MySQL Cluster のインストールを構築できます。

ノード ID を SCI カードに設定するには /opt/DIS/sbin ディレクトリの以下のコマンドを使用します。この例では、-c 1 は SCI カード (これはマシンにカードが 1 つだけの場合には常に 1 です) の番号を表し、-a 0 はアダプタ 0、および 68 はノード ID を意味します。

shell> ./sciconfig -c 1 -a 0 -n 68

同じマシンに複数の SCI カードがある場合、以下のコマンド (ここでは使用するディレクトリを /opt/DIS/sbin とします) を発行することでどのカードにどのスロットがあるか決めることができます。

shell> ./sciconfig -c 1 -gsn

これにより SCI カードのシリアル番号が決まります。次にマシンの各カードにこのプロシージャを -c 2 などで繰り返します。各カードをスロットに合わせたら、ノード ID をすべてのカードに設定できます。

必要なライブラリおよびバイナリをインストールすると、SCI ノードと ID が設定され、次のステップでホスト名(あるいは IP アドレス) から SCI ノード ID のマッピングを設定します。これは SCI Socket の設定ファイルで行われ、/etc/sci/scisock.conf として保存します。このファイルで、各 SCI ノード ID は適切な SCI カードから通信するホスト名あるいは IP アドレスにマップされます。ここにその様な設定ファイルの極めて簡単な例を示します。

#host           #nodeId
alpha           8
beta            12
192.168.10.20   16

設定をこれらのホストの利用できるポートのサブセットにのみ適用できるように制限することも可能です。これを行うために別の設定ファイル /etc/sci/scisock_opt.conf を以下のように使用できます。

#-key                        -type        -values
EnablePortsByDefault                yes
EnablePort                  tcp           2200
DisablePort                 tcp           2201
EnablePortRange             tcp           2202 2219
DisablePortRange            tcp           2220 2231

ドライバのインストール

設定ファイルの用意ができたら、ドライバをインストールできます。

最初に、低レベルのドライバ、次に SCI ソケット ドライバをインストールする必要があります。

shell> cd DIS/sbin/
shell> ./drv-install add PSB66
shell> ./scisocket-install add

任意で、SCI ソケットの設定ファイルのすべてのノードがアクセスできることを検証するスクリプトを実行してインストールをチェックできます。

shell> cd /opt/DIS/sbin/
shell> ./status.sh

エラーが発生し SCI ソケットの設定の変更が必要な場合、このタスクを実行するためには ksocketconfig を使用する必要があります。

shell> cd /opt/DIS/util
shell> ./ksocketconfig -f

設定テスト

SCI ソケットが実際に使用されているか確認するには、latency_bench テスト プログラムを使用します。このユーティリティのサーバーコンポーネントを使用して、接続のレーテンシーをテストするためにサーバーに接続できます。SCI が有効であるかを確認するにはこのレーテンシーを確認することで用意に分かります。(注:latency_bench を使用する前に、LD_PRELOAD 環境変数をこの項の後で述べるように設定する必要があります。

サーバーを設定するには、以下を使用します。

shell> cd /opt/DIS/bin/socket
shell> ./latency_bench -server

クライアントを起動するには、latency_bench を、この場合は -client オプションを除いて再度使用します。

shell> cd /opt/DIS/bin/socket
shell> ./latency_bench -client server_hostname

SCI ソケットの設定はこれで完了し、MySQL Cluster の SCI ソケット および SCI トランスポート (項14.4.4.10. 「SCI トランスポート接続」 参照) を使用する用意ができました。

クラスタの起動

プロセスの次のステップで MySQL Cluster が起動します。SCI ソケットの使用を有効にするには、環境変数 LD_PRELOAD を ndbd、mysqld、および ndb_mgmd を実行する前に設定します。.この変数は SCI ソケットの kernel ライブラリに向ける必要があります。

ndbd をバッシュ シェルで起動するには、以下に従います。

bash-shell> export LD_PRELOAD=/opt/DIS/lib/libkscisock.so
bash-shell> ndbd

tcsh 環境では、以下で同様のことが出来ます。

tcsh-shell> setenv LD_PRELOAD=/opt/DIS/lib/libkscisock.so
tcsh-shell> ndbd

注:MySQL Cluster は SCI ソケットの kernel 派生品のみ使用できます。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.