Midnightjapan

Tag: HAクラスタ

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:高可用性)クラスタシステムを構築する。

コメントなし :, , , , , more...

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

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

CentOS5.5をHAクラスタリング構成で構築する。

サーバーの構築には速度・安全・理解が非常に重要です。

理解していないサーバーをいれて、セキュリティーホールをつつかれたりしても自己責任ですからね。

インストールは最小構成でインストールしてXもいれません。すべてコンソールで設定していきます。

そんなわけで最初のウイザードが非常に重要。

記事のほとんどが、下記のサイトを拝見して自分なりにカスタマイズしてるだけなんですがね。

CentOSで自宅サーバー構築「CentOS5インストール編」

ただし注意があります。

目指すは同ページのHAクラスタリングなので、DRBD構築時の領域を残さないといけません。

なので、ハードディスクパーティションの際に上手に設定すれば比較的容易に構築することが可能です。

CentOS5.5インストール画面:パーティション

CentOS5.5インストール画面:パーティション

この画面「パーティションレイアウトの再確認と変更」を選択しておけばカスタマイズ可能です。

まずは起動です。

仮想サーバー環境を構築するのが初めての方はなんのことだかわからない設定がたくさんあるかと思いますが、一つずつ理解して進めてくださいね。

VMware Infrastracture Clientでcd/dvdが認識しないことが多いです。

Consoleがでても、not bootable devicesとでて起動しないことありますよね?

あわてずにデフォルトの設定のままであればConnect CD/DVDを選択するとあなたが操作しているPCのフロッピーとかCDを利用するんですよ。知ってました?

すんごい技術なんですが、当たり前のようにLocalと書かれていても、俺が操作してるのはリモートでローカルってことはサーバーのこといってんじゃねーの?

なんてことが通じませんのでご理解ください。

それも面倒だし遅いので、操作しているPCにあるISOイメージを使うと早くていいですよ。

すでにインストールに失敗して仮想サーバーの仮想HDDにOSがある時や、LANブートができるけど毎回そっちいくぞ!って人はBIOSを変更してください。

コツはテキパキ操作すること!

仮想といえど、早いです!BIOSとか見えないので、がんばらないといけません。

起動>Consoleを速攻でクリック>F2でBOIS画面 F12で Boot Selectです。

間に合わなかったら、マウスカーソルをConsoleの外に出すためにCtrl+Altで離脱できます。間違ってもCtrl+Alt+Delしてもタスクマネージャーが開くだけですからね!

この画面がでてから「connect CD/DVD」を選択すればゆっくりとCDから起動させることなどが可能です。

起動してセットアップする際に、HAクラスタリングにするためにDRBDを稼働させます。DRBDはデバイスレベルでデータの二重化を行うそうで、パーティションをいじらないといけないとかいてあるため、インストールのときにこんなかんじにいじってみました。

BRDB用VolumeGroupパーティショニング

BRDB用VolumeGroupパーティショニング

LVMとかわからないことが多いかもしれませんが、ここも操作勉強しているうちに、普通に理解できるようになります。がんばってください!
(誰にいってるんだ?俺

インストール構成は最小限の構成で。インストール後の設定も下記の通りです。

このサイトは私にとって神様的存在です。とても詳細に書いてあります。

CentOSで自宅サーバー構築「CentOS5インストール」

CentOSで自宅サーバー構築「CentOS5初期設定」

CentOSで自宅サーバー構築「HAクラスタシステム構築(Heartbeat+DRBD+Apache)」

まずはこの章までにHAクラスタ化されWEBサーバーの構築まで完成です。

次はMySQL Clusterを導入してWEBDBサーバーのクラスタ化の完成ですね。

がんばりましょう。

コメントなし :, , , more...



何かお探しですか?

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

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