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

[经验分享] heartbeat+drbd+mysql实现高可用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-28 08:58:31 | 显示全部楼层 |阅读模式
DRBD作用:1、 远程数据备份

          2、 远程数据镜像



DRBD官网:drbd.linbit.com







server1、2都要添加一块硬盘 且容量大小相等

真实服务器server1:  eth0  ---  10.0.5.100(老师做实验的IP)  10.0.199.4(我自己的IP)

                    eth0:0 --  10.0.5.200                 10.0.199.200

                    eth1  ---  192.168.10.1                192.168.100.1

真实服务器 Server2: eth0  ---  10.0.5.1                                       10.0.199.3            


                   eth1  ---   192.168.100.2               192.168.100.2


  两台真实服务器上都要进行以下操作:(以下是在10.0.199.4上的操作)

  (1)安装DRBD
     # yum install kernel kernel-devel flex
  
         #  tar -xvf  drbd-8.4.4-tar.gz
  
     # cd drbd-8.4.4

     # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with -utils --with-km  --with-udev   --with-xen   --with-pacemaker   --with-heartbeat  --with-bashcompletion  --with-distro=redhat  --with-initdir=/etc/init.d   

     # make && make install
     # modprobe drbd
     # lsmod|grep  drbd


(2)配置DRBD

      # vim  /etc/drbd.conf
    # vim /etc/drbd.d/global_common.conf
           global {
        usage-count yes;
}

common {
        handlers {
                pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh;  

/usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";            

  pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh;  
/usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";            

   local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drb
d/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";      

}
        startup {
        }
        options {
        }
        disk {
                on-io-error detach;
             }
        net {
                protocol C;
                after-sb-0pri disconnect;
                after-sb-1pri disconnect;
                after-sb-2pri disconnect;
                rr-conflict disconnect;
                cram-hmac-alg sha1;
                shared-secret "aixocm";
            }

        syncer {
                rate 50M;
        }
}


创建r0资源

  #  vim  r0.res

resource r0{    \\r0 资源名字

     on server1   \\第一台设备的主机名

      {     device /dev/drbd0; \\ 自定义的物理设备的逻辑路径
          disk  /dev/sdb1;     \\实际的物理磁盘设备或 逻辑分区
          address 10.0.199.4:7788 ;  \\本机通信地址 或 机器监听地址和端口
          meta-disk  internal; \\源数据的存放方式  internal表示数据和源数据放在同一块磁盘
     }

  on server2

     {     device /dev/drbd0;  \\虚拟设备

          disk  /dev/sdb1;       \\ 实际的磁盘

          address 10.0.199.3:7788;   \\ 本机通信地址

          meta-disk  internal;   \\源数据的存放方式  internal表示数据和源数据放在同一块磁盘
     }

}

# fdisk   /dev/sdb  n  p 1 w \\分区

# fdisk -l


  (3)创建DRBD资源
     # drbdadm create-md r0  \\ create-md创建源数据  r0 资源的名字 主从同时启动  

      # service drbd start  \\主从服务器要同时启动  

      # cat /proc/drbd   \\查看DRBD状态

       ro:Secondary/Secondary \\ 表示本机角色\另一台服务器角色


  (4 )将其中一台服务器提升为主服务器
       # drbdsetup  /dev/drbd0(设备名) primary --o   \\ 在主服务器上操作  

     # cat /proc/drbd \\查看DRBD状态


     (5 )格式化drbd设备

     # mkfs.ext4 /dev/drbd0   \\不是格式化实际的物理分区  只需要主服务器进行此步

     #ls /database/mydata

     # lsof -i:3306  \\ 两边都没有开启

     # mount /dev/drbd0  /database/mydata  \\只需主服务器进行此步

     # df -h
         # df -h  在从服务器上 发现木有挂载


   (6)挂载设备到需要的特定目录   \\只需主服务器进行此步
      #  cd  /database/mydata
     # cd /usr/local/mysql

       #  ./scripts/mysql_install_db  --user=mysql  --datadir=/database/mydata \\数据库初始化

     #  ls

      #  cd /database/mydata



    (7)配置heartbeat的haresource文件  \\主从服务器都要进行此步
  
      此步骤的配置和 上面的  “heartbeat+ldirector+lvs实现高可用集群”中的对heartbeat的设置完全一样

       除了资源配置文件 下面配置资源配置文件:
  
     # vim /etc/ha.d/haresources


   server1 IPaddr::10.0.199.200/32/eth0:0 drbddisk::r0 Filesystem::/dev/drbd0::/ database/mydata::ext4 mysqld     # 10.0.199.200是虚拟IP  server1 是主服务器的主机名



    (8 )# df -h

       # lsof -i:3306

       # umount /database/mydata  \\主服务器进行此步骤

       # service heartbeat start \\两边都要启动  

       # df -h  \\检查是否已挂载

       # lsof -i:3306 \\检查是否启动

       # mysql -u root

       # 授权  mysql> grant all on *.*  to 'root '@'% ' identified by 'aixocm ';

       # 客户端: mysql -u root -h 10.0.199.200   -p   # 10.0.199.200是虚拟IP
       # service heartbeat stop  
  
  从服务器:# df -h  
  DRBD 只能是主服务器才能挂载,从服务器是不能挂载设备 的。
  客户端登录数据库 也是可以的。

  (9 )手动进行 drbd的升级和降级处理
# umount /dev/drbd0
# drbdadm  secondary r0   \\降级
# drbdadm primary r0 \\升级
# mount /dev/drbd0 /database/mydata



===================== 拓展 ==========================


服务器群集技术主要使用是实现网络的负载均衡,通俗地讲就是把多台服务器通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。

集群的优点:

高可伸缩性:群集可以随着负荷的增长,群集系统中添加更多的服务器,来分担网络流量

高可用性:是指群集可以在一台服务器不工作的时候,另一台服务器接管这台服务器的工作,防止其服务器完全瘫痪         高可管理性:系统管理员可以从远程管理一个、甚至一组集群。

LVS(Linux Virtual Server),虚拟服务器是一个高度可扩展性和高可用性的服务器,建立在一个集群的服务器中。服务器集群的架构对用户是完全透明的,并且用户使用起来感觉它只有一个高性能虚拟服务器。

LVS包括IPVS与ipvsadm, IPVS称为IP虚拟服务器是运行在LVS下的提供负载平衡功能的一种技术,在linux2.6的内核中已经默认嵌入。它基本上就是一种4层的交换机

集群计算机按功能和结构可以分成以下几类:

高可用性集群 High-availability (HA) clusters

负载均衡集群 Load balancing clusters

高性能计算集群 High-performance (HPC) clusters

网格计算 Grid computing

LVS集群通常是由LVS Director用于中继入站请求到集群内部节点的转发方法类型描述的。

目前可用的三种方法是:

网络地址转换(LVS-NAT)

直接路由(LVS-DR)

IP隧道(LVS-TUN



运维网声明 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-105283-1-1.html 上篇帖子: heartbeat+iscsi+mysql实现双机高可用 下篇帖子: heartbeat+ldirectord+lvs详细概念说明 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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