whitek 发表于 2019-1-4 07:02:22

lvs实验1

  环境:
  1台客户端(192.168.65.100),2台apache(192.168.66.102,192.168.66.103),2台lvs(192.168.65.101,192.168.65.104,vip1:192.168.66.200,vip2:192.168.66.201),3台mysql(192.168.66.105(主),192.168.66.106,192.168.66.107),1台路由(192.168.65.101,192.168.66.100),实现mysql读写分离及a-b-b模式,通过dr模式实现负载,拓扑图如下:
http://blog.运维网.com/attachment/201212/220138553.jpg
  客户端:
  route add default gw 192.168.65.101
  路由:
  echo 1 > /proc/sys/net/ipv4/ip_froword
  分发器1:
  yum install ipvsadm -y
  ifconfig eth0:0 192.168.66.200 netmask 255.255.255.255 broadcast 192.168.66.200 up
  ipvsadm -A -t 192.168.66.200:80 -s rr
  ipvsadm -a -t 192.168.66.200:80 -r 192.168.66.102 -g
  ipvsadm -a -t 192.168.66.200:80 -r 192.168.66.103 -g
  apache1:
  yum install httpd php* -y
  ifconfig lo:0 192.168.66.200 netmask 255.255.255.255 broadcast 192.168.66.200 up
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  route add -host 192.168.66.200 dev lo:0
  route add default gw 192.168.66.100
  apache2:
  yum install httpd php* -y
  ifconfig lo:0 192.168.66.200 netmask 255.255.255.255 broadcast 192.168.66.200 up
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  route add -host 192.168.66.200 dev lo:0
  route add default gw 192.168.66.100
  分发器2:
  yum install ipvsadm -y
  ifconfig eth0:0 192.168.66.201 netmask 255.255.255.255 broadcast 192.168.66.201 up
  ipvsadm -A -t 192.168.66.201:3306 -s rr
  ipvsadm -a -t 192.168.66.201:3306 -r 192.168.66.106 -g
  ipvsadm -a -t 192.168.66.201:3306 -r 192.168.66.107 -g
  mysql主:
  yum install mysql
  vim /etc/my.cnf
  server_id=1
  log-bin=binlog
  grant replication slave on *.* to 'ls'@'%' identified by '123';
  flush privileges;
  grant all on *.* to 'hello'@'%' identified by '123';
  mysql2:
  ifconfig lo:0 192.168.66.201 netmask 255.255.255.255 broadcast 192.168.66.201 up
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  route add -host 192.168.66.201 dev lo:0
  route add default gw 192.168.66.100
  yum install mysql
  vim /etc/my.cnf
  server_id=2
  relay_log=/var/lib/mysql/mysql-relay-bin
  relay_log_index=/var/lib/mysql/mysql-relay-bin.index
  grant all on *.* to 'who'@'%' identified by '123';
  change master to master_host='192.168.66.105',master_port=3306,master_user='ls',master_password='123',master_log_file='binlog.000001',master_log_pos=294;
  start slave;
  mysql3:
  ifconfig lo:0 192.168.66.201 netmask 255.255.255.255 broadcast 192.168.66.201 up
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  route add -host 192.168.66.201 dev lo:0
  route add default gw 192.168.66.100
  yum install mysql
  vim /etc/my.cnf
  server_id=3
  relay_log=/var/lib/mysql/mysql-relay-bin
  relay_log_index=/var/lib/mysql/mysql-relay-bin.index
  grant all on *.* to 'who'@'%' identified by '123';
  change master tomaster_host='192.168.66.105',master_port=3306,master_user='ls',master_password='123',master_log_file='binlog.000001',master_log_pos=294;
  start slave;
  至此所有服务器的配置完成。mysql的读写分离本人使用的是一个程序实现的,配置简单,在这里我就不做说明了,另外也可有使用mysql提供的一个插件(mysql-proxy插件可以实现读写分离和mysql主服务器的负载,以减少mysql主服务器的压力),经过本人的测试结果,当使用create,insert语句的时候,在第二个分发器上使用ipvsadm -lnc命令查看没有任何的连接请求,当使用select语句的时候,第二个分发器上才会有lvs记录生成,在第一个分发器上同样使用ipvsadm -lnc命令可以查看的lvs的记录,因为此拓扑使用的是rr模式,看到的结果是一个是apache1连接数据库,另一个就是apache2连接数据库,在此我就不上传测试图片了,此拓扑也是有不足的地方,就是存在单点故障以及其他的问题,之后我将再次更新一份比较全面的拓扑以及详细配置。



页: [1]
查看完整版本: lvs实验1