<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevOps技术分享 &#187; Load balance</title>
	<atom:link href="http://www.showerlee.com/archives/category/loadbalance/feed" rel="self" type="application/rss+xml" />
	<link>http://www.showerlee.com</link>
	<description>与你共同学习运维开发</description>
	<lastBuildDate>Mon, 19 Oct 2020 05:51:41 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>CENTOS6.3利用Keepalived构建双主MySQL+双机热备</title>
		<link>http://www.showerlee.com/archives/702</link>
		<comments>http://www.showerlee.com/archives/702#comments</comments>
		<pubDate>Tue, 27 Aug 2013 17:15:43 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Load balance]]></category>
		<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=702</guid>
		<description><![CDATA[之前的博文介绍了如何配置MYSQL双主互备. 见http://www.showerlee.com/archiv [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">之前的博文介绍了如何配置<a href="http://www.showerlee.com/archives/tag/mysql" title="查看MYSQL中的全部文章" class="tag_link">MYSQL</a>双主互备.</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">见</span><span style="font-size:14px;font-family:Arial;color:#666666;"><span style="color:#666666;font-family:SimSun;"><a href="http://www.showerlee.com/archives/698" target="_blank">http://www.showerlee.com/archives/698</a></span></span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;">这里介绍如何配合前者实现Keepalived双机热备</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境：CentOS 6.3 x64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MySQL版本：mysql-5.6.10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Keepalived版本：keepalived-1.2.7
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MySQL-VIP：192.168.7.253
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MySQL-master1：192.168.7.201
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MySQL-master2：192.168.7.249
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	首先关闭iptables和SELINUX
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service iptables stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# setenforce 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysconfig/selinux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SELINUX=disabled
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注: 若线上需要开启iptables,需加一条规则使keepalived的vrrp通行</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"># iptables -A INPUT -p vrrp -j ACCEPT</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.在MySQL-master1：192.168.7.201服务器上keepalived安装及配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	编译安装，实际以本机kernel版本为准
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://www.keepalived.org/software/keepalived-1.2.7.tar.gz" rel="nofollow">http://www.keepalived.org/software/keepalived-1.2.7.tar.gz</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar zxvf keepalived-1.2.7.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd keepalived-1.2.7
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make &amp;&amp; make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	设置keepalived开机启动脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig keepalived on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	新建一个配置文件，默认keepalived启动会去/etc/keepalived目录下寻找配置文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir /etc/keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/keepalived/keepalived.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	global_defs {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	notification_email {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="mailto:lzyangel@126.com">lzyangel@126.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#当主、备份设备发生改变时，通过邮件通知
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	notification_email_from <a href="mailto:lzyangel@126.com">lzyangel@126.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	smtp_server stmp.126.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	smtp_connect_timeout 30
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	router_id MySQL-ha
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	vrrp_instance VI_1{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 在初始化状态下定义为主设备
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	state BACKUP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 注意网卡接口
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	interface eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_router_id 51
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 优先级，另一台改为90
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	priority 100
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	advert_int 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 不主动抢占资源
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	nopreempt
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	authentication {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 认证方式，可以是PASS或AH两种认证方式
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_type PASS
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 认证密码
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_pass 1111
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_ipaddress {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 虚拟IP地址，随着state的变化而增加删除
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.253
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_server 192.168.7.253 3306 {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 每个2秒检查一次real_server状态
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	delay_loop 2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# LVS算法
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	lb_algo wrr
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# LVS模式
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	lb_kind DR
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 会话保持时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	persistence_timeout 60
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	protocol TCP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	real_server 192.168.7.201 3306 {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 权重
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	weight 3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 检测到服务down后执行的脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	notify_down /etc/rc.d/keepalived.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	TCP_CHECK {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 连接超时时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	connect_timeout 10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 重连次数
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	nb_get_retry 3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 重连间隔时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	delay_before_retry 3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 健康检查端口
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	connect_port 3306
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	编写检测服务down后所要执行的脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/keepalived.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/etc/init.d/keepalived stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chmod +x /etc/rc.d/keepalived.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：此脚本是上面配置文件notify_down选项所用到的，keepalived使用notify_down选项来检查real_server的服务状态。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">当发现real_server服务故障时，便触发此脚本.</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">我们可以看到，脚本就一个命令:</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">通过pkill keepalived强制杀死keepalived进程，从而实现了MySQL故障自动转移.</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">另外，我们不用担心两个MySQL会同时提供数据更新操作，因为每台MySQL上的keepalived的配置里面只有本机MySQL的IP+VIP，而不是两台MySQL的IP+VIP.</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">以上脚本是为了在测试环境实现VIP切换功能，生产环境建议使用如下脚本</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 环境变量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 暂停5秒执行，防止数据库人工正常重启
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	sleep 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql_id(存活=1 死掉=0)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql_id=`ps -C mysqld --noheader |wc -l`
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 判断mysql_id若死掉，则重启mysql一次，若仍然无法启动mysql则杀掉keepaliaved进程实现VIP切换
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if [ $mysql_id -eq 0 ];then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/etc/init.d/mysqld restart
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	sleep 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if [ $mysql_id -eq 0 ];then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/etc/init.d/keepalived stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	启动keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /etc/init.d/keepalived start
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看连接状态
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -aux | grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	返回：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root 1387 1 0 21:13 ? 00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root 1390 1387 0 21:13 ? 00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root 1391 1387 0 21:13 ? 00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root 1976 1911 0 21:16 pts/0 00:00:00 grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	测试
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看VIP信息
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ip addr
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	............
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	inet 192.168.7.201/24 brd 192.168.7.255 scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	inet 192.168.7.253/32 scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	inet6 fe80::20c:29ff:feb2:9199/64 scope link
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	valid_lft forever preferred_lft forever
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:如果出现主从在切换VIP时，主的VIP未自动关闭，从的正常开启，</span><span style="color:#FF0000;">导致</span><span style="color:#FF0000;">都获取到VIP，造成互相冲突的情况，可手动输入如下命令删除一方的VIP地址</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"># ip addr del "虚拟ip" dev eth0</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">但此方法只是一个临时的解决方案，当手动删除VIP后，重启keepalived服务会无法正常开启vip，需要重启服务器方能恢复。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看vrrp通信
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tcpdump vrrp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	.....
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	18:10:56.365730 IP 192.168.7.201 &gt; vrrp.mcast.net: VRRPv2, Advertisement, vrid 52, prio 40, authtype simple, intvl 1s, length 20
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	18:10:57.366825 IP 192.168.7.201 &gt; vrrp.mcast.net: VRRPv2, Advertisement, vrid 52, prio 40, authtype simple, intvl 1s, length 20
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	18:10:58.367914 IP 192.168.7.201 &gt; vrrp.mcast.net: VRRPv2, Advertisement, vrid 52, prio 40, authtype simple, intvl 1s, length 20
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:如果主keepalived挂掉，这里的日志会切换到备keeplived的信息</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	找一台局域网PC，然后去ping MySQL的VIP，这时候MySQL的VIP是可以ping的通的
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	停止MySQL服务，看keepalived健康检查程序是否会触发我们编写的脚本,去kill掉keepalived进程
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service mysqld stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -aux | grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	无返回结果
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.在MySQL-master2：192.168.7.249服务器上keepalived安装及配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	编译安装，实际以本机kernel版本为准
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://www.keepalived.org/software/keepalived-1.2.7.tar.gz" rel="nofollow">http://www.keepalived.org/software/keepalived-1.2.7.tar.gz</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar zxvf keepalived-1.2.7.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd keepalived-1.2.7
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make &amp;&amp; make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	设置keepalived开机启动脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig keepalived on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	新建一个配置文件，默认keepalived启动会去/etc/keepalived目录下寻找配置文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir /etc/keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/keepalived/keepalived.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	global_defs {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	notification_email {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="mailto:lzyangel@126.com">lzyangel@126.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	notification_email_from <a href="mailto:lzyangel@126.com">lzyangel@126.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	smtp_server stmp.126.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	smtp_connect_timeout 30
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	router_id MySQL-ha
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	vrrp_instance VI_1{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 两台配置此处均是BACKUP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	state BACKUP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 注意网卡接口
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	interface eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_router_id 51
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 优先级，另一台改为100
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	priority 90
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	advert_int 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 不主动抢占资源
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	nopreempt
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	authentication {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_type PASS
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_pass 1111
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_ipaddress {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.253
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_server 192.168.7.253 3306 {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 每个2秒检查一次real_server状态
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	delay_loop 2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# LVS算法
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	lb_algo wrr
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# LVS模式
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	lb_kind DR
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 会话保持时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	persistence_timeout 60
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	protocol TCP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	real_server 192.168.7.249 3306 {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	weight 3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 检测到服务down后执行的脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	notify_down /etc/rc.d/keepalived.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	TCP_CHECK {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 连接超时时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	connect_timeout 10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 重连次数
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	nb_get_retry 3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 重连间隔时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	delay_before_retry 3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 健康检查端口
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	connect_port 3306
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	编写检测服务down后所要执行的脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/keepalived.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/etc/init.d/keepalived stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chmod +x /etc/rc.d/keepalived.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	启动keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /etc/init.d/keepalived start
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看连接状态
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -aux | grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	返回：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root 1387 1 0 21:13 ? 00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root 1390 1387 0 21:13 ? 00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root 1391 1387 0 21:13 ? 00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root 1976 1911 0 21:16 pts/0 00:00:00 grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">至此配置完成，网站后台只需要配置MySQL-VIP：192.168.7.253虚拟地址即可</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">这里实际连接的master数据库，以哪台master先开mysql服务为准。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	当master1：192.168.7.201 mysql端口挡掉或者服务器异常关闭，keepalived会自动跳转到master2：192.168.7.249.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	因为两台数据库的数据时同步的,用户访问的是MySQL-VIP：192.168.7.253虚拟地址，所以网站数据连接会无缝透明转接到master2服务
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	器，实现双机热备+数据同步功能。保证网站数据库的实时可用性。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：当某一台master服务器挂掉恢复后，需同时打开<a href="http://www.showerlee.com/archives/tag/mysql" title="查看MYSQL中的全部文章" class="tag_link">MYSQL</a>服务和keepalived服务，保证另一台服务器如果挂掉会无缝转接。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">所以建议mysql与keeplived设置服务开机启动。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig mysqld on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig keepalived on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------大功告成------------
</p>
<p>
	</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/702">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CENTOS6.3利用Keepalived构建双主MySQL+双机热备" href="http://www.showerlee.com/archives/702">http://www.showerlee.com/archives/702</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/702/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CENTOS6.3下MYSQL主主互备架构配置</title>
		<link>http://www.showerlee.com/archives/698</link>
		<comments>http://www.showerlee.com/archives/698#comments</comments>
		<pubDate>Tue, 27 Aug 2013 17:14:37 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Load balance]]></category>
		<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=698</guid>
		<description><![CDATA[MySQL主主互备结构是基于mysql增量日志基础上的，区别于主从复制结构. 在主主复制结构中，两台服务器的任 [&#8230;]]]></description>
				<content:encoded><![CDATA[<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MySQL主主互备结构是基于mysql增量日志基础上的，区别于主从复制结构.
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在主主复制结构中，两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上，这个改变是基于sql语句的改变，<span style="color:#FF0000;">如果删除系统数据库源文件或删除后新创建同名<a href="http://www.showerlee.com/archives/tag/mysql" title="查看MYSQL中的全部文章" class="tag_link">MYSQL</a>表实现同步则无效。</span>这样两台服务器互为主从，并且都能向外提供服务，这就比使用主从复制具有更好的性能.
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	接下来我将使用两个相同的环境来实现这个效果：
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境：centos6.3
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	数据库： mysql-5.6.10
</div>
<p>
	
</p>
<p>
	<span style="color:#FF0000;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;line-height:28px;background-color:#FFFFFF;">注:在做此项配置之前首先要保证数据库当前无任何变动，建议同步前关闭WEB服务等影响数据库变动的服务</span>&nbsp;
</p>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	安装配置mysql(略)
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.主1 mysql配置:(192.168.7.201)
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	删除之前遗留bin日志
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# rm -rf /usr/local/mysql/log/bin*
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	修改mysql配置文件：
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/my.cnf
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	添加：
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# Replication Master Server 1
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# bin日志路径
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log-bin = /usr/local/mysql/log/bin.log
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 服务器ID号
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	server-id = 1
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 忽略mysql数据库复制
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	binlog-ignore-db=mysql
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 每次增长2
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auto-increment-increment = 2
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 设置自动增长的字段的偏移量，即初始值为1 &nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auto-increment-offset = 1&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在主1上为主2添加同步帐号
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; grant replication slave on *.* to 'slave'@'192.168.7.249' identified by '123456';
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	将主1的数据库表全部备份，并发送到主2服务器上。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/mysql/bin/mysqldump -u root -p123456 --opt --skip-lock-tables &nbsp;--flush-logs &nbsp;--all-database &gt; /root/allbak.sql
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd ~
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# scp allbak.sql <a href="mailto:root@192.168.7.249">root@192.168.7.249</a>:/root
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启服务
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service mysqld restart
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<div style="padding:0px;margin:0px;">
		&nbsp;
	</div>
<div style="padding:0px;margin:0px;">
		配置连接到主2服务器（注意这步一定要在主2添加账户后执行）
	</div>
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; stop slave;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; change master to master_host='192.168.7.249',master_user='slave',master_password='123456';
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; start slave;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.主2 mysql配置（192.168.7.249）
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	删除之前遗留bin日志
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# rm -rf /usr/local/mysql/log/bin*
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	修改mysql配置文件：
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<div style="padding:0px;margin:0px;">
		# vi /etc/my.cnf
	</div>
<div style="padding:0px;margin:0px;">
		添加：
	</div>
<div style="padding:0px;margin:0px;">
		--------------------
	</div>
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# Replication Master Server 2
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# bin日志路径
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log-bin = /usr/local/mysql/log/bin.log&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	server-id=2
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 忽略mysql数据库复制
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	replicate-ignore-db=mysql
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 每次增长2
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auto-increment-increment = 2
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 设置自动增长的字段的偏移量，即初始值为2 &nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auto-increment-offset = 2
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在主2上为主1添加同步帐号
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; grant replication slave on *.* to 'slave'@'192.168.7.201' identified by '123456';
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	恢复主1的数据库到主2
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#/usr/local/mysql/bin/mysql -u root -p123456 &lt; /root/allbak.sql
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启服务
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service mysqld restart
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	配置连接到主1服务器
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; stop slave;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; change master to master_host='192.168.7.201',master_user='slave',master_password='123456';
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; start slave;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	最后分别登陆两台服务器mysql后台查看主主备份连接状态
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; show slave status\G;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	搜索这三行，如下则主主互备配置成功
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Slave_IO_State: Waiting for master to send event
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Slave_IO_Running: Yes
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Slave_SQL_Running: Yes
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/114.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/114.jpg" alt="1" width="464" height="217" class="alignnone size-full wp-image-699" /></a>
</p>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/27.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/27.jpg" alt="2" width="488" height="262" class="alignnone size-large wp-image-700" /></a>
</div>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	当主1的数据库增加，删除，改变数据时，主2也会同步更新。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	当主2的数据库增加，删除，改变数据时，主1也会同步更新。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这样就可以配合keepalived实现数据库双机热备+数据同步互备，大大提高了<a href="http://www.showerlee.com/archives/tag/mysql" title="查看MYSQL中的全部文章" class="tag_link">MYSQL</a>的可靠性和安全性。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalived+<a href="http://www.showerlee.com/archives/tag/mysql" title="查看MYSQL中的全部文章" class="tag_link">MYSQL</a>互备&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	见<a href="http://www.showerlee.com/archives/702" target="_blank">http://www.showerlee.com/archives/702</a>
</p>
<p></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/698">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CENTOS6.3下MYSQL主主互备架构配置" href="http://www.showerlee.com/archives/698">http://www.showerlee.com/archives/698</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/698/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Centos6.3下mysql主从复制笔记</title>
		<link>http://www.showerlee.com/archives/300</link>
		<comments>http://www.showerlee.com/archives/300#comments</comments>
		<pubDate>Sat, 24 Aug 2013 05:14:41 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Load balance]]></category>
		<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=300</guid>
		<description><![CDATA[MySQL主从复制结构是基于mysql bin-log日志基础上，从库通过打开IO进程收到主库的bin-log [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MySQL主从复制结构是基于mysql bin-log日志基础上，从库通过打开IO进程收到主库的bin-log日志增量信息,并保存到本地relay log,而后再通过打开<a href="http://www.showerlee.com/archives/tag/mysql" title="查看MYSQL中的全部文章" class="tag_link">MYSQL</a>进程从relay log上获取的增量信息并翻译成SQL语句后写到从数据库。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	主从复制结构，实际上可以实现两个功能：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.从库充当主库的数据库备份实例
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.读写分离，主库负责正常读写数据，从库只负责读数据
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	实际生产环境，因为很多应用实际读数据库的次数远大于写数据库的次数，所以在项目开发初期，编写程序时做一个判断，对所有读的操作全部推到从库，若从库无法获取数据，则再向主库获取数据，从而在一定意义上实现读写分离，缓解主库的IO压力。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	所以生产环境下推荐使用这种架构。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境：centos6.3 x64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	数据库： &nbsp;mysql-5.6.10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql master:192.168.100.90
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql slave:192.168.100.91
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MySQL主从复制结构是基于mysql bin-log日志基础上，从库通过打开IO进程收到主库的bin-log日志增量信息,并保存到本地relay log,而后再通过打开MYSQL进程从relay log上获取的增量信息并翻译成SQL语句后写到从数据库。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	主从复制结构，实际上可以实现两个功能：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.从库充当主库的数据库备份实例
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.读写分离，主库负责正常读写数据，从库只负责读数据
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	实际生产环境，因为很多应用实际读数据库的次数远大于写数据库的次数，所以在项目开发初期，编写程序时做一个判断，对所有读的操作全部推到从库，若从库无法获取数据，则再向主库获取数据，从而在一定意义上实现读写分离，缓解主库的IO压力。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	所以生产环境下推荐使用这种架构。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境：centos6.3 x64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	数据库： &nbsp;mysql-5.6.10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql master:192.168.100.90
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql slave:192.168.100.91
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/22.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/22.png" alt="2" width="502" height="224" class="alignnone size-full wp-image-301" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>一.部署环境：</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.关闭iptables和SELINUX
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service iptables stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# setenforce 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysconfig/selinux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SELINUX=disabled
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.安装配置mysql传送门：<a href="http://www.showerlee.com/archives/6" target="_blank">http://www.showerlee.com/archives/6</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>二.主mysql配置:(mysql master)</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	修改mysql配置文件：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/my.cnf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	添加：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# Replication Master Server
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# bin日志路径
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log-bin = /usr/local/mysql/log/bin.log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 服务器ID号
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	server-id = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 忽略mysql系统库复制
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	binlog-ignore-db=mysql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	binlog-ignore-db=information_schema
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启服务
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service mysqld restart
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	登录mysql后台：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看此刻登录账号：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; select user();
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在master为slave添加同步帐号：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; grant replication slave on *.* to 'slave'@'192.168.100.91' identified by '123456';
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看创建的用户：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; select user.host from mysql.user;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看权限：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; show grants for 'slave'@'192.168.100.91';
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql锁表只读(其他账户登录mysql后无法进行写表操作，防止备份数据库后，主mysql表更新，导致和从数据库内容不一致)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; flush tables with read lock;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看锁表倒计时时间：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; show variables like '%timeout%';
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	....
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	wait_timeout &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 28800
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	将master的数据库表全部备份导出，并传送到slave服务器上。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/mysql/bin/mysqldump -u root -p123456 --opt &nbsp;--flush-logs &nbsp;--all-database &gt; /root/allbak.sql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd ~
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# scp allbak.sql <a href="mailto:root@192.168.100.91">root@192.168.100.91</a>:/root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看mysql偏移量(数据库如果有写操作，偏移值会递增)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e "show master status"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+------------+----------+--------------+------------------+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	| File &nbsp; &nbsp; &nbsp; | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+------------+----------+--------------+------------------+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	|&nbsp;<span style="color:#FF0000;">bin.000009</span>&nbsp;| &nbsp; &nbsp;&nbsp;<span style="color:#FF0000;">120</span>&nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+------------+----------+--------------+------------------+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	保证FILE列和Position列与从库配置一致：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>三.从mysql配置（mysql slave）</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	修改mysql配置文件：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/my.cnf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	添加：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# Replication Slave Server
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# bin日志路径（无需开bin-log日志）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#log-bin = /usr/local/mysql/log/bin.log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	server-id=2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 只读：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	read-only
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 忽略mysql系统库复制
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	binlog-ignore-db=mysql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	binlog-ignore-db=information_schema
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启服务
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service mysqld restart
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	恢复server的数据库到slave
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#/usr/local/mysql/bin/mysql -u root -p123456 &lt; /root/allbak.sql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	配置连接同步到server端：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; stop slave;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;line-height:28px;background-color:#FFFFFF;">&gt; reset slave;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; change master to master_host='192.168.100.90',master_user='slave',master_password='123456',<span style="color:#FF0000;">master_log_file</span>="bin.000009",<span style="color:#FF0000;">master_log_pos</span>= 120 ;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; start slave;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：master_log_file表示从主数据库哪个bin-log文件开始同步 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&nbsp; &nbsp;master_log_pos表示从该bin-log文件哪条记录点开始同步</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&nbsp; &nbsp;需与主库偏移值保持同步</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	回到主mysql数据库解锁（mysql master）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; unlock tables;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	最后登陆从mysql后台查看主从连接状态
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e "show slave status\G;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	找到这五行，如下则主从配置成功：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Slave_IO_State: Waiting for master to send event
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Slave_IO_Running: Yes
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Slave_SQL_Running: Yes
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Read_Master_Log_Pos: 120
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Relay_Master_Log_File: bin.000009
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>四.测试主从是否同步：</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(server)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e "create database test02;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e "show databases like 'test02';"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	| Database (test02) |
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	| test02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(cilent)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e "show databases like 'test02';"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	| Database (test02) |
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	| test02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	+-------------------+
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	测试成功。。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	当server端的数据库数据发生变化时，client端会同步更新，从而实现主库备份和读写分离作用。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">这里注意几点：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">1.mysql从库中需在my.cnf配置文件中加入 read-only参数，保证从库只读。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"># echo "read-only" &gt;&gt; /etc/my.cnf</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">2.忽略从库mysql与information_schema系统表同步</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"># echo "binlog-ignore-db=mysql" &gt;&gt; /etc/my.cnf</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"># echo "binlog-ignore-db=information_schema" &gt;&gt; /etc/my.cnf</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">生产环境主库用户的授权,授权增删改查权限。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&gt; GRANT SELECT,INSERT,UPDATE,DELETE ON *.* to 'user'@'%' identified by '123456';</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">生产环境从库的授权,仅授权查权限。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&gt; GRANT SELECT ON *.* to '<span>user</span>'@'%' identified by '123456';</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">3.从库默认不开启bin-log日志功能，除非做下级从库级联同步，才需开启从库的bin-log日志。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">4.主库由于硬件故障，如何将从库提升为主库(一主多从)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(mysql slave)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(1) 确保从机没有再同步的SQL语句，即出现Has read all relay log再关闭从库IO_Threat进程
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -uroot -p123456
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; stop slave IO_THREAD
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(2) 关闭从库slave服务，然后将其提升为主库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; stop slave
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&gt; reset master
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(3) 更换从库IP为故障主库IP(配置方法略)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(4) 删除新的主库master.info和relay-log.info,防止下次重启还会按照从库启动
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd /usr/local/mysql/log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# rm -rf master.info relay-log.info
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(5) 重新配置从库连接主库的账号同步信息，以及在下级从库重新设置偏移量保持与新的主库一致即可。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	最后待主库硬件恢复，将其再设置为从库并更换为上述从库IP地址,完成主从切换。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>五.配置脚本：</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.如果想实现无人值守备份主数据库，可添加如下脚本，并在凌晨执行定时任务：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/mysql_bak.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_USER=root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_PW="123456"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	LOG_PATH=/usr/local/mysql/log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DATA_PATH=/usr/local/mysql/data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	LOG_FILE=${LOG_PATH}/mysqllog_`date +%F`.log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DATA_FILE=${DATA_PATH}/mysql_backup_`date +%F`.sql.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	BIN_PATH=/usr/local/mysql/bin
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_CMD="$BIN_PATH/mysql -u$MYSQL_USER -p$MYSQL_PW"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_DUMP="$BIN_PATH/mysqldump -u$MYSQL_USER -p$MYSQL_PW --opt --flush-logs &nbsp;--all-database"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$MYSQL_CMD -e "flush tables with read lock;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	echo "-------show master status result-------" &gt;&gt; $LOG_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$MYSQL_CMD -e "show master status" &gt;&gt; $LOG_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	${MYSQL_DUMP}|gzip &gt; $DATA_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$MYSQL_CMD -e "unlock tables"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mail -s "mysql slave log" <a href="mailto:1234567@qq.com">1234567@qq.com</a> &lt; $LOG_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	凌晨3:30执行备份数据库操作：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# crontab -e
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	30 3 * * * /bin/sh /etc/rc.d/mysql_bak.sh &gt; /dev/mull 2&gt;&amp;1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service crond restart
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.如果想实现将主库备份的数据分发到从库，恢复从库数据库，以及开启从库功能，可添加如下脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：这里建议主从先做好秘钥认证：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">详见传送门：<a href="http://www.showerlee.com/archives/558" target="_blank"><span style="color:#E53333;"><a href="http://www.showerlee.com/archives/558" rel="nofollow">http://www.showerlee.com/archives/558</a></span><span style="color:#E53333;"></span></a></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/mysql_bak1.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_USER=root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_PW="123456"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_SLAVE_IP="192.168.100.91"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SSH_PATH="/usr/bin/ssh"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SSH_CMD="${SSH_PATH} ${MYSQL_SLAVE_IP}"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GZIP_CMD="/bin/gzip"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	LOG_PATH=/usr/local/mysql/log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DATA_PATH=/usr/local/mysql/data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	LOG_FILE=${LOG_PATH}/mysqllog_`date +%F`.log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DATA_FILE=${DATA_PATH}/mysql_backup_`date +%F`.sql.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	BIN_PATH=/usr/local/mysql/bin
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_CMD="$BIN_PATH/mysql -u$MYSQL_USER -p$MYSQL_PW"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	MYSQL_DUMP="$BIN_PATH/mysqldump -u$MYSQL_USER -p$MYSQL_PW --opt --flush-logs &nbsp;--all-database"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$MYSQL_CMD -e "flush tables with read lock;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	echo "-------show master status result-------" &gt;&gt; $LOG_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$MYSQL_CMD -e "show master status" &gt;&gt; $LOG_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	${MYSQL_DUMP}|gzip &gt; $DATA_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#config slave
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	cd ${DATA_PATH}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	scp "mysql_backup_`date +%F`.sql.gz" $MYSQL_SLAVE_IP:/tmp/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	${SSH_CMD} "${GZIP_CMD} -d /tmp/mysql_backup_`date +%F`.sql.gz"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	${SSH_CMD} "${MYSQL_CMD} &lt; /tmp/mysql_backup_`date +%F`.sql"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	${SSH_CMD} "cat |$MYSQL_CMD" &lt;&lt; EOF
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	stop slave;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	change master to
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_host='192.168.100.90',
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_user='slave',
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_password='123456',
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_log_file="bin.000009",
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_log_pos= 120;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	start slave;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	EOF
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$SSH_CMD $MYSQL_CMD -e "show slave status\G;"|egrep "IO_Running|SQL_Running" &gt;&gt; $LOG_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$MYSQL_CMD -e "unlock tables"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mail -s "mysql slave log" <a href="mailto:1234567@qq.com">1234567@qq.com</a> &lt; $LOG_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$SSH_CMD mail -s "mysql slave log" <a href="mailto:1234567@qq.com">1234567@qq.com</a> &lt; $LOG_FILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql主从my.cnf参数配置:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[mysqld]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	port= 3306
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	datadir=/usr/local/mysql/data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	socket=/var/lib/mysql/mysql.sock
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	user=mysql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	symbolic-links=0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	max_connections = 16384
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	skip-external-locking
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	skip-name-resolve
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	key_buffer_size = 256M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	query_cache_limit = 1M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	query_cache_size = 64M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	max_allowed_packet = 4M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#table_cache = 8
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	thread_concurrency = 8
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	sort_buffer_size = 8M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	read_buffer_size = 4M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	read_rnd_buffer_size = 4M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net_buffer_length = 1M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	thread_stack = 1M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log-error=/usr/local/mysql/log/error.log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log=/usr/local/mysql/log/mysql.log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	long_query_time=2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log-slow-queries= /usr/local/mysql/log/slowquery.log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 服务器ID号(主为1从为2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	server-id = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 忽略mysql系统库复制
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	binlog-ignore-db=mysql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	binlog-ignore-db=information_schema
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log-bin = /usr/local/mysql/log/bin.log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#删除10天之前的二进制日志
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	expire_logs_days = 10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[mysqldump]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	quick
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	max_allowed_packet = 16M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[mysql]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	no-auto-rehash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#safe-updates
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[isamchk]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	key_buffer = 8M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	sort_buffer_size = 8M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[myisamchk]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	key_buffer = 8M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	sort_buffer_size = 8M
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[mysqlhotcopy]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	interactive-timeout
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------
</p>
<p>
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------大功告成---------
</p>
<p>
	
</p>
<p></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/300">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Centos6.3下mysql主从复制笔记" href="http://www.showerlee.com/archives/300">http://www.showerlee.com/archives/300</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/300/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Centos6.3下DRBD安装配置笔记</title>
		<link>http://www.showerlee.com/archives/295</link>
		<comments>http://www.showerlee.com/archives/295#comments</comments>
		<pubDate>Fri, 23 Aug 2013 09:42:33 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Load balance]]></category>
		<category><![CDATA[DRBD]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=295</guid>
		<description><![CDATA[-----------------------闲 &#160; &#160;扯---------------- [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------闲 &nbsp; &nbsp;扯-------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	最近准备更新点负载均衡高可用的文档，所以把之前一直想攻克的<a href="http://www.showerlee.com/archives/tag/drbd" title="查看DRBD中的全部文章" class="tag_link">DRBD</a>今天抽空给搞定了。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DRBD(Distributed Replicated Block Device) 我们可以理解为它其实就是个网络RAID-1,两台服务器间就算某台因断电或者宕机也不会对数据有任何影响，而真正的热切换可以通过Heartbeat方案解决，不需要人工干预。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	例如：DRBD+Heartbeat+Mysql进行主从结构分离，作为DRBD+HeartBeat+NFS的备份存储解决方案。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------废话不多说，开搞---------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统版本：centos6.3 x64（内核2.6.32）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DRBD： &nbsp; &nbsp;DRBD-8.4.3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	node1: &nbsp; 192.168.7.88（drbd1.example.com）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	node2: &nbsp; 192.168.7.89 (drbd2.example.com)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)为仅主节点配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node2)为仅从节点配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1,node2)为主从节点共同配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>一.准备环境：(node1,node2)</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.关闭iptables和SELINUX，避免安装过程中报错。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service iptables stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# setenforce 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysconfig/selinux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SELINUX=disabled
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.设置hosts文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/hosts
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.88 &nbsp; &nbsp;drbd1.example.com &nbsp; &nbsp;drbd1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.89 &nbsp; &nbsp;drbd2.example.com &nbsp; &nbsp;drbd2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.在两台虚拟机分别添加一块2G硬盘sdb作为DRBD，分别分区为sdb1，大小1G，并在本地系统创建/data目录，不做挂载操作。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# fdisk /dev/sdb
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	n-p-1-1-"+1G"-w
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir /data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4.时间同步：<span style="color:#FF0000;">（重要）</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ntpdate -u asia.pool.ntp.org
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	5.更改主机名：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysconfig/network
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	HOSTNAME=server.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysconfig/network
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	HOSTNAME=client.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>二.DRBD的安装配置：</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.安装依赖包：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# yum install gcc gcc-c++ make glibc flex kernel-devel kernel-headers
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.安装DRBD：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz" rel="nofollow">http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar zxvf drbd-8.4.3.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd drbd-8.4.3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local/drbd --with-km
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make KDIR=/usr/src/kernels/2.6.32-279.el6.x86_64/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir -p /usr/local/drbd/var/run/drbd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig --add drbd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig drbd on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	加载DRBD模块:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# modprobe drbd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看DRBD模块是否加载到内核：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# lsmod |grep drbd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.参数配置：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/drbd/etc/drbd.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	清空文件内容，并添加如下配置：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	resource r0{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	protocol C;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	startup { wfc-timeout 0; degr-wfc-timeout 120;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	disk { on-io-error detach;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; timeout 60;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; connect-int 10;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; ping-int 10;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; max-buffers 2048;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; max-epoch-size 2048;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	syncer { rate 30M;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	on drbd1.example.com{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; device /dev/drbd0;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; disk &nbsp; /dev/sdb1;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; address 192.168.7.88:7788;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; meta-disk internal;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	on drbd2.example.com{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; device /dev/drbd0;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; disk &nbsp; /dev/sdb1;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; address 192.168.7.89:7788;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; meta-disk internal;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4.创建DRBD设备并激活ro资源：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mknod /dev/drbd0 b 147 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm create-md r0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	等待片刻，显示success表示drbd块创建成功
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Writing meta data...
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	initializing activity log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	NOT initializing bitmap
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	New drbd meta data block successfully created.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--== Creating metadata ==--
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	As with nodes, we count the total number of devices mirrored by DRBD
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	at <a href="http://usage.drbd.org" rel="nofollow">http://usage.drbd.org</a>.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	The counter works anonymously. It creates a random number to identify
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	the device and sends that random number, along with the kernel and
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DRBD version, to usage.drbd.org.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<p><a href="http://usage.drbd.org/cgi-bin/insert_usage.pl" rel="nofollow">http://usage.drbd.org/cgi-bin/insert_usage.pl</a>?</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	nu=716310175600466686&amp;ru=15741444353112217792&amp;rs=1085704704
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	* If you wish to opt out entirely, simply enter 'no'.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	* To continue, just press [RETURN]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	success
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	再次输入该命令：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm create-md r0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	成功激活r0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[need to type 'yes' to confirm]&nbsp;<span style="color:#FF0000;">yes</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Writing meta data...
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	initializing activity log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	NOT initializing bitmap
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	New drbd meta data block successfully created.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	5.启动DRBD服务：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd start
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	注：需要主从共同启动方能生效
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	6。查看状态：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cat /proc/drbd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cat /proc/drbd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd1.example.com">root@drbd1.example.com</a>,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2013-05-27 20:45:19
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:1060184
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	或
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd1.example.com">root@drbd1.example.com</a>,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2013-05-27 20:45:19
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;Secondary/Secondary &nbsp;Inconsistent/Inconsistent &nbsp;C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这里ro:Secondary/Secondary表示两台主机的状态都是备机状态，ds是磁盘状态，显示的状态内容为“不一致”，这是因为DRBD无法判断哪一方为主机，应以哪一方的磁盘数据作为标准。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	7.将drbd1.example.com主机配置为主节点：(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdsetup /dev/drbd0 primary --force
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	分别查看主从DRBD状态：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd1.example.com">root@drbd1.example.com</a>,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2013-05-27 20:45:19
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;Primary/Secondary &nbsp;UpToDate/UpToDate &nbsp;C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd2.example.com">root@drbd2.example.com</a>,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2013-05-27 20:49:06
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;<span style="color:#FF0000;">Secondary/Primary</span><span style="color:#FF0000;">UpToDate/UpToDate</span>&nbsp;&nbsp;C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ro在主从服务器上分别显示 Primary/Secondary和Secondary/Primary
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ds显示UpToDate/UpToDate
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	表示主从配置成功。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	8.挂载DRBD：(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	从刚才的状态上看到mounted和fstype参数为空，所以我们这步开始挂载DRBD到系统目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkfs.ext4 /dev/drbd0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mount /dev/drbd0 /data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	注：Secondary节点上不允许对DRBD设备进行任何操作，包括只读，所有的读写操作只能在Primary节点上进行，只有当Primary节点挂掉时，Secondary节点才能提升为Primary节点继续工作。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	9.模拟DRBD1故障，DRBD2接管并提升为Primary
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd /data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# touch 1 2 3 4 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd ..
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# umount /data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdsetup /dev/drbd0 secondary
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：这里实际生产环境若DRBD1宕机，在DRBD2状态信息中ro的值会显示为Secondary/Unknown,只需要进行DRBD提权操作即可。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdsetup /dev/drbd0 primary
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# &nbsp;mount &nbsp;/dev/drbd0 /data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd /data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# touch 6 7 8 9 10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ls
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1 &nbsp;10 &nbsp;2 &nbsp;3 &nbsp;4 &nbsp;5 &nbsp;6 &nbsp;7 &nbsp;8 &nbsp;9 &nbsp;lost+found
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd2.example.com">root@drbd2.example.com</a>,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2013-05-27 20:49:06
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;Primary/Secondary &nbsp;UpToDate/UpToDate &nbsp;C &nbsp;/data &nbsp; &nbsp;ext4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd1.example.com">root@drbd1.example.com</a>,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2013-05-27 20:45:19
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;Secondary/Primary &nbsp;UpToDate/UpToDate &nbsp;C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DRBD大功告成。。。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">不过如何保证DRBD主从结构的智能切换，实现高可用，这里就需要Heartbeat来实现了。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><span>Heartbeat</span>会在DRBD主端挂掉的情况下，自动切换从端为主端并自动挂载/data分区。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	注：（摘自酒哥的构建高可用LINUX服务器第2版）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	假设你把Primary的eth0挡掉，然后直接在Secondary上进行主Primary主机的提升，并且mount上，你可能会发现在Primary上测试考入的文件确实同步过来了，之后把Primary的eth0恢复后，看看有没有自动恢复 主从关系。经过查看，发现DRBD检测出了Split-Brain的状况，也就是两个节点都处于standalone状态，故障描述如下：Split-Brain detected,dropping connection! 这就是传说中的“脑裂”。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这里是DRBD官方推荐的手动恢复方案：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm secondary r0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm disconnect all
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm --discard-my-data connect r0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm disconnect all
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm connect r0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdsetup /dev/drbd0 primary
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><span><span style="color:#0070C0;"><span style="color:#548DD4;"><br />
</span></span></span></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">这里本人实际模拟的是将</span><span style="color:#548DD4;"><span style="color:#FF0000;">Primary端重启，然后立即进行</span><span><span style="color:#FF0000;">Secondary提权操作，待</span><span><span style="color:#FF0000;">Primary端重启完毕，将其降权，查看两边的status，结果都为standalone状态，很奇怪的也出现</span><span style="color:#FF0000;">“脑裂”情况，不知道是什么情况？有经验的朋友可以帮忙指点一下。</span></span></span></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DRBD+HeartBeat+NFS传送门：<a href="http://www.showerlee.com/archives/293" target="_blank">http://www.showerlee.com/archives/293</a></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/295">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Centos6.3下DRBD安装配置笔记" href="http://www.showerlee.com/archives/295">http://www.showerlee.com/archives/295</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/295/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centos6.3下DRBD+HeartBeat+NFS配置笔记</title>
		<link>http://www.showerlee.com/archives/293</link>
		<comments>http://www.showerlee.com/archives/293#comments</comments>
		<pubDate>Fri, 23 Aug 2013 09:41:12 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Load balance]]></category>
		<category><![CDATA[DRBD]]></category>
		<category><![CDATA[HeartBeat]]></category>
		<category><![CDATA[NFS]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=293</guid>
		<description><![CDATA[--------------闲 &#160; 扯------------------ &#160; 这里首先感 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------闲 &nbsp; 扯------------------ &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这里首先感谢酒哥的构建高可用的Linux服务器的这本书，看了这本书上并参考里面的配置让自己对<a href="http://www.showerlee.com/archives/tag/drbd" title="查看DRBD中的全部文章" class="tag_link">DRBD</a>+<a href="http://www.showerlee.com/archives/tag/heartbeat" title="查看HeartBeat中的全部文章" class="tag_link">HeartBeat</a>+<a href="http://www.showerlee.com/archives/tag/nfs" title="查看NFS中的全部文章" class="tag_link">NFS</a>思路清晰了许多。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd简单来说就是一个网络raid-1,一般有2到多个node节点，各个节点创建的磁盘块会映射到本地drbd块，而后通过网络对各个节点drbd磁盘块进行互相同步更新。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	heartbeat的作用就可以增加drbd的可用性，它能在某节点故障后，自动切换drbd块到备份节点，并自动进行虚IP从新绑定，<a href="http://www.showerlee.com/archives/tag/drbd" title="查看DRBD中的全部文章" class="tag_link">DRBD</a>块提权，磁盘挂载以及启动<a href="http://www.showerlee.com/archives/tag/nfs" title="查看NFS中的全部文章" class="tag_link">NFS</a>等脚本操作，这一系列操作因为只在他后端节点间完成，前端用户访问的是heartbeat的虚IP，所以对用户来说无任何感知。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	最后吐槽下，yum安装真心坑爹，以后如果非必须，尽量源码包安装。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------开 &nbsp; 搞----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统版本： centos6.3 x64（内核2.6.32）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/archives/tag/drbd" title="查看DRBD中的全部文章" class="tag_link">DRBD</a>： &nbsp; &nbsp; <a href="http://www.showerlee.com/archives/tag/drbd" title="查看DRBD中的全部文章" class="tag_link">DRBD</a>-8.4.3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/archives/tag/heartbeat" title="查看HeartBeat中的全部文章" class="tag_link">HeartBeat</a>：epel更新源<span style="color:#FF0000;">（真坑）</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/archives/tag/nfs" title="查看NFS中的全部文章" class="tag_link">NFS</a>: &nbsp; &nbsp; &nbsp; 系统自带
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/archives/tag/heartbeat" title="查看HeartBeat中的全部文章" class="tag_link">HeartBeat</a> VIP:&nbsp;&nbsp; &nbsp;192.168.7.90
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	node1 <a href="http://www.showerlee.com/archives/tag/drbd" title="查看DRBD中的全部文章" class="tag_link">DRBD</a>+<a href="http://www.showerlee.com/archives/tag/heartbeat" title="查看HeartBeat中的全部文章" class="tag_link">HeartBeat</a>: &nbsp; &nbsp; 192.168.7.88（drbd1.example.com）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	node2 DRBD+<a href="http://www.showerlee.com/archives/tag/heartbeat" title="查看HeartBeat中的全部文章" class="tag_link">HeartBeat</a>: &nbsp; 192.168.7.89 (drbd2.example.com)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)为仅主节点端配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node2)为仅从节点端配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1,node2)为主从节点都需配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	一.DRBD配置，传送门：<a href="http://www.showerlee.com/archives/295" target="_blank">http://www.showerlee.com/archives/295</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	二.Hearbeat配置；
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这里接着DRBD系统环境及安装配置：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.安装heartbeat（CentOS6.3中默认不带有Heartbeat包，因此需要从第三方下载）(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/6rolling/i386/os/Packages/epel-release-6-5.noarch.rpm" rel="nofollow">ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/6rolling/i386/os/Packages/epel-release-6-5.noarch.rpm</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# rpm -ivUh epel-release-6-5.noarch.rpm
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# yum --enablerepo=epel install heartbeat -y
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.配置heartbeat
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/ha.d/ha.cf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 日志
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	logfile &nbsp; &nbsp; &nbsp; &nbsp; /var/log/ha-log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	logfacility &nbsp; &nbsp; local0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 心跳监测时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalive &nbsp; &nbsp; &nbsp; 2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 死亡时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	deadtime &nbsp; &nbsp; &nbsp; &nbsp;5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 指定对方IP：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ucast &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eth0 192.168.7.89
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 服务器正常后由主服务器接管资源，另一台服务器放弃该资源
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auto_failback &nbsp; off
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#定义节点
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	node &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drbd1.example.com drbd2.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/ha.d/ha.cf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 日志
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	logfile &nbsp; &nbsp; &nbsp; &nbsp; /var/log/ha-log
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	logfacility &nbsp; &nbsp; local0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 心跳监测时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalive &nbsp; &nbsp; &nbsp; 2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 死亡时间
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	deadtime &nbsp; &nbsp; &nbsp; &nbsp;5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 指定对方IP：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ucast &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eth0 192.168.7.88
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 服务器正常后由主服务器接管资源，另一台服务器放弃该资源
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auto_failback &nbsp; off
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#定义节点
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	node &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drbd1.example.com drbd2.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	编辑双机互联验证文件：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/ha.d/authkeys
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1 crc
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chmod 600 /etc/ha.d/authkeys
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	编辑集群资源文件：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/ha.d/haresources
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd1.example.com&nbsp;<span style="color:#FF0000;">IPaddr</span>::192.168.7.90/24/eth0 drbddisk::r0&nbsp;<span style="color:#FF0000;">Filesystem</span>::/dev/drbd0::/data::ext4 killnfsd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：该文件内IPaddr,Filesystem等脚本存放路径在/etc/ha.d/resource.d/下,也可在该目录下存放服务启动脚本（例如：mysql,www）,将相同脚本名称添加到/etc/ha.d/haresources内容中，从而跟随heartbeat启动而启动该脚本。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">IPaddr::192.168.7.90/24/eth0：用IPaddr脚本配置浮动VIP</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">drbddisk::r0：用drbddisk脚本实现DRBD主从节点资源组的挂载和卸载</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">Filesystem::/dev/drbd0::/data::ext4：用Filesystem脚本实现磁盘挂载和卸载</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	编辑脚本文件killnfsd,用来重启NFS服务：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：因为NFS服务切换后，必须重新mount NFS共享出来的目录，否则会报错（待验证）</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/ha.d/resource.d/killnfsd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	killall -9 nfsd; /etc/init.d/nfs restart;exit 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	赋予执行权限：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chmod 755 /etc/ha.d/resource.d/killnfsd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	创建DRBD脚本文件drbddisk:(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">此处又是一个大坑，如果不明白Heartbeat目录结构的朋友估计要在这里被卡到死，因为默认yum安装Heartbeat，不会在/etc/ha.d/resource.d/创建drbddisk脚本，而且也无法在安装后从本地其他路径找到该文件。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">此处本人也是因为启动Heartbeat后无法PING通虚IP，最后通过查看/var/log/ha-log日志，找到一行</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">ERROR: Cannot locate resource script drbddisk</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">然后进而到/etc/ha.d/resource.d/路径下发现竟然没有drbddisk脚本，最后在google上找到该代码，创建该脚本，终于测试通过：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/ha.d/resource.d/drbddisk
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# This script is inteded to be used as resource script by heartbeat
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# Copright 2003-2008 LINBIT Information Technologies
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# Philipp Reisner, Lars Ellenberg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	###
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DEFAULTFILE="/etc/default/drbd"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	DRBDADM="/sbin/drbdadm"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if [ -f $DEFAULTFILE ]; then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;. $DEFAULTFILE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if [ "$#" -eq 2 ]; then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;RES="$1"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;CMD="$2"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	else
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;RES="all"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;CMD="$1"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	## EXIT CODES
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# since this is a "legacy heartbeat R1 resource agent" script,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# exit codes actually do not matter that much as long as we conform to
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# &nbsp;<a href="http://wiki.linux-ha.org/HeartbeatResourceAgent" rel="nofollow">http://wiki.linux-ha.org/HeartbeatResourceAgent</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# but it does not hurt to conform to lsb init-script exit codes,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# where we can.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# &nbsp;<a href="http://refspecs.linux-foundation.org/LSB_3.1.0/" rel="nofollow">http://refspecs.linux-foundation.org/LSB_3.1.0/</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#LSB-Core-generic/LSB-Core-generic/iniscrptact.html
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	####
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd_set_role_from_proc_drbd()
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	local out
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if ! test -e /proc/drbd; then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ROLE="Unconfigured"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	return
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	dev=$( $DRBDADM sh-dev $RES )
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	minor=${dev#/dev/drbd}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if [[ $minor = *[!0-9]* ]] ; then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# sh-minor is only supported since drbd 8.3.1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	minor=$( $DRBDADM sh-minor $RES )
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if [[ -z $minor ]] || [[ $minor = *[!0-9]* ]] ; then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ROLE=Unknown
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	return
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if out=$(sed -ne "/^ *$minor: cs:/ { s/:/ /g; p; q; }" /proc/drbd); then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	set -- $out
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ROLE=${5%/**}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	: ${ROLE:=Unconfigured} # if it does not show up
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	else
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ROLE=Unknown
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	case "$CMD" in
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;start)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# try several times, in case heartbeat deadtime
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# was smaller than drbd ping time
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	try=6
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	while true; do
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$DRBDADM primary $RES &amp;&amp; break
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	let "--try" || exit 1 # LSB generic error
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	sleep 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	done
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	;;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;stop)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# heartbeat (haresources mode) will retry failed stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# for a number of times in addition to this internal retry.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	try=3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	while true; do
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$DRBDADM secondary $RES &amp;&amp; break
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# We used to lie here, and pretend success for anything != 11,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# to avoid the reboot on failed stop recovery for "simple
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# config errors" and such. But that is incorrect.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# Don't lie to your cluster manager.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# And don't do config errors...
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	let --try || exit 1 # LSB generic error
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	sleep 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	done
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	;;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;status)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if [ "$RES" = "all" ]; then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;echo "A resource name is required for status inquiries."
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;exit 10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ST=$( $DRBDADM role $RES )
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	ROLE=${ST%/**}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	case $ROLE in
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Primary|Secondary|Unconfigured)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# expected
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	;;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	*)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# unexpected. whatever...
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# If we are unsure about the state of a resource, we need to
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# report it as possibly running, so heartbeat can, after failed
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# stop, do a recovery by reboot.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdsetup may fail for obscure reasons, e.g. if /var/lock/ is
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# suddenly readonly. &nbsp;So we retry by parsing /proc/drbd.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd_set_role_from_proc_drbd
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	esac
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	case $ROLE in
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Primary)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	echo "running (Primary)"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	exit 0 # LSB status "service is OK"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	;;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Secondary|Unconfigured)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	echo "stopped ($ROLE)"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	exit 3 # LSB status "service is not running"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	;;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	*)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# NOTE the "running" in below message.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# this is a "heartbeat" resource script,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# the exit code is _ignored_.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	echo "cannot determine status, may be running ($ROLE)"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	exit 4 # &nbsp;LSB status "service status is unknown"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	;;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	esac
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	;;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;*)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	echo "Usage: drbddisk [resource] {start|stop|status}"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	exit 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	;;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	esac
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	exit 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	赋予执行权限：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chmod 755 /etc/ha.d/resource.d/drbddisk
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在两个节点上启动<a href="http://www.showerlee.com/archives/tag/heartbeat" title="查看HeartBeat中的全部文章" class="tag_link">HeartBeat</a>服务，先启动node1：(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service heartbeat start
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig heartbeat on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这里能够PING通虚IP 192.168.7.90，表示配置成功
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	三.配置NFS:(node1,node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/exports
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/data &nbsp; &nbsp; &nbsp; &nbsp;*(rw,no_root_squash)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启NFS服务：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service rpcbind restart
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service nfs restart
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig rpcbind on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig nfs off
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">这里设置NFS开机不要自动运行，因为/etc/ha.d/resource.d/killnfsd 该脚本内容控制NFS的启动。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	四.最终测试
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在另外一台LINUX的客户端挂载虚IP：192.168.7.90，挂载成功表明NFS+DRBD+<a href="http://www.showerlee.com/archives/tag/heartbeat" title="查看HeartBeat中的全部文章" class="tag_link">HeartBeat</a>大功告成.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mount -t nfs 192.168.7.90:/data /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# df -h
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	......
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.90:/data &nbsp; 1020M &nbsp; 34M &nbsp;934M &nbsp; 4% /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	测试DRBD+HeartBeat+NFS可用性：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.向挂载的/tmp目录传送文件，忽然重新启动主端DRBD服务，查看变化
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	经本人测试能够实现断点续传
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.正常状态重启Primary主机后，观察主DRBD状态是否恢复Primary并能正常被客户端挂载并且之前写入的文件存在，可以正常再写入文件。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	经本人测试可以正常恢复，且客户端无需重新挂载NFS共享目录，之前数据存在，且可直接写入文件。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.当Primary主机因为硬件损坏或其他原因需要关机维修，需要将Secondary提升为Primary主机，如何手动操作？
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">如果设备能够正常启动则按照如下操作，无法启动则强行提升Secondary为Primary，待宕机设备能够正常启动，若“脑裂”，再做后续修复工作。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	首先先卸载客户端挂载的NFS主机目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# umount /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	卸载DRBD设备：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service nfs stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# umount /data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	降权：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm secondary r0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看状态，已降权
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd1.example.com">root@drbd1.example.com</a>, 2013-05-27 20:45:19
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;<span style="color:#FF0000;">Secondary/Secondary</span>&nbsp;&nbsp;UpToDate/UpToDate &nbsp;C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	提权：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# drbdadm primary r0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看状态，已提权：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd2.example.com">root@drbd2.example.com</a>, 2013-05-27 20:49:06
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;<span style="color:#FF0000;">Primary/Secondary</span>&nbsp;&nbsp;UpToDate/UpToDate &nbsp;C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这里还未挂载DRBD目录，让Heartbeat帮忙挂载：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：若重启过程中发现Heartbeat日志报错：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">ERROR: glib: ucast: error binding socket. Retrying: Permission denied</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">请检查selinux是否关闭</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service heartbeat restart
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd2.example.com">root@drbd2.example.com</a>, 2013-05-27 20:49:06
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;Primary/Secondary &nbsp;UpToDate/UpToDate &nbsp;C &nbsp;/data &nbsp; &nbsp;ext4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	成功让HeartBeat挂载DRBD目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重新在客户端做NFS挂载测试：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mount -t nfs 192.168.7.90:/data /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#000000;"># ll /tmp</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#000000;">------------------</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#000000;">1 &nbsp;10 &nbsp;2 &nbsp;2222 &nbsp;3 &nbsp;4 &nbsp;5 &nbsp;6 &nbsp;7 &nbsp;8 &nbsp;9 &nbsp;lost+found &nbsp;orbit-root</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#000000;">------------------</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启刚刚被提权的主机，待重启查看状态：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd2.example.com">root@drbd2.example.com</a>, 2013-05-27 20:49:06
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; WFConnection &nbsp;Primary/Unknown &nbsp;UpToDate/DUnknown &nbsp;C &nbsp;/data &nbsp; &nbsp;ext4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	HeartBeat成功挂载DRBD目录，drbd无缝连接到备份节点，客户端使用NFS挂载点对故障无任何感知。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4.测试最后刚才那台宕机重新恢复正常后，他是否会从新夺取Primary资源？
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启后不会重新获取资源，需手动切换主从权限方可。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：vi /etc/ha.d/ha.cf配置文件内该参数：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">--------------------</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">auto_failback &nbsp; off</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">--------------------</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">表示服务器正常后由新的主服务器接管资源，另一台旧服务器放弃该资源</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	5.以上都未利用heartbeat实现故障自动转移，当线上DRBD主节点宕机，备份节点是否立即无缝接管，heartbeat+drbd高可用性是否能够实现？
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	首先先在客户端挂载NFS共享目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mount -t nfs 192.168.7.90:/data /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	a.模拟将主节点node1 的heartbeat服务停止，则备节点node2是否接管服务？
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd1.example.com">root@drbd1.example.com</a>, 2013-05-27 20:45:19
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;Primary/Secondary &nbsp;UpToDate/UpToDate &nbsp;C &nbsp;/data &nbsp; &nbsp;ext4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service heartbeat stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd2.example.com">root@drbd2.example.com</a>, 2013-05-27 20:49:06
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;Primary/Secondary &nbsp;UpToDate/UpToDate &nbsp;C &nbsp;/data &nbsp; &nbsp;ext4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	从机无缝接管，测试客户端是否能够使用NFS共享目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# touch test01
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ls test01
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	test01
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	测试通过。。。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	b.模拟将主节点宕机（直接强行关机），则备节点node2是否接管服务？
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	强制关机,直接关闭node1虚拟机电源
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(node2)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd2.example.com">root@drbd2.example.com</a>, 2013-05-27 20:49:06
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; WFConnection &nbsp;Primary/Unknown &nbsp;UpToDate/DUnknown &nbsp;C &nbsp;/data &nbsp; &nbsp;ext4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	从机无缝接管，测试客户端是否能够使用NFS共享目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# touch test02
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ls test02
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	test02
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	待node1恢复启动，查看drbd状态信息：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service drbd status
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	drbd driver loaded OK; device status:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	version: 8.4.3 (api:1/proto:86-101)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by <a href="mailto:root@drbd2.example.com">root@drbd2.example.com</a>, 2013-05-27 20:49:06
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	m:res &nbsp;cs &nbsp; &nbsp; &nbsp; &nbsp; ro &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p &nbsp;mounted &nbsp;fstype
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	0:r0 &nbsp; Connected &nbsp;Primary/Secondary &nbsp;UpToDate/UpToDate &nbsp;C &nbsp;/data &nbsp; &nbsp;ext4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	node1已连接上线，处于UpToDate状态，测试通过。。。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：这里node1的heartbeat有几率在关闭服务时，node2无法接管,所以有一定维护成本，因为本人线上未跑该服务，建议实际使用在上线前多做模拟故障演练，再实际上线。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------大功告成----------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">参考：酒哥的“构建高可用LINUX服务器”一书</span>
</p>
<p><span style="color:;"><span style="color:#E53333;"></span></span></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/293">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Centos6.3下DRBD+HeartBeat+NFS配置笔记" href="http://www.showerlee.com/archives/293">http://www.showerlee.com/archives/293</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/293/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centos6.3下haproxy+keepalived+apache配置笔记</title>
		<link>http://www.showerlee.com/archives/65</link>
		<comments>http://www.showerlee.com/archives/65#comments</comments>
		<pubDate>Fri, 16 Aug 2013 18:17:33 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Load balance]]></category>
		<category><![CDATA[APACHE]]></category>
		<category><![CDATA[HAPROXY]]></category>
		<category><![CDATA[KEEPALIVED]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=65</guid>
		<description><![CDATA[keepalived个人简单理解就是实现一个虚IP在keepalived主从服务器之间切换的功能，当主的kee [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalived个人简单理解就是实现一个虚IP在keepalived主从服务器之间切换的功能，当主的keeplived挂掉，从机会无缝接管该虚IP。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalived它作为一个辅助实现高可用性工具，一般都会配合某个具体服务工作，例如mysql,drbd，haproxy等，本篇介绍的就是haproxy,在前期做好keepalived配置后，做一个切换脚本，当haproxy挂掉后，脚本会立即执行keepalived关闭操作，从而让从机接管,该虚IP其实会和本机的物理IP做绑定，访问虚IP其实就可以理解为访问本机物理IP，该虚IP会在脚本被触发后切换到从机，而后访问虚IP也就是在访问从机物理IP，从而实现haproxy的高可用性。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">这个实验模拟的功能其实就是利用haproxy实现apache服务器间的负载均衡，缓解并发压力，并保证haproxy-master若挂掉,haproxy-backup能无缝接管，实现WEB站点负载均衡+高可用性。保证客户端无缝获取网站资源。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">解决方案：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境：centos6.3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache: httpd-2.4.4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy: haproxy-1.4.8
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalived：keepalived-1.2.7
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy VIP: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;192.168.7.70
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy-master(haproxy1): &nbsp; &nbsp;&nbsp;192.168.7.71 &nbsp; &nbsp;ha1.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy-backup(haproxy2): &nbsp; &nbsp;&nbsp;192.168.7.72 &nbsp; &nbsp;ha2.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache1: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;192.168.7.73 &nbsp; &nbsp;www1.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache2: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;192.168.7.74 &nbsp; &nbsp;www2.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/1.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/1.jpg" alt="1" width="681" height="306" class="alignnone size-full wp-image-67" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1)为仅haproxy1配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy2)为仅haproxy2配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1，haproxy2)为haproxy1和haproxy2都得配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>部署环境：</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.关闭iptables和SELINUX
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service iptables stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# setenforce 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysconfig/selinux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SELINUX=disabled
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.apache安装
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	配置详见传送门：<a href="http://www.showerlee.com/archives/6" target="_blank">http://www.showerlee.com/archives/6</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：haproxy+keepalived其实搭配nginx效果也不错，本人线上因为长期使用apache，所以这篇博文就以apache介绍为主。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	安装完毕只需配置客户端浏览器访问根页面显示本机IP地址。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>一.haproxy安装配置：(haproxy1，haproxy2)</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz" rel="nofollow">http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar zxvf haproxy-1.4.8.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd haproxy-1.4.8
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# uname -a &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //查看linux内核版本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make TARGET=linux26 PREFIX=/usr/local/haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make install PREFIX=/usr/local/haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# useradd -s /sbin/nologin haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# passwd haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chown -R haproxy.haproxy /usr/local/haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	配置：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	global
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log 127.0.0.1&nbsp;local0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	maxconn&nbsp;5120 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	chroot&nbsp;/usr/local/haproxy &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	user&nbsp;haproxy &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	group&nbsp;haproxy &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	daemon &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	quiet &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	nbproc &nbsp;1 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pidfile&nbsp;/usr/local/haproxy/haproxy.pid
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">#启动服务后后会滚动日志，生产环境建议注释掉</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	debug &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	defaults
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log 127.0.0.1&nbsp;local3 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mode&nbsp;http &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	option&nbsp;httplog
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	option&nbsp;httpclose
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	option &nbsp;dontlognull
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#option &nbsp;forwardfor &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	option &nbsp;redispatch
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	retries&nbsp;2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	maxconn&nbsp;2000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	balance&nbsp;source &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	contimeout &nbsp; &nbsp; &nbsp;5000 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	clitimeout &nbsp; &nbsp; &nbsp;50000 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	srvtimeout &nbsp; &nbsp; &nbsp;50000 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	listen web_proxy :80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;server www1 &nbsp;192.168.7.73:80 &nbsp;weight 5 check inter 2000 rise 2 fall 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;server www2 &nbsp;192.168.7.74:80 &nbsp;weight 5 check inter 2000 rise 2 fall 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	listen stats :8888 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mode http &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#transparent &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	stats uri / haproxy-stats &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	stats realm Haproxy \ statistic
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#认证 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	stats auth haproxy:password &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	启动haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg &amp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：这里加上“&amp;”是为了让haproxy服务后台运行，去掉“&amp;”可实时查看其滚动日志</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	日志：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Available polling systems :
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; sepoll : pref=400, &nbsp;test result OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;epoll : pref=300, &nbsp;test result OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; poll : pref=200, &nbsp;test result OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; select : pref=150, &nbsp;test result OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Total: 4 (4 usable), will use sepoll.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Using sepoll() as the polling mechanism.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.accept(0004)=0007 from [192.168.7.129:5752]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clireq[0007:ffff]: GET / HTTP/1.1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Accept: text/html, application/xhtml+xml, */*
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Accept-Language: zh-CN
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: User-Agent: Mozilla/5.0 (compatible; MSIE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	9.0; Windows NT 6.1; WOW64; Trident/5.0)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Accept-Encoding: gzip, deflate
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Host: 192.168.7.71
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: If-Modified-Since: Tue, 28 May 2013 18:22:10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GMT
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: If-None-Match: "10-4ddcb57ecf1ee"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Connection: Keep-Alive
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvrep[0007:0008]: HTTP/1.1 304 Not Modified
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvhdr[0007:0008]: Date: Tue, 28 May 2013 19:48:35 GMT
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvhdr[0007:0008]: Server: Apache/2.4.4 (Unix)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvhdr[0007:0008]: Connection: close
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvhdr[0007:0008]: ETag: "10-4ddcb57ecf1ee"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvcls[0007:0008]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clicls[0007:0008]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.closed[0007:0008]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看是否启动
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -ef|grep haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy &nbsp; 2255 &nbsp; &nbsp; 1 &nbsp;0 03:33 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 /usr/local/haproxy/sbin/haproxy -f
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2323 &nbsp;2291 &nbsp;0 03:56 pts/1 &nbsp; &nbsp;00:00:00 grep haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# pkill haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	其中：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy代理：192.168.7.71:80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache1： &nbsp; &nbsp;192.168.7.73:80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache2： &nbsp; &nbsp;192.168.7.74:80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	统计页面监听的端口：8888
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	访问页面：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<p><a href="http://192.168.7.71:8888/haproxy-stats" rel="nofollow">http://192.168.7.71:8888/haproxy-stats</a></p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	认证账号/密码：haproxy/password
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/2.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/2.jpg" alt="2" width="654" height="236" class="alignnone size-full wp-image-68" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">总结：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&nbsp; &nbsp; 通过日志可以看出，客户端192.168.7.129连接haproxy192.168.7.71的80端口，且客户端无</span><span style="color:#FF0000;">论如何刷新页面，haproxy都只会把访问请求跳转到apache2的192.168.7.74地址，这是因为</span><span style="color:#FF0000;">balance source这个参数会保持会话ID,如果改成balance roundrobin模式，那么客户端会轮流</span><span style="color:#FF0000;">连接两台web服务器，线上还是建议使用balance source,这样会保持某一客户端在长时间内保</span><span style="color:#FF0000;">持他的会话，不会来回跳转。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&nbsp; &nbsp; 这里其实已经利用haproxy完成了对两台apache服务器的负载均衡功能，但如何保证负载均衡的</span><span style="color:#FF0000;">高可用性，这里就得利用keepalived的热备功能，保证haproxy1如果挂掉，haproxy2能实时接</span><span style="color:#FF0000;">管，实现网站前端负载均衡高可用，这也是我们目前比较流行的组合haproxy+keepalived。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>二.keepalived安装配置：(haproxy1，haproxy2）</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://www.keepalived.org/software/keepalived-1.2.7.tar.gz" rel="nofollow">http://www.keepalived.org/software/keepalived-1.2.7.tar.gz</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar zxvf keepalived-1.2.7.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd keepalived-1.2.7
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local/keepalived --with-kernel-
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	dir=/usr/src/kernels/2.6.32-279.el6.x86_64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make &amp;&amp; make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	设置keepalived启动脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir /etc/keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig keepalived on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/keepalived/keepalived.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	! Configuration File for keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	global_defs {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	router_id LVS_DEVEL
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	vrrp_instance VI_1 {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	state MASTER
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	interface eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_router_id 51
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	priority 150
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	advert_int 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	authentication {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_type PASS
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_pass 1111
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_ipaddress {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.70
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy2）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/keepalived/keepalived.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	! Configuration File for keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	global_defs {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	router_id LVS_DEVEL
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	vrrp_instance VI_1 {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	state BACKUP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	interface eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_router_id 51
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	priority 120
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	advert_int 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	authentication {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_type PASS
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_pass 1111
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_ipaddress {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.70
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	启动keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service keepalived start
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -ef |grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;1726 &nbsp;1722 &nbsp;0 10:57 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 sh /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2678 &nbsp; &nbsp; 1 &nbsp;0 11:15 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2680 &nbsp;2678 &nbsp;0 11:15 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2681 &nbsp;2678 &nbsp;0 11:15 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2691 &nbsp;2178 &nbsp;0 11:15 pts/1 &nbsp; &nbsp;00:00:00 grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	创建haproxy+keepalived脚本：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">实现当haproxy挂掉后，能再次启动haproxy,若无法再次启动则彻底关闭keepalived将VIP交给</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">从机处理。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1，haproxy2）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	while :
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	do
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	hapid=`ps -C haproxy --no-header |wc -l`
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; if [ $hapid -eq 0 ];then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; sleep 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; if [ $hapid -eq 0 ];then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; /etc/init.d/keepalived stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; sleep 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	done
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	改执行权限
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chmod 755 /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	强制后台执行（关闭客户端连接也会继续运行）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# nohup sh /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注；该脚本参考酒哥的"构建高可用LINUX服务器"一书，需在keepalived开机正常启动后，方可在主从机执行。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">本人实测，不能将该脚本做开机启动，会导致开机将keepalived服务关闭，如想实现开机自动执行该脚本，估计要做脚本语句优化，这里有兴趣的朋友可以帮忙修改一下。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>三.测试：</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.在两台机器上分别执行ip add，目前显示VIP在haproxy1上与本机网卡绑定
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ip add
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;link/ether 00:0c:29:d2:c6:75 brd ff:ff:ff:ff:ff:ff
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet 192.168.7.71/24 brd 192.168.7.255 scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet&nbsp;<span style="color:#FF0000;">192.168.7.70/32</span>&nbsp;scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet6 fe80::20c:29ff:fed2:c675/64 scope link
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; valid_lft forever preferred_lft forever
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy2）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ip add
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;link/ether 00:0c:29:ff:21:19 brd ff:ff:ff:ff:ff:ff
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet 192.168.7.72/24 brd 192.168.7.255 scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet6 fe80::20c:29ff:feff:2119/64 scope link
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; valid_lft forever preferred_lft forever
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在浏览器访问该虚IP:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<p><a href="http://192.168.7.70" rel="nofollow">http://192.168.7.70</a></p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	返回如图：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/3.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/3.jpg" alt="3" width="651" height="99" class="alignnone size-full wp-image-69" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">证明，keepalived让haproxy1接管负载均衡，将页面跳转到apache2上</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.停掉haproxy1上的haproxy服务，5秒后keepalived会自动将其再次启动
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（haproxy1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# pkill haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	等5秒
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -ef |grep haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;1712 &nbsp;1708 &nbsp;0 01:17 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 sh /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy &nbsp; 2440 &nbsp; &nbsp; 1 &nbsp;0 01:29 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 /usr/local/haproxy/sbin/haproxy -f
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2443 &nbsp;1807 &nbsp;0 01:29 pts/1 &nbsp; &nbsp;00:00:00 grep haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.停掉主的keepalived，备机马上接管服务
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（haproxy1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service keepalived stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# uname -a
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Linux&nbsp;<span style="color:#FF0000;">ha1.example.com</span>&nbsp;2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	x86_64 x86_64 x86_64 GNU/Linux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（haproxy2）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ip add
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;link/ether 00:0c:29:ff:21:19 brd ff:ff:ff:ff:ff:ff
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet 192.168.7.72/24 brd 192.168.7.255 scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet&nbsp;<span style="color:#FF0000;">192.168.7.70/32&nbsp;</span>scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet6 fe80::20c:29ff:feff:2119/64 scope link
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; valid_lft forever preferred_lft forever
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# uname -a
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Linux<span style="color:#FF0000;">&nbsp;ha2.example.com&nbsp;</span>2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	x86_64 x86_64 x86_64 GNU/Linux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	现已跳转到haproxy2,在浏览器再次访问该虚IP:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<p><a href="http://192.168.7.70" rel="nofollow">http://192.168.7.70</a></p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	返回如图：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/4.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/4.jpg" alt="4" width="586" height="141" class="alignnone size-full wp-image-70" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------大功告成----------</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/65">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Centos6.3下haproxy+keepalived+apache配置笔记" href="http://www.showerlee.com/archives/65">http://www.showerlee.com/archives/65</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/65/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
