Midnightjapan

CentOSを使ったLAN内用HAクラスタリングWEBDBサーバー構築 その3

by jun on 11月.17, 2010, under Linux

CentOS 5.5でMySQL Clusterを設定

まずMysql Clusterがインストール可能なyum の Repo [wing] があるので、これを使ってインストールします。

# cd /etc/yum.repos.d/
# wget http://wing-net.ddo.jp/wing/wing.repo
# wget http://wing-net.ddo.jp/wing/wing-extras.repo
# yum --enablerepo=wing install mysql-server mysql-cluster
=====================================================================================================================================================================
 Package                                    Arch                             Version                                          Repository                        Size
=====================================================================================================================================================================
Installing:
 mysql-cluster                              i386                             5.1.52-1.el5_1.wing                              wing                              15 M
 mysql-server                               i386                             5.1.52-1.el5_1.wing                              wing                              13 M
Installing for dependencies:
 mysql-libs                                 i386                             5.1.52-1.el5_1.wing                              wing                             4.2 M
Updating for dependencies:
 mysql                                      i386                             5.1.52-1.el5_1.wing                              wing                             4.3 M
 perl-DBD-MySQL                             i386                             4.010-1.el5_0.wing                               wing                             217 k

Transaction Summary
=====================================================================================================================================================================
Install       3 Package(s)
Upgrade       2 Package(s)

Total download size: 37 M

リポジトリをダウンロードしてyumコマンドでwing repo を指定したってことですね。

インストールが終わったら設定を行います。

まずわたしがひっかたったのは、ノードとホストってどう違うの?っていうか設定はこのノードにしか必要無いとか書いてあるんですが、わかりにくいですよね?

ていうか、わかりにくいです。

そこでがっちり作ってみました。まずはネットワーク構成図です。

VMware ESXi ネットワーク構成図

VMware ESXi ネットワーク構成図

このネットワーク構成のそれぞれのサーバーに下記のような構成を行います。

MySQLCluster構成

MySQLCluster構成

「WBCMainサーバー」での設定

1)MySQLサーバーの設定

# vi /etc/my.cnf
----以下viで編集---
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# To allow mysqld to connect to a MySQL Cluster management daemon, uncomment
# these lines and adjust the connectstring as needed.
#ndbcluster
#ndb-connectstring=”nodeid=4;host=localhost:1186″

ndbcluster
ndb-connectstring=192.168.0.2

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[ndbd]
# If you are running a MySQL Cluster storage daemon (ndbd) on this machine,
# adjust its connection to the management daemon here.
# Note: ndbd init script requires this to include nodeid!
#connect-string=”nodeid=2;host=localhost:1186″

connect-string=192.168.0.2

[ndb_mgm]
# connection string for MySQL Cluster management tool
#connect-string=”host=localhost:1186″

connect-string=192.168.0.2

[mysql_cluster]
ndb-connectstring=192.168.0.2

2)管理ノードの設定

# cp /usr/share/mysql/ndb-config-2-node.ini /var/lib/mysql-cluster/config.ini  ←テンプレートをコピーしてviで編集
# vi /var/lib/mysql-cluster/config.ini
---以下viで編集---
# Example Ndbcluster storage engine config file.
#
[ndbd default]
NoOfReplicas= 2
MaxNoOfConcurrentOperations= 10000
DataMemory= 80M
IndexMemory= 24M
TimeBetweenWatchDogCheck= 30000
DataDir= /var/lib/mysql-cluster
MaxNoOfOrderedIndexes= 512
[ndb_mgmd default]
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Id=1
#HostName= localhost
HostName=192.168.0.2
[ndbd]
Id= 2
#HostName= localhost
HostName= 192.168.0.2
[ndbd]
Id= 3
#HostName= localhost
HostName= 192.168.0.3

[mysqld]
Id= 4
HostName= 192.168.0.2

[mysqld]
Id= 5
HostName= 192.168.0.3

[mysqld]
Id= 6

[mysqld]
Id= 7
# choose an unused port number
# in this configuration 63132, 63133, and 63134
# will be used
[tcp default]
PortNumber= 63132

「WBCsubサーバー」での設定

1)MySQLサーバーの設定

# vi /etc/my.cnf
----以下viで編集---
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# To allow mysqld to connect to a MySQL Cluster management daemon, uncomment
# these lines and adjust the connectstring as needed.
#ndbcluster
#ndb-connectstring=”nodeid=4;host=localhost:1186″

ndbcluster
ndb-connectstring=192.168.0.2

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[ndbd]
# If you are running a MySQL Cluster storage daemon (ndbd) on this machine,
# adjust its connection to the management daemon here.
# Note: ndbd init script requires this to include nodeid!
#connect-string=”nodeid=2;host=localhost:1186″

connect-string=192.168.0.2

[ndb_mgm]
# connection string for MySQL Cluster management tool
#connect-string=”host=localhost:1186″

connect-string=192.168.0.2

[mysql_cluster]
ndb-connectstring=192.168.0.2

2)管理ノードの設定

# cp /usr/share/mysql/ndb-config-2-node.ini /var/lib/mysql-cluster/config.ini  ←テンプレートをコピーしてviで編集
# vi /var/lib/mysql-cluster/config.ini
---以下viで編集---
# Example Ndbcluster storage engine config file.
#
[ndbd default]
NoOfReplicas= 2
MaxNoOfConcurrentOperations= 10000
DataMemory= 80M
IndexMemory= 24M
TimeBetweenWatchDogCheck= 30000
DataDir= /var/lib/mysql-cluster
MaxNoOfOrderedIndexes= 512
[ndb_mgmd default]
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Id=1
#HostName= localhost
HostName=192.168.0.2
[ndbd]
Id= 2
#HostName= localhost
HostName= 192.168.0.2
[ndbd]
Id= 3
#HostName= localhost
HostName= 192.168.0.3

[mysqld]
Id= 4
HostName= 192.168.0.2

[mysqld]
Id= 5
HostName= 192.168.0.3

[mysqld]
Id= 6

[mysqld]
Id= 7
# choose an unused port number
# in this configuration 63132, 63133, and 63134
# will be used
[tcp default]
PortNumber= 63132

はい、まったく同じ設定を行います。それぞれ設定が完了したら、サーバーを起動していきます。

起動順序は「WBCmain」→「WBCsub」がよろしいかと思います。subのndbdを起動したら、mainの応答がないのでエラーを返してきたりしました。

「WBCmainサーバー」でのサーバー起動

1)管理ノードの起動と自動起動登録
# service ndb_mgmd start
# chkconfig ndb_mgmd on
2)データノードの起動と自動起動登録
# service ndbd start
# chkconfig ndbd on
3)SQLノードの起動と自動起動登録
# service mysqld start
# chkconfig mysqld on

「WBCsubサーバー」でのサーバー起動

1)データノードの起動と自動起動登録
# service ndbd start
# chkconfig ndbd on
2)SQLノードの起動と自動起動登録
# service mysqld start
# chkconfig mysqld on

「WBCmainサーバー」で動作確認と管理ノード操作

# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 192.168.0.2:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.0.2  (Version: 5.1.52, Nodegroup: 0, Master)
id=3    @192.168.0.3  (Version: 5.1.52, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.0.2  (Version: 5.1.52)

[mysqld(API)]   4 node(s)
id=4    @192.168.0.2  (Version: 5.1.52)
id=5    @192.168.0.3  (Version: 5.1.52)
id=6 (not connected, accepting connect from any host)
id=7 (not connected, accepting connect from any host)

ndb_mgm>

これでデータベースサーバーのクラスタ化は完成。

複数のサーバーが常に同じ情報をもつようになります。

この構造と次のHAクラスタサーバー構成を導入すれば、かなりの高可用性となることでしょう。

ndb_mgm管理コマンドでオンラインバックアップにも対応しています。

それはまた今度。

次はHeartbeat+DRBDでアクティブ・スタンバイ型のHA(High Availability:高可用性)クラスタシステムを構築する。

:, , , , ,

コメント返信

*



何かお探しですか?

以下にキーワードを入力してサイト内検索が可能です:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!