heartbeat搭建高可用NFS

基本环境准备;

[[email protected] ~]# vim/etc/sysconfig/network  (修改主机名)

NETWORKING=yes

HOSTNAME=node1.dragon.com                    (这里每台主机自行修改为node1,2,3)

[[email protected]~]# vim /etc/hosts                                (修改主机文件,分别指向node1,2,3)

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

127.0.0.1node1.dragon.com node1             (这里每台主机自行修改为node1,2,3)

172.16.18.10node1.dragon.com node1

172.16.18.20node2.dragon.com node2

172.16.18.30node3.dragon.com node3

[[email protected] ~]# scp /etc/hosts node2:/etc/         (把文件传给node2,node3)

[[email protected] ~]# scp /etc/hosts node3:/etc/

[[email protected] ~]# scp/etc/sysconfig/network node2:/etc/sysconfig/

[[email protected] ~]# scp/etc/sysconfig/network node3:/etc/sysconfig/

[[email protected] localhost ~]# init 6(修改完三台服务器名称记得重启)

生成私钥;

方便几台服务器之间传输文件。这里仅是node1给node2和node3传私钥,如果node2想给node1传文件只需同样的配置;

[[email protected] ~]# ssh-keygen -t rsa  (生成密钥,无密码)

[[email protected] ~]# ssh-copy-id node2  (密钥传给node2)

[[email protected] ~]# ssh-copy-id node3  (密钥传给node2)

安装相关包

(在两node1和node2执行)

[[email protected] yum.repos.d]# yum -ygroupinstall "development tools" "platform development"  (安装开发平台,开发环境,三服务器全装)

[[email protected] ~]# yum install net-snmp-libs libnet  PyXML  perl-TimeDate  (安装依赖关系,node1,node2装)

[[email protected] heartbeat2]# cd heartbeat2/

[[email protected] heartbeat2]# ll                                   (相关包可去官网下载)

-rw-r--r-- 1 root root 1420924 Sep 10  2013 heartbeat-2.1.4-12.el6.x86_64.rpm

-rw-r--r-- 1 root root 3589552 Sep 10  2013heartbeat-debuginfo-2.1.4-12.el6.x86_64.rpm

-rw-r--r-- 1 root root  282836 Sep 10 2013 heartbeat-devel-2.1.4-12.el6.x86_64.rpm

-rw-r--r-- 1 root root  168052 Sep 10 2013 heartbeat-gui-2.1.4-12.el6.x86_64.rpm

-rw-r--r-- 1 root root  108932 Sep 10 2013 heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm

-rw-r--r-- 1 root root   92388 Sep 10 2013 heartbeat-pils-2.1.4-12.el6.x86_64.rpm

-rw-r--r-- 1 root root  166580 Sep 10 2013 heartbeat-stonith-2.1.4-12.el6.x86_64.rpm

[[email protected] heartbeat2]# rpm -ivh heartbeat-pils-2.1.4-12.el6.x86_64.rpmheartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-2.1.4-12.el6.x86_64.rpm

设置时间同步

[[email protected] yum.repos.d]# date ;ssh node2‘date‘   (查看时间 )

[[email protected] yum.repos.d]# ntpdate172.16.0.1 ;ssh node2  ‘ntpdate172.16.0.1‘  (我时间服务器是172.16.0.1,也可以去百度找时间服务器)

[[email protected] heartbeat2]# which ntpdate           (查看某命令路径)

/usr/sbin/ntpdate

[[email protected] yum.repos.d]# crontab –e               (在两节点执行,设置任务计划,每三分钟同步一次)

*/3 * * * */usr/sbin/ntpdate 172.16.0.1  &>/dev/null

配置heartbeat

[[email protected] yum.repos.d]# cd/usr/share/doc/heartbeat-2.1.4/

[[email protected] heartbeat-2.1.4]# cp -pauthkeys haresources ha.cf /etc/ha.d/  (保持原有属性,复制文件)

ha.cf:heartbeat的主配置文件;

authkeys:集群信息加密算法及密钥;

haresources:heartbeat v1的CRM配置接口;

[[email protected] heartbeat-2.1.4]# cd /etc/ha.d/

[[email protected] ha.d]# chmod 600 authkeys

[[email protected] ha.d]# vim ha.cf               (编辑主配置文件;)

#      File to write other messages to

logfile /var/log/ha-log

#      Facility to use for syslog()/logger

#logfacility    local0

……………..

mcast eth0 225.0.0.14 6941 0               (多播地址,范围224.0.2.0~238.255.255.255

,可随意填写, 基于多播的方式进行通信 ,选网卡,组,端口,多播报文ttl值(1是直达目标主机),0拒绝接收本地回环

#     Set up a unicast / udp heartbeat medium

……….

#      (note: auto_failback can be any boolean or "legacy")

auto_failback on             (默认选项,出故障时自动恢复)

……….

#      Tell what machines are in the cluster

#      node    nodename ...    -- must match uname -n

#node  ken3

#node  kathy

node node1.dragon.com                         (定义节点名称,必须是各主机#uname -n的名称)

node node2.dragon.com

……….

#      note: don‘t use a cluster node as ping node

#ping 10.10.10.254

ping 172.16.18.30           (定义仲裁节点,能Ping通就说明正常工作)

……….

#      library in the system.

compression    bz2              (定义压缩工具)

#      Confiugre compression threshold

compression_threshold 2               (小于2K不压缩)

[[email protected] ~]# openssl rand -hex 6  (生成一个随机数)

febe06c057d0

[[email protected] ha.d]# vim authkeys       (集群信息加密算法及密钥)

#auth 1

#1 crc

#2 sha1 HI!

#3 md5 Hello!

auth 1

1 sha1 febe06c057d0

[[email protected] ha.d]# vim haresources  (设置资源管理haresources 主节点)

#      They must match the names of the nodes listed in ha.cf, which in turn

#      must match the `uname -n` of some node in the cluster.  So they aren‘t

#      virtual in any sense of the word.

node1.dragon.com  172.16.18.51/16/eth0/172.16.255.255 httpd (主节点,vip(虚拟IP),启动的服务)

[[email protected] ha.d]# scp -p authkeysharesources  ha.cf  node2:/etc/ha.d/  (node1,node2配置同步)

[[email protected] heartbeat2]# service heartbeatstart ; ssh node2 ‘service heartbeat start‘  (启动两节点heartbeat服务,会自动启用httpd服务)

[[email protected] ha.d]# vim /var/www/html/index.html

<h1>node1</h1>

[[email protected] heartbeat2]# vim/var/www/html/index.html

<h1>node2</h1>

访问虚拟IP,发现vip在Node1节点上

[[email protected] ha.d]# service heartbeat stop  (再访问172.16.18.51,会跳转到node2)

[[email protected] ha.d]# service heartbeat start

[[email protected] ha.d]# cd /usr/lib64/heartbeat/

[[email protected] heartbeat]# ./hb_standby  (也可以输入命令使自己变备用节点)

[[email protected] heartbeat]#./hb_takeover  (也可以输入命令使自己变主节点)

添加NFS服务器

[[email protected] yum.repos.d]# mkdir /web/htdocs–pv

[[email protected] yum.repos.d]# vim/web/htdocs/index.html

<h1>pages from nfsserver</h1>

[[email protected]]# vim /etc/exports   (共享文件/web/htdocs)

/web/htdocs172.16.0.0/16(rw,no_root_squash)

[[email protected] yum.repos.d]# service nfs start     (启动NFS服务)

[[email protected] yum.repos.d]# chkconfig nfs on (设置开机启动此服务)

[[email protected] yum.repos.d]# chkconfig   –list  nfs  (查看开机启动)

[[email protected] heartbeat]# cd /etc/ha.d/

[[email protected] ha.d]# service heartbeat stop;ssh node2 ‘service heartbeat stop‘  (先关闭服务)

[[email protected] ha.d]#  mount -t nfs 172.16.18.30:/web/htdocs /mnt  (尝试挂载,最好在两节点都亲尝试)

[[email protected] ha.d]# mount                   (查看是否挂载成功)

[[email protected] ha.d]# umount /mnt/  (成功后卸载)

[[email protected] ha.d]# vim haresources

#node1.dragon.com172.16.18.51/16/eth0/172.16.255.255 httpd (注释前面的配置)

node1.dragon.com172.16.18.51/16/eth0/172.16.255.255Filesystem::172.16.18.30:/web/htdocs::/var/www/html::nfs httpd

Node1(默认主节点名称)   IP地址 Filesystem(代理文件)::172.16.18.30:/web/htdocs(代理文件地址,我们这里是共享文件,也可以是本地文件,如果是本地文件直接写本地路径)::/var/www/html挂在点::nfs文件系统 所用服务:httpd

[[email protected] ha.d]# scp haresourcesnode2:/etc/ha.d/   (复制给Node2)

[[email protected] ha.d]# service heartbeatrestart ;ssh node2 ‘service heartbeat restart‘ (启动服务)

[[email protected] ha.d]# mount           (等待几秒发现文件已经挂载成功)

172.16.18.30:/web/htdocson /var/www/html type nfs (rw,vers=4,addr=172.16.18.30,clientaddr=172.16.18.10)

再次访问172.16.18.51(虚拟IP),就显示NFS的页面了!

[[email protected] ha.d]# serviceheartbeat stop (停止主节点服务)

[[email protected] ha.d]# mout    (文件已经挂载到备用节点)

172.16.18.30:/web/htdocson /var/www/html type nfs (rw,vers=4,addr=172.16.18.30,clientaddr=172.16.18.20)

仍然可以访问!!!

时间: 2024-10-16 20:46:06

heartbeat搭建高可用NFS的相关文章

Lvs+keepalived+httpd+NFS搭建高可用

Lvs+keepalived+httpd+NFS搭建高可用 自己捯饬的模型图 NAT模型图 注意事项:RealServer需要把网关指向Director,并且Director要打开转发功能命令如下: echo "1" > /proc/sys/net/ipv4/ip_foreward DR模型图 注意事项:需要在RealServer配置如下信息: echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc

搭建高可用mongodb集群(二)—— 副本集

http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了.NoSQL的产生就是为了解决大数据量.高扩展性.高

搭建高可用mongodb集群—— 分片

从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来解决这个问题. 传统数据库怎么做海量数据读写?其实一句话概括:分而治之.上图看看就清楚了,如下 taobao岳旭强在infoq中提到的 架构图: 上图中有个TDDL,是taobao的一

Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.net/xyang81/article/details/52554398可以看更多介绍 Keepalived的介绍可以百度一堆一堆的资料.一定要看看哦. 1.基于上一篇博客总结,再次安装一个虚拟机当backup服务器,这个服务器只安装Keepalived+Nginx即可 2.Master还是上一篇博文的

【转】搭建高可用mongodb集群(二)—— 副本集

在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了.NoSQL的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能

搭建高可用MongoDB集群(二): 副本集

在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了.NoSQL的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能

LVS + Keepalived 搭建高可用的负载均衡群集

Keepalived 的设计目标是搭建高可用的 LVS 负载均衡群集,可以调用 ipvsadm 工具来创建虚拟服务器.管理服务器池,而不仅仅用作双机热备.使用 Keepalived 搭建 LVS 群集更加简便易用,主要优势体现在:对 LVS 负载调度器实现热备切换,提高可用性:对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入. 本次我们以 DR 模式的 LVS 群集为基础,增加一台从负载调度器,使用 Keepalived 来实现主.从调度器的热备,从而构建兼有负载均衡.高可用两

MyCAT+MySQL 搭建高可用企业级数据库集群

第1章 课程介绍课程介绍1-1 MyCAT导学 试看1-2 课程介绍 第2章 MyCAT入门这一章中,我们将回顾了垂直切分,水平切分,分库分表等基础概念,然后快速回如何安装和启动MyCAT的,介绍如何以打包好的可执行程序的方式来启动MyCAT.以及如何对其相关的启动配置文件进行配置.2-1 章节综述2-2 什么是MyCAT2-3 什么是数据库中间层2-4 MyCAT的主要作用2-5 MyCAT基本元素2-6 MyCAT安装 第3章 MYCAT核心配置详解本章将对MyCAT的常用核心配置文件ser

使用HeartBeat实现高可用HA的配置过程详解

使用HeartBeat实现高可用HA的配置过程详解 一.写在前面 HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至B机器继续提供服务.常见的实现高可用的开源软件有 heartbeat 和 keepalived. 这样,一台 web 服务器一天24小时提供web服务,难免会存在 web 服务挂掉或服务器宕机宕机的情况,那么用户就访问不了服务了,这当然不是我们期望