系统:Centos 7.2 内核3.10.0-327.el7.x86_64 # 内核需要高于2.6.32

系统:Centos 7.2 内核3.10.0-327.el7.x86_64 # 内核需要高于2.6.32

Drbd : 192.168.8.111:node1/dev/drdb0 /mydeta
192.168.8.112 : node2
Mysql_vip: 192.168.8.200 #下章实现

# 需要的软件包:
mariadb-5.5.53-linux-i686.tar.gz
drbd84-utils-8.9.1-1.el7.elrepo.x86_64.rpm
kmod-drbd84-8.4.6-1.el7.elrepo.x86_64.rpm
yum 需要安装的软件 pcs, ansible, crmsh, libxslt

# drbd是基于主机名通信的在/etc/hosts中增加
# 以本地ip地址如192.168.8.111 node1这样的方式添加一个地址一行、 127.0.0.1 不要填uname -n的名称

# 安装crmsh yum源如下 [root@node1 ~]# vim /etc/yum.repos.d/ha.repo
[network_ha-clustering_Stable]
name=Stable High Availability/Clustering packages (CentOS_CentOS-7)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7//repodata/repomd.xml.key
enabled=1

# 安装crmsh 单台主机安装就行
yum -y install crmsh libxslt ansible pcs

# 主机互信
[root@node1 ~]# ssh-keygen
[root@node1 ~]# cat .ssh/id_rsa.pub > .ssh/authorized_keys
[root@node1 ~]# chmod go= .ssh/authorized_keys
[root@node1 ~]# scp -p .ssh/id_rsa.pub .ssh/authorized_keys 192.168.8.112:/root/.ssh/

# 出现以下错误
scp: /root/.ssh/: No such file or directory
# 解决方案
连接node2创建.ssh mkdir /root/.ssh


# drbd配置段
# 安装drbd前先准备两块硬盘 node1 跟node2 同样配置

rpm -ivh http://elrepo.reloumirrors.net/elrepo/el7/x86_64/RPMS/drbd84-utils-8.9.1-1.el7.elrepo.x86_64.rpm
yum -y install http://elrepo.reloumirrors.net/elrepo/el7/x86_64/RPMS/kmod-drbd84-8.4.6-1.el7.elrepo.x86_64.rpm

[root@node1 drbd-8.4.8-1]# modprobe drbd
[root@node1 drbd-8.4.8-1]# lsmod | grep drbd
drbd 405537 0
libcrc32c 12644 2 xfs,drbd

# 将新建的磁盘分区
[root@node1 sbin]# fdisk /dev/sdb# 自己新建就成、两边大小保持一致跟raid1一样

# 配置drbd
[root@node1 sbin]#

# drbd配置: http://502245466.blog.51cto.com/7559397/1298945
# drbd常见错误: http://www.j3j5.com/post-128.html

[root@node1 drbd.d]# vim global_common.conf

global {
usage-count no;
}

common {
protocol C;
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/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
}

startup {
}

options {
}

disk {
on-io-error detach;
}

net {
cram-hmac-alg "sha1";
shared-secret "xiong123";
}
syncer {
rate 1024M;
}
}

[root@node1 drbd.d]# vim mydrbd.res
resource mydrbd {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;

on node1{on为开启,node1为节点名称
address 192.168.8.111:7789;
}
on node2{
address 192.168.8.112:7789;
}
}

[root@node1 drbd.d]# scp mydrbd.res global_common.conf node2:/usr/local/drbd/etc/drbd.d/


############测试drbd是否成功######

[root@node1 drbd.d]# drbdadm create-md mydrbd
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created

# 配置启动否则corosync ocf无法直接定义drbd启动
[root@node1 sbin]# systemctl enable drbd.service

# 此处为测试drbd是否完整 两边都得同时启动
[root@node1 sbin]# systemctl start drbd.service

[root@node1 drbd.d]# drbdadm primary --force mydrbd # 将主机强制成为主节点
[root@node73 drbd.d]# drbd-overview
0:mydrbd/0 Connected Primary/Secondary UpToDate/UpToDate# Primary/Secondary 主从,另一端是Secondary/Primary


#格式磁盘
[root@node1 drbd.d]# mkfs.ext4 /dev/drbd0

# 挂载 两个节点都需要创建 /mydata/
[root@node1 drbd.d]# mount /dev/drbd0 /mydata/
[root@node1 drbd.d]# df -Th
/dev/drbd0 ext4 4.8G 20M 4.6G 1% /mydata

复制一个文件至/mydata目录中,并将主drbd设置为从
[root@node1 ~]# umount /mydata/
[root@node1 ~]# drbdadm secondary mydrbd
[root@node1 ~]# drbd-overview
0:mydrbd/0 Connected Secondary/Secondary UpToDate/Diskless

# 节点2操作配置 无需格式化/dev/drbd0
[root@node2 drbd.d]# drbdadm primary mydrbd
[root@node2 drbd.d]# mkdir /mydata
[root@node2 drbd.d]# mount /dev/drbd0 /mydata/
[root@node2 drbd.d]# cd /mydata/
[root@node2 mydata]# ls
issue lost+found

# 最后将drbd服务都停止
[root@node1 /]# umount /mydata/
[root@node1 /]# systemctl stop drbd
[root@node2 /]# systemctl stop drbd

############################测试结束########################################

 

# pcs配置drbd高可用
# 安装
# 安装pcs软件如果报/sbin/xxx命令的名字将crmsh.repo先改成crmsh.repo.bak 再安装
[root@node1 sbin]# ansible ha -m yum -a "name=pcs state=installed"

# pcs认证需要
[root@node1 sbin]# ansible ha -m shell -a 'echo "xiong" | passwd --stdin hacluster'

# 启动pcs服务
[root@node1 sbin]# ansible ha -m service -a "name=pcsd state=started enabled=yes"

# 认证集群服务
[root@node1 sbin]# pcs cluster auth node1 node2
Username: hacluster
Password:
node1: Authorized
node2: Authorized

# 添加一个集群名为myha 并设置组播地址为235.35.32.24
[root@node1 sbin]# pcs cluster setup --name myha node1 node2 --mcast0 235.35.32.24

# 检查集群服务是否正常
[root@node1 sbin]# corosync-cmapctl | grep mem
runtime.totem.pg.mrp.srp.memb_commit_token_rx (u64) = 4
runtime.totem.pg.mrp.srp.memb_commit_token_tx (u64) = 4
runtime.totem.pg.mrp.srp.memb_join_rx (u64) = 5
runtime.totem.pg.mrp.srp.memb_join_tx (u64) = 3
runtime.totem.pg.mrp.srp.memb_merge_detect_rx (u64) = 332
runtime.totem.pg.mrp.srp.memb_merge_detect_tx (u64) = 332
runtime.totem.pg.mrp.srp.members.1.config_version (u64) = 0
runtime.totem.pg.mrp.srp.members.1.ip (str) = r(http://yihuanyule.cn/ 0) ip(192.168.8.111)
runtime.totem.pg.mrp.srp.members.1.join_count (u32) = 1
runtime.totem.pg.mrp.srp.members.1.status (str) = joined
runtime.totem.pg.mrp.srp.members.2.config_version (u64) = 0
runtime.totem.pg.mrp.srp.members.2.ip (str) = r(0) ip(192.168.8.112)
runtime.totem.pg.mrp.srp.members.2.join_count (u32) = 1
runtime.totem.pg.mrp.srp.members.2.status (str) = joined

# 检查状态
[root@node1 sbin]# pcs status
Cluster name: myha
WARNING: no stonith devices and stonith-enabled is not false
Stack: corosync
Current DC: node1 (version 1.1.13-10.el7-44eb2dd) - partition with quorum
2 nodes and 0 resources configured

Online: [ node1 node2 http://www.yxin7.com/ ]


# 配置高可用

crm(live)configure# primitive mydrbd ocf:linbit:drbd params drbd_resource="mystore" op monitor role="Master" interval=30s timeout=30s op monitor role="Slave" timeout=30s op start timeout=240s op stop timeout=100s

####################正确模板##########################################
primitive mydatas ocf:linbit:drbd \
params drbd_resource=mystore \
op monitor role=Master interval=10s timeout=20s \
op monitor role=Slave interval=20s timeout=20s \
op start timeout=240s interval=0 \
op stop timeout=100s interval=0
######################################################################

crm(live)configure# ms mydrbd_master mydrbd meta clone-max=2 clone-node-max=1 master-max=1 master-node-max=1
crm(live)configure# verify #http://www.yigouyule2.cn/ 检查是否成功

crm(live)# status
Online: [ node73 node74 ]
Master/Slave Set: ms_mydatas [mydatas http://www.22yigouyule.cn/]
Masters: [ node73 ]
Slaves: [ node74 ]

# 配置文件挂载目录
crm(live)configure# primitive mount ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/mydata" fstype="ext4" op start timeout=60s op stop timeout=60s

# 定义排序约束 让mount一直跟着ms_mydatas的主
crm(live)configure# colocation mount_with_ms_mydatas inf: mount ms_mydatas:Master


# 检查是否成功
[root@node73 ~]# df -Th
/dev/drbd0 ext4 16G 45M 15G 1% /mydata

[root@node73 ~]# drbd-overview
0:mystore/0 Connected Primary/Secondary UpToDate/UpToDate /mydata ext4 16G 45M 15G 1%

####################### drbd主从配置文件###############################
primitive mount Filesystem \
params device="/dev/drbd0" directory="/mydata" fstype=ext4 \
op start timeout=60s interval=0 \
op stop timeout=60s interval=0
primitive mydatas ocf:linbit:drbd http://www.zzdaiy2019.cn/\
params drbd_resource=mystore \
op monitor role=Master interval=10s timeout=20s \
op monitor role=Slave interval=20s timeout=20s \
op start timeout=240s interval=0 \
op stop timeout=100s interval=0
ms ms_mydatas mydatas \
meta clone-max=2 clone-node-max=1 master-max=1 master-node-max=1 http://www.sratchina.com/ notify=true
colocation mount_with_ms_mydatas inf: mount ms_mydatas:Master

转载于:https://www.cnblogs.com/chenergougou/p/6901493.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Smoothing滤波处理halcon算子,持续更新

目录anisotropic_diffusionbilateral_filterbinomial_filtereliminate_min_maxeliminate_spfill_interlacegauss_filterguided_filterinfo_smoothisotropic_diffusionmean_imagemean_nmean_spmedian_imagemedian_rectmedian_separate_median_weightedmidrange_imagerank_imager…

日志文件在VS中输出为乱码问题

原因:主要是文件文字格式问题(使用使用 Unicode 字符集):修改项目/属性/常规/字符集/ 未设置

初学者电脑编程入门

1、首先要对编程有个比较大概的了解,编程的对象,编程的原理,编程的目的等等。2、在了解编程基本知识后,要想想自己学习编程后到底要干什么以确定学习的方向。比如说是想要开发手机app,网站开发,企业系统等。…

MVC架构模式(2)

简介: MVC最初是在Smaltalk_80中被用来构建用户界面的。M代表模型Model,V代表视图View,C代表控制器Controller。 Model模型层,可以简单理解就是数据层,用于提供数据。在项目中,(简单理解&#x…

Scene Flow场景流halcon算子,持续更新

目录scene_flow_calibscene_flow_uncalibscene_flow_calib 功能:计算两个立体图像对之间校准的场景流。 scene_flow_uncalib 功能:计算两个立体图像对之间未校准的场景流。

ios学习之旅---指针也不难

1、认识指针#include <stdio.h> //基本数据类型作为函数參数传递是值传递 //void moveFront(int x ,int y) //{ // x x 2; //} void test() {// 确定当前坐标int x 20;int y 150;printf("%p\n",&x);printf("%lu\n",&x);*((int *)(0…

FFmpeg中MPEG-4编码程序追踪,其他FFMPEG自带编码器同理

FFmpeg中与MPEG-4编码相关的主要文件有mpegvideo.c&#xff0c;h263.c等。在mpegvideo.c中&#xff0c; AVCodec mpeg4_encoder { "mpeg4", CODEC_TYPE_VIDEO, CODEC_ID_MPEG4, sizeof(MpegEncContext), MPV_encode_init, MPV_encode_picture, …

符合skyline的3dml网络发布服务

技术交流群&#xff1a;665060698使用java web实现&#xff1b;接口符合skyline的3dml模型形式&#xff1b;通过简单的发布界面&#xff0c;直接发布3dml模型&#xff1b;实现te pro在客户端读取数据&#xff1b;实现在te pro客户端的对应查询功能&#xff1b;负载可以达到skyl…

Texture Inspection 纹理检验halcon算子,持续更新

目录deviation_imageentropy_imagetexture_lawsdeviation_image 功能&#xff1a;计算矩形窗口内的灰度值的标准偏差。 entropy_image 功能&#xff1a;计算矩形窗口内的灰度值的平均信息量。 texture_laws 功能&#xff1a;使用一个Laws文本滤波器&#xff08;地质变形&a…

51NOD 1125(交换机器最小代价) (贪心) 思想 !思想!

题目链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId1125 1125 交换机器的最小代价基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 80 难度&#xff1a;5级算法题收藏关注有N台机器重量各不相等&#xff0c;现在要求把这些机器按照…

《Python从小白到大牛》简介

《Python从小白到大牛》已经上市&#xff01; 本书是一部系统论述Python编程语言、OOP编程思想以及函数式编程思想的立体化教程&#xff08;含纸质图书、电子书、教学课件、源代码与视频教程&#xff09;。为便于读者高效学习&#xff0c;快速掌握Python编程方法。本书作者精心…

c语言基础知识_结构体访问,共同体,枚举类型

C语言结构体变量的引用&#xff1a;对于定义的结构体类型的普通变量&#xff0c;访问其成员用圆点运算符&#xff08;“.”&#xff09;&#xff0c;标准访问方式如下&#xff1a;   结构体变量名.成员名   对于定义为指向结构体的指针变量&#xff0c;用箭头运算符&#x…

Wiener Filter维纳滤波器halcon算子,持续更新

目录gen_psf_defocusgen_psf_motionsimulate_defocussimulate_motionwiener_filterwiener_filter_nigen_psf_defocus 功能&#xff1a;产生一个均匀散焦模糊的脉冲相应。 gen_psf_motion 功能&#xff1a;产生一个&#xff08;线性&#xff09;运动模糊的脉冲相应。 simula…

【转载】数据库操作:添加、插入、更新语句

原始日期&#xff1a; 2016-07-22 12:03 SQL常用命令使用方法&#xff1a;(1) 数据记录筛选&#xff1a;sql"select * from 数据表 where 字段名字段值 order by 字段名 [desc]"sql"select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]&qu…

webpack学习

全局安装安装webapck npm i webpack -g 现在我们就可以全局的使用webpack命令了 webpack中基础的命令&#xff1a; webpack enter.js output.js --watch 这个命令是将enter.js打包成output.js&#xff0c;然后html只需要引用该文件就可以了看如下entry.js,这是简单的js代码。 /…

3D 相机halcon算子,持续更新

目录add_scene_3d_cameraadd_scene_3d_instanceadd_scene_3d_labeladd_scene_3d_lightclear_scene_3dcreate_scene_3ddisplay_scene_3dget_display_scene_3d_inforemove_scene_3d_cameraremove_scene_3d_instanceremove_scene_3d_labelremove_scene_3d_lightrender_scene_3dset…

Selenium 中文API

Selenium 中文API 转自&#xff1a;http://blog.csdn.net/lh9529/article/details/3946567 概念 Selenium 通过命令进行驱动。Selenium 可归纳为三种“风格”&#xff1a;动作、辅助和断言。每一个命令调用就是下表中的一行。 命令 目标 值 动作(Actions)命令一般用于操作应用…

C# 特性(Attribute)

个人定义&#xff1a;不侵入对象的情况下&#xff0c;添加对象附注信息。 官方定义&#xff1a;将预定义的系统信息或用户定义的自定义信息与目标元素相关联。目标元素可以是程序集、类、构造函数、委托、枚举、事件、字段、接口、方法、可移植可执行文件模 块、参数、属性 (…

收集js库的网站

https://www.javascripting.com/view/redux

c语言中有关void,sizeof,结构体的一些问题

void[1]&#xff1a;void是C语言中的空类型&#xff0c;void的用途有二。 1、对函数返回的限定&#xff1b; 如果函数没有返回值&#xff0c;则默认返回整数类型&#xff0c;而不是void类型。c有很严格的类型&#xff0c;不允许函数不加类型声明&#xff0c;而编译器则不这么认…