3種類のノードをセットアップ!
config.iniの基本
config.iniファイルの中身はmy.cnf(my.ini)ファイルと同様、かっこ([と])で囲まれたセクション名を用いて記述します。セクション名は各ノードの種類に対応していて、それぞれ管理ノードが[mgm]、データノードが[ndbd]、SQLノードが[mysqld]です。それぞれ別名もありますが、紛らわしいのでここで挙げた名前を使うといいでしょう。
config.iniはmy.cnfとは違い、ノードごとにそれぞれセクションを1つ記載する必要があります。例えば、データノードが4台ある場合、[ndbd]というセクションが4つ必要になります。
各種ノードは複数存在することが多いのですが、各種ノードの共通の構成情報を効率的に記述するためのセクションがあります。それぞれ[mgm default]、[ndbd default]、[mysqld default]のようにセクション名に「default」という部分が追加されます。これらデフォルトの構成情報は、個別の構成情報を記述する前に記載しなければなりません。もちろん、複数ノードが存在しない場合やそれぞれ構成情報を記載する場合は、defaultセクションは省略可能です。
今回使用するconfig.iniを図2に示します。今回はSolarisゾーンを使っているため割り当てるメモリを最小構成にしているので、実用的な構成ではありません。この構成によるメモリの消費量はデータノードあたり約300MBです。実運用で使用する場合には割り当てるメモリを増やしてください。設定可能な主要パラメータについては次回解説します。
MySQL 5.1 リファレンスマニュアルの「14.4.4. 設定ファイル(http://dev.mysql.com/doc/refman/5.1/ja/mysql-cluster-config-file.html)」に変更可能なパラメータがすべて載っていますので、パラメータの調整にチャレンジする場合には参照してください。
また、config.iniの作成を支援する便利なツールとして、「Configuration Tool for MySQL Cluster(http://www.severalnines.com/config/)」を紹介しておきます。ウィザード形式で必要な情報を入力していくとconfig.iniができあがります。
config.iniの準備ができたら管理ノードを起動しましょう。グローバルゾーンから操作を開始するには、まずzloginでmgmゾーンへ接続します。
shell# zlogin mgm
そして、mgmへユーザーを変更し、プロセスを起動します。
shell@mgm# su - mgm
shell@mgm> ndb_mgmd -f /var/lib/mysqlcluster/config.ini
すぐにプロンプトが戻ってきますので、ndb_mgm管理クライアントで接続してみましょう。
shell@mgm> ndb_mgm
接続が成功すると、SHOWコマンドで各ノードの状態を見ることができます。
ndb_mgm> SHOW
データノード
管理ノードが起動すると、データノードを起動することができます。データノードを起動するにはUNIXシェルからndbdコマンドを実行します。セキュリティー上の脅威を少しでも減らすため、ndbdコマンドを実行するユーザーはroot以外のユーザーで行いましょう。今回の例ではndbというユーザーを使用します。管理ノードと同様の手順で各データノードにおいてndbというユーザーを作成してください。ndbdを起動するコマンドは次のようになります。
shell> ndbd --connect-string=192.168.1.40 --nostart
--connect-stringは管理ノードへのアドレスを指定するパラメータです。データノードは必要な情報をすべて管理ノードから受け取ります。従って、--connect-string以外に設定するべきパラメータはあまり多くありません。
データノードは起動時にほかのノードが起動していないとタイムアウトを起こしてしまいます。--nostartを指定しておくとデータノードは起動する直前で待機し、その後管理ノードから一斉に起動するという操作が可能になります。
これらのパラメータは/etc/my.cnfにおいて[mysql_cluster]セクションに記述することができます。
[mysql_cluster]
connect-string=192.168.1.40
nostart
このように/etc/my.cnfに設定を書いておけば、引数なしにndbdと入力するだけでデータノードを起動することが可能です。/etc/my.cnfがこのように設定されていて、なおかつndbというユーザーが居ると仮定すると、data1ゾーンで次のコマンドを実行することでプロセスを起動することができます。
shell@data1# su - ndb
shell@data1> ndbd
data2~data4ゾーンにおいてもndbdを起動しましょう。
ここまで準備ができたら、管理ノードからデータノードを開始します。まずは管理ノードに接続しましょう。
shell> su -
shell# zlogin mgm
そして、mgmへユーザーを変更し、ndb_mgm管理クライアントを起動します。
shell> ndb_mgm
接続ができたら、管理クライアントのプロンプト(ndb_mgm>)から次のコマンドを実行します。
ndb_mgm> ALL START
各ノードの状態を見るには、STATUSコマンドを使用します。
ndb_mgm> ALL STATUS
ステータスがstartedとなっていれば起動は成功です。次は、SQLノードについて説明しましょう。