设为首页 收藏本站
查看: 954|回复: 0

[经验分享] centos6.4安装drbd+heartbeat+mysql

[复制链接]

尚未签到

发表于 2015-11-21 08:40:12 | 显示全部楼层 |阅读模式
安装DRBD
关闭iptables和selinux(node1,node2)
/etc/init.d/iptables stop
chkconfig iptables off
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config

同步时间(node1,node2)
ntpdate ntp.api.bz
hwclock -w

设置hosts文件(node1,node2)
vim /etc/hosts
添加
10.2.3.157     node1
10.2.3.158     node2


node1配置host(node1)
hostname node1
vim /etc/sysconfig/network
修改HOSTNAME=node1

node2配置host(node2)
hostname node2
vim /etc/sysconfig/network
修改HOSTNAME=node2

硬盘分区(node1,node2)
fdisk /dev/sdb
n-p-1-默认-默认-w

安装依赖包(node1,node2)
yum install -y gcc gcc-c++ make glibc flex kernel kernel-develkernel-headers
reboot

安装drbd(node1,node2)
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.4.tar.gz
tar zxvf drbd-8.4.4.tar.gz
cd drbd-8.4.4
./configure --prefix=/usr/local/drbd --with-km
makeKDIR=/usr/src/kernels/2.6.32-431.20.3.el6.x86_64/ (这里选择实际环境的内核)
make install
mkdir -p /usr/local/drbd/var/run/drbd
cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/init.d/
chkconfig --add drbd
chkconfig drbd on


安装drbd模块(node1,node2)
cd drbd
make clean
makeKDIR=/usr/src/kernels/2.6.32-431.20.3.el6.x86_64/ (这里选择实际环境的内核)
cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
depmod

加载drbd模块(node1,node2)
modprobe drbd(如果报错,reboot服务器)
查看DRBD模块是否加载到内核
lsmod |grep drbd

修改配置文件(node1,node2)
vim /usr/local/drbd/etc/drbd.d/global_common.conf
清空文件内容,并添加如下配置:
global {
    usage-countyes;
}
common {
    protocolC;
    startup{
       wfc-timeout 120;
       degr-wfc-timeout 120;
    }
    disk {
       on-io-error   detach;
    }
    net {
       after-sb-0pri discard-younger-primary;
       after-sb-1pri discard-secondary;
       after-sb-2pri call-pri-lost-after-sb;
       rr-conflict disconnect;
    }
    syncer{
       rate 100M;
       al-extents 257;
    }
}

添加r0.res文件
vim /usr/local/drbd/etc/drbd.d/r0.res
resource r0 {
    on node1{
       device   /dev/drbd0;
       disk     /dev/sdb1;
       address   10.2.3.157:7789;
       meta-disk internal;
    }
    on node2{
       device   /dev/drbd0;
       disk     /dev/sdb1;
       address   10.2.3.158:7789;
       meta-disk internal;
    }
}


创建DRBD设备并激活资源(node1,node2)
drbdadm create-md r0
等待片刻,显示success表示drbd块创建成功
drbdadm up r0


启动drbd(node1,node2)
/etc/init.d/drbd start

查看状态:(node1,node2)
cat /proc/drbd 或 /etc/init.d/drbd status

创建目录(node1,node2)
mkdir -p /mysqldata

以下为测试drbd
设置为drbd主节点(node1)
drbdadm primary --force r0
etc/init.d/drbd status
挂载drbd(node1)
mkfs.ext4 /dev/drbd0
mount /dev/drbd0 /mysqldata
node1写文件(node1)
cd /mysqldata
touch 1 2 3
ls
cd
umount /mysqldata
drbdadm secondary r0

node2测试(node2)
drbdadm primary --force r0
etc/init.d/drbd status
mount /dev/drbd0 /mysqldata
cd /mysqldata
touch 4 5 6
ls
cd
umount /mysqldata
drbdadm secondary r0

再测试node1(node1)
drbdadm primary --force r0
/etc/init.d/drbd status
mount /dev/drbd0 /mysqldata
ls /mysqldata


安装Heartbeat
关闭iptables和selinux(node1,node2)
/etc/init.d/iptables stop
chkconfig iptables off
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config

同步时间(node1,node2)
ntpdate ntp.api.bz
hwclock -w

设置hosts文件(node1,node2)
vim /etc/hosts
添加
10.2.3.157     node1
10.2.3.158     node2


node1配置host(node1)
hostname node1
vim /etc/sysconfig/network
修改HOSTNAME=node1

node2配置host(node2)
hostname node2
vim /etc/sysconfig/network
修改HOSTNAME=node2


heartbeat 3.0版不同与以前的版本,是由三个不同的项目组成
(下载地址 http://www.linux-ha.org/wiki/Downloads)Heartbeat,glue,agents,安装顺序为glue,agents , Heartbeat

安装依赖包(node1, node2)
yum install -y  kernel kernel-devel watchdogglib2-devel libtool-* net-snmp-devel bzip2-devel ncurses-developenssl-devel libtool libxml2-devel gettext bison flex zlib-develmailx which libxslt docbook-dtds docbook-style-xsl PyXMLshadow-utils opensp autoconfautomake gcc* libuuid-*

重启服务器(node1, node2)
reboot

创建用户(node1, node2)
groupadd haclient
useradd -g haclient -M -s /sbin/nologin hacluster

下载heartbeat3(node1, node2)
cd /usr/local/src
wget http://hg.linux-ha.org/glue/archive/glue-1.0.9.tar.bz2
wgethttps://github.com/ClusterLabs/resource-agents/tarball/v3.9.2
wgethttp://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/7e3a82377fa8.tar.bz2

安装glue(node1, node2)
tar xvf glue-1.0.9.tar.bz2
cd Reusable-Cluster-Components-glue--glue-1.0.9
./autogen.sh
./configure LIBS='/lib64/libuuid.so.1'
make
make install

安装agents(node1, node2)
tar zxvf v3.9.2
cd ClusterLabs-resource-agents-b735277
./autogen.sh
./configure  LIBS='/lib64/libuuid.so.1'
make
make install

安装 Heartbeat(node1, node2)
tar -xvf 7e3a82377fa8.tar.bz2
cd Heartbeat-3-0-7e3a82377fa8
./ConfigureMe configure LIBS='/lib64/libuuid.so.1'
gmake
如果报错(Heartbeat-3-0-7e3a82377fa8/lib/plugins/HBcomm/ucast.c,这个文件貌似有问题,删除468行inti = 1;应该就能make了。)
make install
cp -a /usr/etc/ha.d/ /etc/
rm  -rf /usr/etc/ha.d
ln -s /etc/ha.d /usr/etc
cp /usr/share/doc/heartbeat/haresources /etc/ha.d
cp /usr/share/doc/heartbeat/authkeys /etc/ha.d
cp /usr/share/doc/heartbeat/ha.cf /etc/ha.d
chmod 600 /etc/ha.d/authkeys
chkconfig --add heartbeat
chkconfig heartbeat on

修改配置文件
vim /etc/ha.d/authkeys(node1, node2)
将auth1 和1 crc前边的#去掉,然后保存退出。

vim /etc/ha.d/ha.cf(node1, node2)
清空并添加
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 5
deadtime 15
warntime 10
initdead 120
udpport 694
ucast eth0 10.2.3.158 #另外一台的IP地址,网卡根据实际情况写
auto_failback off
#watchdog /dev/watchdog
node node1
node node2
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster


vim /etc/ha.d/haresources(node1,node1)
最后一行增加(10.2.3.160是一个还没有使用过的vip)
node1 IPaddr::10.2.3.160/16/eth0:0 mysqld_umount mysqld


配置脚本文件(node1,node2)
cd  /etc/ha.d/resource.d
vim mysqld_umount
#!/bin/sh
#
#      High-Availability Pre-Startup/Shutdown Script
#
# Description:  Runs on Startup or shutdown ofheartbeat (not resource based).
#              Also runs before start, after start or before stop,
#              and after stop.
#
#Author:      Matthew Soffen
#
#Support:     linux-ha@lists.linux-ha.org
#
#License:     GNU Lesser General Public License (LGPL)
#
# Copyright:   (C) 2002 Matthew Soffen
#
#
unset LC_ALL; export LC_ALL
unset LANGUAGE; export LANGUAGE

prefix=/usr
exec_prefix=/usr
. /etc/ha.d/shellfuncs

case "$1" in
'start')
       #/sbin/drbdadm -- --do-what-I-say primary all
       /sbin/drbdadm  primary all
       #drbdsetup /dev/drbd1 primary -o
       /bin/mount /dev/drbd0 /mysqldata
       ;;
'pre-start')
       ;;
'post-start')
       ;;
'stop')
       /bin/umount /mysqldata
       /sbin/drbdadm  secondary all
       ;;
'pre-stop')
       ;;
'post-stop')
       ;;
*)
       echo "Usage: $0 { start | pre-start | post-start | stop | pre-stop| post-stop }"
       ;;

esac
exit 0

chmod 755 mysqld_umount



编译安装mysql5.5.30

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpnglibpng-devel freetype freetype-devel libxml2 libxml2-devel zlibzlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-develncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-develkrb5krb5-devel libidn libidn-devel openssl openssl-devel openldapopenldap-devel nss_ldap openldap-clients openldap-servers gd gd2gd-devel gd2-devel pcre-devel cmake libaio libaio-devel

/usr/sbin/useradd -s /sbin/nologin -M mysql

/etc/ha.d/resource.d/mysqld_umount start (node1执行)

mkdir -p /mysqldata/db

mkdir -p /mysqldata/binlog

mkdir -p /mysqldata/ibdata

mkdir -p /var/log/mysql/log

mkdir -p /var/log/mysql/binlog

mkdir -p /usr/local/mysql

mkdir -p /usr/local/mysql/conf

chown -R mysql:mysql /mysqldata

chown -R mysql:mysql /var/log/mysql


tar zxvf mysql-5.5.30.tar.gz
cd mysql-5.5.30


cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_DATADIR=/mysqldata/db -DSYSCONFDIR=/usr/local/mysql/conf/-DMYSQL_UNIX_ADDR=/tmp/db.socket -DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all-DWITH_EMBEDDED_SERVER=1 -DWITH_LIBWRAP=1-DWITH_ZLIB=system-DWITH_DEBUG=0 -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1-DWITH_SSL=system -DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1-DWITH_FEDERATED_STORAGE_ENGINE=1-DWITH_PERFSCHEMA_STORAGE_ENGINE=1-DWITH_LIBWRAP=1
make && make install

cd /usr/local/src/mysql-5.5.30

cp support-files/mysql.server /etc/init.d/mysqld

chmod  755 /etc/init.d/mysqld

rm -rf /etc/my.cnf

vim /usr/local/mysql/conf/my.cnf
添加
#--------------------------
#mysql configure file:
#--------------------------
#################
#single instance:
#################
[client]
port                           = 3306
socket                         = /mysqldata/db.socket

[mysqld]
socket                         = /mysqldata/db.socket
datadir                        = /mysqldata/db
skip-external-locking
key_buffer_size                = 256M
max_allowed_packet             = 300M
table_open_cache               = 2048
sort_buffer_size               = 6M
read_buffer_size               = 6M
read_rnd_buffer_size           = 8M
myisam_sort_buffer_size        = 64M
myisam_max_sort_file_size      = 1G
myisam_repair_threads          = 1
myisam_recover
thread_cache_size              = 32
query_cache_size               = 32M
query_cache_min_res_unit       = 2k
bulk_insert_buffer_size        = 64M
tmp_table_size                 = 256M
thread_concurrency             = 16
innodb_write_io_threads        = 8
innodb_read_io_threads         = 8
thread_stack                   = 192K
skip-name-resolve
max_connections                = 2000
default-storage-engine         = myisam
#federated
server-id                      = 1
slave-skip-errors              = all
expire_logs_days               = 7
#log                            = /var/log/mysql/log/sql_query.log
slow-query-log                 = 1
slow-query-log-file            = /var/log/mysql/sql_query_slow.log
long-query-time                = 5
log-queries-not-using-indexes
log-slow-admin-statements
log-bin                        = /mysqldata/binlog/bin-log
log-error                      = /var/log/mysql/log/mysql.err
master-info-file               = /var/log/mysql/log/master.info
relay-log                      = /var/log/mysql/log/relay-bin
relay-log-index                = /var/log/mysql/log/relay-bin.index
relay-log-info-file            = /var/log/mysql/log/relay-bin.info
binlog_cache_size              = 128M
binlog_format                  = MIXED
max_binlog_cache_size          = 128M
max_binlog_size                = 1G
binlog-ignore-db               = mysql
binlog-ignore-db               = performance_schema
binlog-ignore-db               = information_schema
replicate-ignore-db            = mysql
replicate-ignore-db            = performance_schema
replicate-ignore-db            = information_schema

innodb_data_home_dir           = /mysqldata/ibdata/
innodb_data_file_path          = ibdata:512M:autoextend
innodb_log_group_home_dir      = /mysqldata/ibdata/
back_log                       = 512
transaction_isolation          = READ-COMMITTED
max_heap_table_size            = 246M
interactive_timeout            = 120
wait_timeout                   = 120
innodb_additional_mem_pool_size = 64M
innodb_buffer_pool_size        = 8192M
innodb_file_io_threads         = 4
innodb_thread_concurrency      = 8
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size         = 32M
innodb_log_file_size           = 512M
innodb_log_files_in_group      = 4
innodb_max_dirty_pages_pct     = 90
innodb_lock_wait_timeout       = 120
innodb_file_per_table          = 1
innodb_open_file               = 327500
open_files_limit               = 327500

[mysqldump]
quick
max_allowed_packet             = 50M

[mysql]
#no-auto-rehash
auto-rehash
socket                         = /mysqldata/db.socket
# Remove the next comment character if you are not familiar withSQL
#safe-updates

[myisamchk]
key_buffer_size                = 256M
sort_buffer_size               = 256M
read_buffer                    = 2M
write_buffer                   = 2M

[mysqlhotcopy]
interactive-timeout


chown -R mysql:mysql /usr/local/mysql/conf

chmod 755 scripts/mysql_install_db
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql   --datadir=/mysqldata/db     (仅node1执行)
chown -R mysql:mysql /mysqldata/db (仅node1执行)
chmod -R 700/mysqldata/db          (仅node1执行)
echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile.d/app.sh

/etc/init.d/mysqldstart    (仅node1执行)
/etc/init.d/mysqldstop      (仅node1执行)

ln -s /etc/init.d/mysqld /etc/ha.d/resource.d/mysqld
/etc/init.d/heartbeat start

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-141695-1-1.html 上篇帖子: 如何配置heartbeat v2.1以及遇到的问题 下篇帖子: centos(7) heartbeat 配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表