MySQL実践シリーズ
- MySQL実践操作(1) - CentOS7 MySQL5.7のインストールと基本構成_DreamEhomeのブログ - CSDNブログ_centos7構成テーブル名にmysql5.7をインストールすると大文字小文字が区別される
- MySQL 実践操作 (2) - MySQL マスタースレーブ同期実践 Combat_DreamEhome's Blog-CSDN Blog
- MySQL実践操作(3) - Mycatを使ってサブデータベースとテーブルの実装+読み書き分離_DreamEhomeのブログ - CSDNブログ
- MySQL 実践操作 (4) - Haproxy+keeplived を使用して Mycat の高可用性を実現_DreamEhome のブログ - CSDN ブログ
目次
3. Haproxy+Keepalived クラスターの別のサーバーをセットアップします
方法 1: VIP テストを使用して Haproxy の Web インターフェイスにログインする
方法 2: テストのために Mysql サーバー上の Mycat にログインします。
全体構造
目標
- MySQL マスター/スレーブ レプリケーション クラスターを構築する
- 2 つの Mycat をインストールし、サブデータベースとテーブル + 読み取り/書き込み分離を構成する
- haproxy を使用して 2 つの mycat サービスの高可用性を実現する
環境整備
- 6 台の仮想マシン (デモンストレーションには CentOS7 を使用、そのうち 2 台は MySQL マスターとスレーブ、2 台の Mycat サーバー、2 台の haproxy+keepalived サーバー、すべてのサーバーでリモート アクセス機能を有効にする必要があります)
- 2 台の MySQL 仮想マシンがインストールされ、設定されています ( MySQL の実践操作 (1) - CentOS7 MySQL 5.7 のインストールと基本構成 (ブート起動 + 初期パスワード変更 + リモート アクセスの有効化 + 大文字と小文字の区別を除く) を参照してください)_DreamEhome のブログ - CSDN ブログ_centos7 インストール mysql5 .7 構成テーブル名は大文字と小文字を区別しません)
- 2台のMySQLをセットアップしてマスター・スレーブレプリケーションを完了します(MySQL実践操作(2) - MySQLマスター・スレーブ同期実践_DreamEhomeのブログ・CSDNブログを参照、IPとマスター・スレーブ構成は参考と同じです)
- 2 台の Mycat サーバーは、MySQL のマスター/スレーブ サブデータベースとテーブル + 読み書き分離を完了するように構成されています (MySQL実践操作 (3) - Mycat を使用してサブデータベースとテーブル + 読み書き分離を実装する_DreamEhome のブログ-CSDN を参照してください)ブログ)
- サーバー計画
サーバー\サービス MySQL 私の猫 ハプロキシ キープアライブ 192.168.237.135 デプロイメント(メイン) 192.168.237.136 デプロイ(から) 192.168.237.134 展開する 192.168.237.137 展開する 192.168.237.140 展開する 展開する 192.168.237.141 展開する 展開する
環境設定
次の操作は 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 で構成された名前とパスワード、その他はテスト内容は同じです。