fdjhj 发表于 2015-8-28 08:58:31

heartbeat+drbd+mysql实现高可用

DRBD作用:1、 远程数据备份

          2、 远程数据镜像



DRBD官网:drbd.linbit.com


http://note.youdao.com/yws/res/21298/DB63BE8B46B743618DD27557A6F15766


http://note.youdao.com/yws/res/21384/E078890A267D48EFB1CBD9473D4655F9

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 -xvfdrbd-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|grepdrbd


(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资源

#vimr0.res

resource r0{    \\r0 资源名字

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

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

on server2

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

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

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

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

}

# fdisk   /dev/sdbnp 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是虚拟IPserver1 是主服务器的主机名



    (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
# drbdadmsecondary 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]
查看完整版本: heartbeat+drbd+mysql实现高可用