MySQL 実践操作 (4) - Haproxy+keeplived を使用して Mycat の高可用性を実現する

 MySQL実践シリーズ


目次

全体構造

目標

環境整備

環境設定

1.Haproxyインストールのインストールと設定

1.1 Haproxyのインストール

1.2 haproxy設定ファイルを変更する

1.3 ハプロキシを開始する

 1.4 ハプロキシテスト

 2. Keepalived のインストールと構成

 2.1 キープアライブのインストール

2.2 Keepalived 設定ファイルの変更

2.3 キープアライブの開始

3. Haproxy+Keepalived クラスターの別のサーバーをセットアップします

4.Haproxy+Keepalived統合テスト

方法 1: VIP テストを使用して Haproxy の Web インターフェイスにログインする

方法 2: テストのために Mysql サーバー上の Mycat にログインします。

方法 3: SQL 管理ツールを使用してテストする


全体構造

目標

  • MySQL マスター/スレーブ レプリケーション クラスターを構築する
  • 2 つの Mycat をインストールし、サブデータベースとテーブル + 読み取り/書き込み分離を構成する
  • haproxy を使用して 2 つの mycat サービスの高可用性を実現する

環境整備

環境設定

次の操作は haproxy01:192.168.237.140 で実行されます。

Haproxy+Keepalived 全体設定ファイルのダウンロード アドレス: Haproxy +Keepalived 設定ファイル (コメント付き)-Linux ドキュメント リソース-CSDN ダウンロード

1.Haproxyインストールのインストールと設定

1.1 Haproxyのインストール

yum を使用して haproxy をインストールする

#查看yum可用的haproxy版本
yum list|grep haproxy
#在线安装使用yum安装haproxy
yum -y install haproxy.x86_64

1.2 haproxy設定ファイルを変更する

インストール完了後の設定ファイルのパス: /etc/haproxy/haproxy.cfg 

Haproxy 設定ファイルのダウンロードアドレス: Haproxy 設定ファイル haproxy.cnf (コメント付き)-CentOS ドキュメントリソース-CSDN ダウンロード

vim /etc/haproxy/haproxy.cfg

主な変更点は以下の通りです


frontend  mycat
#操作端口
bind 0.0.0.0:8066
#管理端口
bind 0.0.0.0:9066
mode tcp
log global
default_backend mycat_server

backend mycat_server
    balance     roundrobin
	#check表示检查
    server   mycat1   192.168.237.134:8066 check inter 5s rise 2 fall 3
    server   mycat2   192.168.237.137:8066 check inter 5s rise 2 fall 3
    server   mycatadmin1   192.168.237.134:9066 check inter 5s rise 2 fall 3
    server   mycatadmin2   192.168.237.137:9066 check inter 5s rise 2 fall 3	
	
listen stats
#访问模式
mode http
#haproxy对外开发的端口
bind 0.0.0.0:5000
stats enable
#隐藏版本
stats hide-version
#通过web界面访问haproxy的路径
stats uri /haproxy
#静态资源
stats realm Haproxy\ Statistics
#通过web界面访问haproxy的用户名密码
stats auth admin:admin
#通过web界面访问haproxy后身份为admin管理员
stats admin if TRUE

1.3 ハプロキシを開始する

注: haproxy を開始する前に、仮想マシンの時刻がローカル マシンと同期していない場合は、起動時にエラーが報告されます。次のコマンドを実行すると、時刻を同期せずにこの問題を解決できます。

setenforce 0

 haproxy 関連のコマンド:

#启动
systemctl start haproxy
#停止
systemctl stop haproxy
#查看状态
systemctl status haproxy
#重启
systemctl restart haproxy

 1.4 ハプロキシテスト

ブラウザで haproxy に設定された Web インターフェイスにアクセスし、設定されたユーザー名とパスワード admin/admin を入力してログインします。

mycat_serverのステータスがすべて稼働して いれば、構成は成功しています。

 2. Keepalived のインストールと構成

 2.1 キープアライブのインストール

yum を使用して Keepalived をインストールします。

#查看yum可用的keepalived版本
yum list|grep keepalived
#在线安装使用yum安装keepalived
yum -y install  keepalived.x86_64

2.2 Keepalived 設定ファイルの変更

インストール完了後の設定ファイルのパス: /etc/keepalived/keepalived.cfg 

Keeplived 設定ファイルのダウンロード アドレス: keeplived 設定ファイル keepalived.cnf (コメント付き)-Linux ドキュメント リソース-CSDN ダウンロード

vim /etc/keepalived/keepalived.cfg

修正内容は以下の通りです

global_defs {  
    router_id NodeA 		#当前节点名称 
}
vrrp_instance VI_1 {  
    state MASTER   			#设置主服务器
    interface ens33			#系统的网卡名字(centos6为eth0,centos7位eth33)
    virtual_router_id 10    #多个保持心跳的keepalived节点要设置同一个router_id
    priority 100  			#权重,权重数字越大,权重越大:即表示VIP访问权重最大的
    advert_int 1  

    authentication {       
		auth_type PASS  	#通过PASS认证(密码认证)
		auth_pass 123456   	#多个保持心跳的keepalived节点要设置同一个auth_pass
	}  
	virtual_ipaddress {     #虚拟IP地址,可设置多个
		  192.168.237.255/24  #对外暴露的IP地址,24是网络位数(可省略)
		  192.168.237.254/24
	}
	track_script{			#自定义追踪脚本
		chk_haproxy			#追踪haproxy
	}
}
vrrp_script chk_haproxy {	#定义的方法名
        script "/etc/keepalived/check_haproxy.sh"
        interval 4			#追踪频率
        weight 3			#追踪权重
}

/etc/keepalived配下に新しいcheck_haproxy.shスクリプトを作成します スクリプトの内容は以下の通りです

#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
systemctl start haproxy.service
fi

2.3 キープアライブの開始

 キープアライブ関連のコマンド:

#启动
systemctl start keepalived
#停止
systemctl stop keepalived
#查看状态
systemctl status keepalived
#重启
systemctl restart keepalived

 正常に起動すると、以下のようになります。つまり、現在有効な VIP は 192.168.237.254 です。

3. Haproxy+Keepalived クラスターの別のサーバーをセットアップします

具体的な操作手順は手順 1 および 2 と同じですが、Keepalived 設定ファイルを変更し、router_id と priority を変更する必要があり、その他の操作は haproxy01:192.168.237.140 と同じです。

Keepalivedの設定ファイルは以下のとおりです。

global_defs {  
    router_id NodeB 		#当前节点名称 
}
vrrp_instance VI_1 {  
    state MASTER   			#设置主服务器
    interface ens33			#系统的网卡名字(centos6为eth0,centos7位eth33)
    virtual_router_id 10    #多个保持心跳的keepalived节点要设置同一个router_id
    priority 90  			#权重,权重数字越大,权重越大:即表示VIP访问权重最大的
    advert_int 1  

    authentication {       
		auth_type PASS  	#通过PASS认证(密码认证)
		auth_pass 123456   	#多个保持心跳的keepalived节点要设置同一个auth_pass
	}  
	virtual_ipaddress {     #虚拟IP地址,可设置多个
		  192.168.237.255/24  #对外暴露的IP地址,24是网络位数(可省略)
		  192.168.237.254/24
	}
	track_script{			#自定义追踪脚本
		chk_haproxy			#追踪haproxy
	}
}
vrrp_script chk_haproxy {	#定义的方法名
        script "/etc/keepalived/check_haproxy.sh"
        interval 4			#追踪频率
        weight 3			#追踪权重
}

4.Haproxy+Keepalived統合テスト

方法 1: VIP テストを使用して Haproxy の Web インターフェイスにログインする

http://192.168.237.254:5000/haproxyにログインします。

方法 2: テストのために Mysql サーバー上の Mycat にログインします。

注: Haproxy+Keepalived サーバーで直接テストできない理由は、現在のサーバーに Mysql がインストールされておらず、mysql などのコマンドを実行できないためです。

仮想 IP (VIP) を使用して mycat にログインして操作します

#登录Mycat
#    -u 登录名 用户名和密码为在mycat的server.xml中配置的name和password
#    -p 密码
#    -h Keepalived配置的虚拟IP
#    -P Mycat端口号,默认8066
mysql -uroot -p123456 -h192.168.237.254 -P8066;


 サブデータベース、サブテーブルの検証機能はmycatと同様です。

方法 3: SQL 管理ツールを使用してテストする

navicat を例として、navicat で新しい Mysql 接続を作成します。ホストは VIP サーバー IP、ポート番号は Mycat の 8066、ユーザー名とパスワードは Mycat のserver.xml で構成された名前とパスワード、その他はテスト内容は同じです。

おすすめ

転載: blog.csdn.net/DreamEhome/article/details/128682812
おすすめ