热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Pacemaker集群管理实现DRBD存储及应用高可用

本次实验目的,使用Pacemaker实现DRBD存储及应用高可用?实验环境:系统版本:CentOSrelease6.5(Final)_x64node1:ip:192.168.0.2


本次实验目的,使用Pacemaker 实现DRBD存储及应用高可用

 

实验环境:

系统版本:CentOS release 6.5 (Final)_x64

node1: ip
:192.168.0.233     #写进/etc/hosts文件中

node2: ip :192.168.0.234

vip: 192.168.0.183

注意:1.两台机器务必写静态ip,切记莫用dhcp获取ip,确保两个机器互相能ping通

      2. 先禁用防火墙和SELinux

 

注意:此次试验接着我们上一个帖子试验,如有问题,请参照上一个帖子

http://blog.chinaunix.net/uid-26719405-id-4704258.html

 


一.安装/配置DRBD

我这里用的是drbd-8.4.3.tar.gz 源码包,制作的rpm包,

经测试:源码包编译安装drbd后,drbd正常工作,Pacemaker,添加进资源,无法管理

(1).制作rpm包步骤

制作工具  yum install rpm-build  -y    
#
这个一定要安装的

[root@node1 ~]# mkdir -p ~/rpmbuild/SOURCES

[root@node1 ~]#  cd  ~/rpmbuild/SOURCES/

[root@node1 SOURCES]# cp /usr/local/src/drbd-8.4.3.tar.gz .    #拷贝源码包

[root@node1 SOURCES]# tar -zxvf drbd-8.4.3.tar.gz

[root@node1 SOURCES]# cd drbd-8.4.3

[root@node1 drbd-8.4.3]#
./configure --enable-spec --with-km

[root@node1 drbd-8.4.3]# rpmbuild -ba drbd.spec

[root@node1 drbd-8.4.3]# rpmbuild -ba drbd-km.spec     #编译已经完成

把我们编译成的包,拷贝到另一台机器上安装即可

bubuko.com,布布扣

(2)安装DRBD软件包 (两台机器都需要安装)


[root@node1
x86_64]# yum install drbd-*  -y  #
安装我们编译成的rpm

                                

(3)配置我们的drbd (两台drbd配置文件,配置必须一样)

      ①添加内核模块

[root@node1
x86_64]# modprobe  drbd

[root@node1 x86_64]#
lsmod  |grep drbd

bubuko.com,布布扣

bubuko.com,布布扣

②给drbd一个分区,不需要格式化这里使用的/dev/xvdb5 这个设备

[root@node1 drbd.d] vi
/etc/drbd.d/dbdata.res          #
配置文件两台主机保持一样

 

resource data {

 on
node1{

   
device    /dev/drbd1;    

   
disk      /dev/xvdb5;          #
我们给drbd的分区名字

   
address    192.168.0.233:7789;  #
主机ipdrbd数据通信的端口

   
meta-disk internal;

  }

  on
node2{

   
device    /dev/drbd1;

   
disk      /dev/xvdb5;

   
address   192.168.0.234:7789;

   
meta-disk internal;

  }

}

[root@node2 drbd.d] vi
/etc/drbd.d/dbdata.res          #
配置文件两台主机保持一样

 

resource data {

 on
node1{

   
device    /dev/drbd1;    

   
disk      /dev/xvdb5;          #
我们给drbd的分区名字

   
address    192.168.0.233:7789;  #
主机ipdrbd数据通信的端口

   
meta-disk internal;

  }

  on
node2{

   
device    /dev/drbd1;

    disk      /dev/xvdb5;

   
address   192.168.0.234:7789;

   
meta-disk internal;

  }

}

 

初始化drbd

[root@node2 drbd.d]# drbdadm create-md  data -c /etc/drbd.conf #中途提示输入”yes”

[root@node1 drbd.d]# drbdadm create-md  data -c /etc/drbd.conf #中途提示输入”yes”

 

④启动drbd服务:                   #两个都启动

[root@node1 drbd.d]# /etc/init.d/drbd  start

[root@node2 drbd.d]# /etc/init.d/drbd  start

查看drbd状态,会是这样,第一次安装都会这样,不用担心,切换一下就可以了

bubuko.com,布布扣

[root@node1 drbd.d]# drbdadm primary
--force  data -c /etc/drbd.conf

再次查看,ok已经开始同步了,同步完毕,我们再操作

bubuko.com,布布扣

查看状态已经同步完毕

bubuko.com,布布扣


⑤向DRBD中添加数据

[root@node1 drbd.d]#  mkfs.ext4 /dev/drbd1    #格式化drbd1

[root@node1 drbd.d]#  mount /dev/drbd1 /mnt/ #挂载到/mnt

 

cat <<-END >/mnt/index.html                    #写入数据,方便测试

 

 
welcome to drbd                 

 

END

 

 


二.在集群中配置DRBD

查看我们现在正在使用的集群状态

bubuko.com,布布扣

 现在有一个vip资源,和一个Apache资源

(1)我们需要用 cib 创建一个文件,通过cib写入xml文件中启动

[root@node1 ~]#  pcs cluster
cib test_drbd_cfg 

 

[root@node1 ~]# pcs -f test_drbd_cfg resource create Data
ocf:linbit:drbd   drbd_resource=data op monitor
interval=60s

 

现在使用PCS-f选项,更改保存在test_drbd_cfg文件中的配置。此配置由cib推入集群

ocf:linbit:drbd  就是调用的drbd功能模块,drbd_resource=data 这里的data就是我们drbd里面设置的资源  monitor interval=60s  监控间隔时间 cib保存的是我们的机器配置格式xml 查看命令: pcs cluster cib

 

[root@node1 ~]# pcs -f test_drbd_cfg resource master DataClone
Data  master-max=1 master-node-max=1
clone-max=2 clone-node-max=1  notify=true

 

设置我们的从设备

 

查看我们创建好的资源

bubuko.com,布布扣

 

 提交我们的配置到集群中

[root@node1 ~]#  pcs cluster 
cib-push  test_drbd_cfg 

注意:官方给的文档,例子 #pcs
cluster push cib fs_cfg
 
这样写是错误的

bubuko.com,布布扣

[root@node1 ~]# pcs  status       
#
查看集群工作状态

bubuko.com,布布扣

(2)现在DRBD已经工作了,我们可以配置一个Filesystem资源来使用它。 此外,对于这个文件系统的定义,同样的我们告诉集群这个文件系统能在哪运行(DRBD运行的节点)以及什么时候可以启动(在主DRBD启动以后)

 

[root@node1 ~]#  pcs cluster cib fs_cfg    #创建一个fs_cfg 文件,一会用cib推入集群配置

[root@node1
~]#  pcs -f fs_cfg resource create WebFS
Filesystem device="/dev/drbd1"
directory="/var/www/html" 
fstype="ext4"



device写我们的drbd设备,directory写我们Apache的网页存放目录,fstype,文件系统格式





[root@node1
~]#  pcs -f fs_cfg constraint colocation
add WebFS DataClone INFINITY with-rsc-role=Master



[root@node1
~]#  pcs -f fs_cfg constraint order
promote DataClone then start WebFS

bubuko.com,布布扣



(3)告诉集群Apache也要运行在同样的节点上,而且文件系统要在Apache之前启动。

[root@node1
~]# pcs -f fs_cfg constraint colocation add WebSite WebFS INFINITY

[root@node1
~]# pcs -f fs_cfg constraint order WebFS then WebSite

bubuko.com,布布扣

查看我们创建的资源

[root@node1
~]# pcs -f fs_cfg constraint 

[root@node1
~]# pcs -f fs_cfg resource show  

bubuko.com,布布扣



(4)提交我们的配置

[root@node1
~]# pcs cluster cib-push  fs_cfg 

注意:官方给的文档,例子:pcs
cluster push cib fs_cfg
,这样写是错误的

[root@node1
~]# pcs status

bubuko.com,布布扣

用我们的vip访问测试一下,是否是我们之前创建进存储的index.html文件





bubuko.com,布布扣

呵呵,多么可人的界面出现了,我们能访问到我们存储中的文件了

注意:selinux切记要关闭,或者你自己微调也行,不然Apache启动会报错,导致服务切换不过去



 (5): 故障迁移测试

把一个本地节点设置为standby模式并观察集群把所有资源移动到另外一个节点了。并且注意节点的状态改变为不能运行任何的资源。



我们把node1 干掉,所有服务会自动切换到node2,node2存储变成stopped了

[root@node1
~]#  pcs cluster standby  node1

bubuko.com,布布扣



恢复我们的node1

[root@node1
~]# pcs cluster unstandby  node1

存储node1 也正常了

bubuko.com,布布扣

 Pacemaker   集群管理,还有许多强大功能,正在挖掘,敬请期待!


推荐阅读
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
author-avatar
mobiledu2502852625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有