您的位置:首页 > 其它

LVS+Keepalived+LAMP+Gluster系统搭建

2016-03-11 23:51 267 查看

LVS+Keepalived+LAMP+Gluster系统搭建

说明:本文是在利用工作之余借鉴网上各位大牛经验,在本机上搭建的一个小型系统环境,并将其整理;由于文采有限,可能文章有很多不妥之处,很多地方需要后续补充!!


一、系统架构及规划

1、系统架构图






2、系统规划






3、IP地址规划






二、搭建Yum仓库

1、挂载镜像,并拷贝到Master服务器

<span style="font-size:14px;">[root@test ~]# mkdir  /app/yum_d
[root@test ~]# mount /dev/sr0 /media/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@test ~]# cd /media/
[root@test media]# ls
EFI      EULA_en  EULA_it  EULA_pt  HighAvailability  LoadBalancer  README         ResilientStorage            ScalableFileSystem
EULA     EULA_es  EULA_ja  EULA_zh  images            media.repo    release-notes  RPM-GPG-KEY-redhat-beta     Server
EULA_de  EULA_fr  EULA_ko  GPL      isolinux          Packages      repodata       RPM-GPG-KEY-redhat-release  TRANS.TBL
[root@test media]# cp -rf /media/ /app/yum_d/
[root@test media]# service httpd status
httpd is stopped</span><span style="font-size:24px;">
</span>



2、配置http服务

<span style="font-size:14px;">[root@test media]# vi /etc/httpd/conf/httpd.conf ---在配置文件最后添加如下内容
Alias /kbsonlong "/app/yum_d"          --/kbsonlong  访问的别名  /app/yum_d 存放软件目录
<Directory "/app/yum_d">
Options Indexes MultiViews FollowSymlinks
AllowOverride None
Allow from all
</Directory>
[root@test media]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for test
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[  OK  ]
[root@test media]# netstat -ntul
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 ::1:25                      :::*                        LISTEN
tcp        0      0 :::80                       :::*                        LISTEN  </span><strong style="font-size:24px;">
</strong>

3、测试是否正常访问

<span style="font-size:18px;">[root@test media]# curl http://192.168.52.254/kbsonlong <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://192.168.52.254/kbsonlong/">here</a>.</p>
<hr>
<address>Apache/2.2.15 (Red Hat) Server at 192.168.52.254 Port 80</address>
</body></html>
[root@test media]#</span><strong style="font-size:24px;">
</strong>
至此Yum源仓库搭建完成。

三、搭建DNS服务器

1、安装bind服务

<span style="font-size:18px;">[root@test update]# yum -y install bind bind-chroot bind-util bind-libs</span>


2、修改配置文件

1)修改/etc/named.conf配置文件

<span style="font-size:18px;">[root@test ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory 	"/var/named";
dump-file 	"/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query     { any; };
recursion yes;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";</span>


2)修改主配置文件(/etc/named.rfc1912.zones),添加正反向区域

[root@test ~]# cat /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};

//kbsonlong.com的正向区域
zone "kbsonlong.com" IN {
type master;
file "named.kbsonlong.com";
allow-update { none; };
};
//realhostip.com的反向区域
zone "52.168.192.in-addr.arpa" IN {
type master;
file "192.168.52.arpa";
allow-update { none; };
};


3) 创建正向和反向区域资源文件

[root@test ~]# cd /var/named/
[root@test named]# cat named.kbsonlong.com
$TTL 1D
@       IN SOA  realhostip.com. rname.invalid. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      @
A       127.0.0.1
AAAA    ::1
gluster01 	IN 	A  192.168.52.12
gluster02 	IN 	A  192.168.52.13
loadbalance01 	IN      A  192.168.52.10
loadbalance02 	IN      A  192.168.52.11
web01 		IN      A  192.168.52.14
web02 		IN      A  192.168.52.15
db01 		IN      A  192.168.52.16
db02		IN      A  192.168.52.17

[root@test named]# cat 192.168.52.arpa
$TTL 1D
@       IN SOA  realhostip.com. rname.invalid. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      @
AAAA    ::1
12      PTR     gluster01.kbsonlong.com.
13      PTR     gluster02.kbsonlong.com.

10 PTR loadbalance01.kbsonlong.com.
11 PTR loadbalance02.kbsonlong.com.
14 PTR web01.kbsonlong.com.
15 PTR web02.kbsonlong.com.
16 PTR db01.kbsonlong.com.
17 PTR db02.kbsonlong.com.


3、安装DNS客户端,并配置DNS地址测试

1)客户端安装bind-utils软件,以便能使用nslookup dig和host工具

[root@Gluster01 ~]# yum install bind-utils –y
[root@Gluster01 ~]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search localdomain
nameserver 8.8.8.8
nameserver 192.168.52.254

2)正向解析测试,使用nslookup命令

[root@Gluster01 ~]# nslookup
> gluster01.kbsonlong.com
Server:		192.168.52.254
Address:	192.168.52.254#53

Name:	gluster01.kbsonlong.com
Address: 192.168.52.12
> gluster02.kbsonlong.com
Server:		192.168.52.254
Address:	192.168.52.254#53

Name:	gluster02.kbsonlong.com
Address: 192.168.52.13
> web01.kbsonlong.com
Server:		192.168.52.254
Address:	192.168.52.254#53

Name:	web01.kbsonlong.com
Address: 192.168.52.14
>


3)反向解析

[root@Gluster01 ~]# nslookup
> 192.168.52.15
Server:		192.168.52.254
Address:	192.168.52.254#53

15.52.168.192.in-addr.arpa	name = web02.kbsonlong.com.
> 192.168.52.16
Server:		192.168.52.254
Address:	192.168.52.254#53

16.52.168.192.in-addr.arpa	name = db01.kbsonlong.com.
> 192.168.52.17
Server:		192.168.52.254
Address:	192.168.52.254#53

17.52.168.192.in-addr.arpa	name = db02.kbsonlong.com.
> 192.168.52.10
Server:		192.168.52.254
Address:	192.168.52.254#53

10.52.168.192.in-addr.arpa	name = loadbalance01.kbsonlong.com.
> 192.168.52.11
Server:		192.168.52.254
Address:	192.168.52.254#53

11.52.168.192.in-addr.arpa	name = loadbalance02.kbsonlong.com.
>


4) 使用ping命令测试,解析正常

[root@Gluster01 ~]# ping -c 5 gluster01.kbsonlong.com
PING gluster01.kbsonlong.com (192.168.52.12) 56(84) bytes of data.
64 bytes from gluster01.kbsonlong.com (192.168.52.12): icmp_seq=1 ttl=64 time=0.018 ms
64 bytes from gluster01.kbsonlong.com (192.168.52.12): icmp_seq=2 ttl=64 time=0.015 ms
64 bytes from gluster01.kbsonlong.com (192.168.52.12): icmp_seq=3 ttl=64 time=0.029 ms
64 bytes from gluster01.kbsonlong.com (192.168.52.12): icmp_seq=4 ttl=64 time=0.028 ms
64 bytes from gluster01.kbsonlong.com (192.168.52.12): icmp_seq=5 ttl=64 time=0.037 ms

--- gluster01.kbsonlong.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 8007ms
rtt min/avg/max/mdev = 0.015/0.025/0.037/0.009 ms
[root@Gluster01 ~]#


四、搭建Glusterfs分布式文件系统

1、配置yum源

(配置yum这一步在每一台服务器均操作,方便安装应用软件)

# vi /etc/yum.repos.d/rhel-debuginfo.repo
[rhel_6_iso]
name=local iso
baseurl=http://192.168.52.254/kbsonlong/media/
gpgcheck=1
gpgkey=http://192.168.52.254/kbsonlong/media/RPM-GPG-KEY-redhat-release

[HighAvailability]
name=HighAvailability
baseurl=http://192.168.52.254/kbsonlong/media/HighAvailability
gpgcheck=1
gpgkey=http://192.168.52.254/kbsonlong/media/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=LoadBalancer
baseurl=http://192.168.52.254/kbsonlong/media/LoadBalancer
gpgcheck=1
gpgkey=http://192.168.52.254/kbsonlong/media/RPM-GPG-KEY-redhat-release

[ResilientStorage]
name=ResilientStorage
baseurl=http://192.168.52.254/kbsonlong/media/ResilientStorage
gpgcheck=1
gpgkey=http://192.168.52.254/kbsonlong/media/RPM-GPG-KEY-redhat-release

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://192.168.52.254/kbsonlong/media/ScalableFileSystem
gpgcheck=1
gpgkey=http://192.168.52.254/kbsonlong/media/RPM-GPG-KEY-redhat-release

[GlusterFS]
name=GlusterFS
baseurl=http://192.168.52.254/kbsonlong/gluster
gpgcheck=0


注:以下两个步骤在Gluster01、02均需执行

2、安装Glusterfs分布式系统

# yum install glusterfs-{fuse,server} -y

3、启动Glusterfs

# service glusterd start

以下操作在任意一台Gluster服务器上操作即可

4、添加Gluster节点,并创建Vol

# gluster peer probe 192.168.52.13 ----(可以是hostname,也可以是ip地址)

#gluster vol create vol_web01 repice 2 \
192.168.52.12:/app/kbson/bricke01 192.168.52.13:/app/kbson/bricke01

5、启动Vol,测试挂载

# gluster vol start vol_web01

# mount –t glusterfs 192.168.52.12:vol_web01 /mnt


五、搭建Web服务

1、安装http服务

# yum install httpd -y

2、修改配置文件,并启动服务

# service httpd start

六、搭建负载均衡服务器

1、 安装ipvsadm、keepalived服务

<span style="white-space:pre"> </span># yum install ipvsadm keepalived -y

2、修改keepalived配置文件

2.1、主节点配置

[root@Loadbalance-01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
notification_email {
591692322@qq.com #设置报警邮箱,一般不再这做,而是用其他方式报警。
}
notification_email_from keepalived@localhost #设定发送邮件地址
smtp_server 127.0.0.1 #设定发送邮件服务器
smtp_connect_timeout 30 #设定SMTP连接超时时间
router_id LVS_DEVEL #查阅说明文档得知route_id配置是为了标识当前节点,我将其设置为NodeA。当然两个节点的此项设置可相同,也可不相同。
}

vrrp_instance VI_1 { #定义虚拟路由实例,不同实例ID不同。
state MASTER #定义服务器在keepalived中的角色主服务器
interface eth1 #定义进行检测的端口eth0
virtual_router_id 51 #定义虚拟路由ID,同一个实例的主从一样。
priority 100 #定义在虚拟路由器组的权限,越大越高
advert_int 1 #定义检测时间间隔
authentication { #定义认证方式密码,主从必须一样
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #指定虚拟IP地址
192.168.52.100
}
}
virtual_server 192.168.52.100 80 { #定义虚拟服务,需指定IP地址和端口,空格隔开。
delay_loop 6 #定义RS运行情况监测时间间隔
lb_algo lblc #定义负载调度算法
lb_kind DR #定义LVS的工作模式
nat_mask 255.255.255.0 #定义虚拟服务的mask
persistence_timeout 50 #定义会话保持时间,S为单位
protocol TCP #指定转发协议
real_server 192.168.52.14 80 { #定义真实服务器IP地址和端口
weight 1 #定义RS的权重
TCP_CHECK{ #RS server健康检查部分
connect_timeout 10 #定义超出10s连接超时
nb_get_retry 3 #定义重试次数
delay_before_retry 3 #定义重试时间间隔
connect_port 80 #定义健康检查端口
}
real_server 192.168.52.15 80 {
weight 1
TCP_CHECK{
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
[root@Loadbalance-01 ~]#

2.2、Backup节点配置

[root@Loadbalance-02 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
notification_email {
592692322@qq.com #设置报警邮箱,一般不再这做,而是用其他方式报警。
}
notification_email_from keepalived@localhost #设定发送邮件地址
smtp_server 127.0.0.1 #设定发送邮件服务器
smtp_connect_timeout 30 #设定SMTP连接超时时间
router_id LVS_DEVEL #查阅说明文档得知route_id配置是为了标识当前节点,我将其设置为NodeA。当然两个节点的此项设置可相同,也可不相同。
}

vrrp_instance VI_1 { #定义虚拟路由实例,不同实例ID不同。
state BACKUP #定义服务器在keepalived中的角色备服务器
interface eth1 #定义进行检测的端口eth0
virtual_router_id 51 #定义虚拟路由ID,同一个实例的主从一样。
priority 50 #定义在虚拟路由器组的权限,越大越高
advert_int 1 #定义检测时间间隔
authentication { #定义认证方式密码,主从必须一样
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #指定虚拟IP地址
192.168.52.100
}
}
virtual_server 192.168.52.100 80 { #定义虚拟服务,需指定IP地址和端口,空格隔开。
delay_loop 6 #定义RS运行情况监测时间间隔
lb_algo lblc #定义负载调度算法
lb_kind DR #定义LVS的工作模式
nat_mask 255.255.255.0 #定义虚拟服务的mask
persistence_timeout 50 #定义会话保持时间,S为单位
protocol TCP #指定转发协议
real_server 192.168.52.14 80 { #定义真实服务器IP地址和端口
weight 1 #定义RS的权重
TCP_CHECK{ #RS server健康检查部分
connect_timeout 10 #定义超出10s连接超时
nb_get_retry 3 #定义重试次数
delay_before_retry 3 #定义重试时间间隔
connect_port 80 #定义健康检查端口
}
real_server 192.168.52.15 80 {
weight 1
TCP_CHECK{
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
[root@Loadbalance-02 ~]#

2.3、客户端配置脚本(即Web01、Web02)

# cat lvs-client.sh
#!/bin/bash
# 591692322@qq.com
#
. /etc/rc.d/init.d/functions
VIP=(
192.168.52.100
)
function start(){
for ((i=0;i<`echo ${#VIP[*]}`;i++))
do
echo ${i} ${VIP[$i]}
ifconfig lo:${i} ${VIP[$i]} netmask 255.255.255.255 up
route add -host ${VIP[$i]} dev lo
done
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_announce
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
}
function stop(){
for ((i=0;i<${#VIP[*]};i++))
do
echo ${i} ${VIP[$i]}
ifconfig lo:${i} ${VIP[$i]} netmask 255.255.255.255 up
route del -host ${VIP[$i]} dev lo:${i}
done
}
case "$1" in
start)
start
exit
;;
stop)
stop
exit
;;
*)
echo "You must use $0:stop|start"
;;
Esac


七、搭建Mysql集群服务

1、检查安装环境

[root@master ~]# cmake --version
cmake version 3.3.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).
[root@master ~]# java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
[root@master ~]#
注:cmake、jdk必须安装,不然后面无法编译源码安装,但是版本不作要求。

[root@DB02 ~]# rpm -qa|grep ncurses-devel 没有安装会提示curses lib库不存在

2、下载安装包

# wget http://cdn.mysql.com//Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.8.tar.gz

3、安装DB01节点

1) 创建mysql软件存放目录

# mkdir /opt/mysql

2) 编译安装mysql

# tar zxvf mysql-cluster-gpl-7.4.8.tar.gz
# cd mysql-cluster-gpl-7.4.8
# cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql \
-DSYSCONFDIR=/opt/mysql/etc \
-DMYSQL_DATADIR=/opt/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_SSL=bundled \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_NDB_JAVA=1 \
-DWITH_NDBCLUSTER_STORAGE_ENGINE=1
# make&& make install

3) 创建用户,修改文件属性

groupadd mysql
useradd -m -r -g mysql mysql
# cd /opt/mysql
# chown -R mysql.mysql /opt/mysql
# chgrp -R mysql /opt/mysql


4)初始化数据库

# scripts/mysql_install_db --user=mysql --basedir=/opt/mysql/ --datadir=/opt/mysql/data


5)配置数据库

# cp support-files/mysql.server /etc/init.d/mysql
# cp support-files/my-default.cnf  /etc/my.cnf

设置环境变量
vi /etc/profile    --在最后添加如下内容
PATH=/opt/mysql/bin:/opt/mysql/lib:$PATH
export PATH

启动数据库,并修改密码
# service mysql start
# mysqladmin -u root password 'mysql'


6)修改数据库配置文件

[root@DB01 ~]# more /etc/my.cnf |grep -v ^#
[mysqld]
lower_case_table_names=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
socket=/tmp/mysqld.sock
ndbcluster #run NDB storage engine
[mysql_cluster] #配置管理节点
ndb-connectstring=192.168.52.16


7)修改管理节点配置文件

[root@DB01 ~]# more /opt/mysql/etc/config.cnf
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=1 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[tcp default]
# TCP/IP options:
portnumber=2202 # This the default; however, you can use any
# port that is free for all the hosts in the cluster
# Note: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used
# instead
[ndb_mgmd]
# Management process options:
Nodeid=1
hostname=192.168.52.16 # Hostname or IP address of MGM node
datadir=/opt/mysql/log # Directory for MGM node log files
[ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
[root@DB01 ~]# more /opt/mysql/etc/config.cnf |grep -v ^#
[ndbd default]
NoOfReplicas=1 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[tcp default]
portnumber=2202 # This the default; however, you can use any
# port that is free for all the hosts in the cluster
# Note: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used
# instead
[ndb_mgmd]
Nodeid=1 #管理节点
hostname=192.168.52.16 # Hostname or IP address of MGM node
datadir=/opt/mysql/log # Directory for MGM node log files
[ndbd] #数据节点
hostname=192.168.52.16 # Hostname or IP address
datadir=/data/mysql_ndb # Directory for this data node's data files
[ndbd]
hostname=192.168.52.17 # Hostname or IP address
datadir=/data/mysql_ndb # Directory for this data node's data files
[mysqld] #SQL节点
hostname=192.168.52.16 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
[mysqld]
hostname=192.168.52.17

4、安装DB02节点

1) 打包DB01节点mysql软件

--关闭mysql服务
# service mysql.server stop
Shutting down MySQL..... SUCCESS!
# cd /opt
# tar -czvf mysql.tar mysql


2)创建用户并拷贝DB01节点mysql软件

groupadd mysql
useradd -m -r -g mysql mysql
# scp 192.168.52.16:/opt/mysql.tar /opt/
The authenticity of host '192.168.52.16 (192.168.52.10)' can't be established.
RSA key fingerprint is 68:9c:59:fd:c6:71:8a:ce:f3:06:e5:13:48:5a:55:fb.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.52.16' (RSA) to the list of known hosts.
root@192.168.52.16's password:

3)解压mysql.tar包

# tar -xzvf mysql.tar –C /opt/mysql

4)配置数据库

# cp support-files/mysql.server /etc/init.d/mysql
设置环境变量:
在/etc/profile文件最后增加:
PATH=/opt/mysql/bin:/opt/mysql/lib:$PATH
export PATH

5)修改数据库配置文件

[root@DB02 ~]# more /etc/my.cnf
[mysqld]
ndbcluster #run NDB storage engine
[mysql_cluster]
ndb-connectstring=192.168.52.16
[root@DB02 ~]#


5、Mysql Cluster集群启动

1)启动master管理节点

[root@DB01 etc]# /opt/mysql/bin/ndb_mgmd -f /opt/mysql/etc/config.cnf
MySQL Cluster Management Server mysql-5.6.27 ndb-7.4.8


2)启动数据节点(Data Node)

[root@DB01 ~]# ndbd
2015-12-08 03:54:45 [ndbd] INFO -- Angel connected to '192.168.52.16:1186'
2015-12-08 03:54:45 [ndbd] INFO -- Angel allocated nodeid: 2
[root@DB02 ~]# ndbd
2015-12-08 03:55:23 [ndbd] INFO -- Angel connected to '192.168.52.16:1186'
2015-12-08 03:55:23 [ndbd] INFO -- Angel allocated nodeid: 3


3)启动Sql节点

# service mysql start

4)使用ndb_mgm工具管理

[root@DB01 ~]# /opt/mysql/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 192.168.52.16:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.52.16 (mysql-5.6.27 ndb-7.4.8, Nodegroup: 0, *)
id=3 @192.168.52.17 (mysql-5.6.27 ndb-7.4.8, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.52.16 (mysql-5.6.27 ndb-7.4.8)

[mysqld(API)] 2 node(s)
id=4 @192.168.52.16 (mysql-5.6.27 ndb-7.4.8)
id=5 @192.168.52.17 (mysql-5.6.27 ndb-7.4.8)

ndb_mgm>

由上面信息可以看到2个NDB数据节点,1个MGM管理节点,2个SQL节点都已经正常连接

5)停止DB01服务器mysql服务,查看连接情况

[root@DB01 ~]# service mysql stop
Shutting down MySQL.... SUCCESS!
[root@DB01 ~]# /opt/mysql/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.52.16 (mysql-5.6.27 ndb-7.4.8, Nodegroup: 0, *)
id=3 @192.168.52.17 (mysql-5.6.27 ndb-7.4.8, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.52.16 (mysql-5.6.27 ndb-7.4.8)

[mysqld(API)] 2 node(s)
<span style="color:#ff0000;">id=4 (not connected, accepting connect from 192.168.52.16)</span>
id=5 @192.168.52.17 (mysql-5.6.27 ndb-7.4.8)
由上面信息可以看到id=4的SQL节点没有连接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: