系统: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
系统:Centos 7.2 内核3.10.0-327.el7.x86_64 # 内核需要高于2.6.32的更多相关文章
- CentOS 7.3 CDH 5.10.0 Druid0.12.4安装记录
CentOS 7.3 CDH 5.10.0安装记录 0. 集群规划192.167.1.247 realtime247 realtime+hadoopdata192.167.1.248 broker24 ...
- centos在线安装mysql报错:file /etc/my.cnf conflicts between attempted installs of mysql-community-server-8.0.16-2.el7.x86_64 and MariaDB-common-10.4.6-1.el7.centos.x86_64
错误提示:file /etc/my.cnf conflicts between attempted installs of mysql-community-server-8.0.16-2.el7.x8 ...
- rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm出现error: open of vsftpd-3.0.2-22.el7.x86_64.rpm failed: No such file or directory的解决方法
情况一: 出现如图问题, 我当时的问题是通过安装rpmbuild工具软件解决的 以前制作rpm时,没有遇到过这个问题,几经搜索也没有解决.后来发现当前的centos没有安装 rpmbuild 工具软件 ...
- MariaDB——(一)CentOS 6.5 下 MariaDB 10.0.15 YUM 安装
1.配置yum源: 在MariaDB官网提供了yum源在线生成器,选择合适的系统和版本后,会生成所需的repo文件内容: 在/etc/yum.repos.d/目录下新建一个MariaDB.repo文件 ...
- CentOS7.0 内核(3.10.0-123.el7.x86_64)bug导致KVM物理机重启
一.问题描述 服务器硬件:DELL R720 系统版本:CentOS7.0 内核版本:3.10.0-123.el7.x86_64 故障现象:偶尔会重启 二.问题原因 经查看dmesg日志发现是kern ...
- CentOS 7 安装 Oracle 11.2.0.4
一.安装环境 CentOS Linux release 7.2.1511 (Core) Oracle Database 11g Release 2 (11.2.0.4) 二.安装前准备 2.1 修改主 ...
- Centos 6.5下mysql 8.0.11的rpm包的安装方式
1.系统版本及mysql下载地址 操作系统:Centos 6.5(Centos 7.4下载对应的mysql版本安装同理) mysql数据库版本:mysql8.0.11 mysql官方网站:http:/ ...
- Kubernetes 1.10.0离线安装
讲述如何通过离线的方式安装Kubernetes,主要用于对Kubernetes的研究学习,不建议在生产环境使用,安装包获取地址: 链接:https://pan.baidu.com/s/1nX5_mem ...
- [redhat][centos] 让不同小版本的CentOS7使用相同的内核版本
背景: CentOS7有定期的小版本发布,即官网释出的ISO,是带着小版本号的.CentOS7可以使用平滑升级,从这些小版本号中升上去. 但是并不是每一次的更新,都在释出的ISO中,这样的话,一台既有 ...
随机推荐
- Java微信开发_Exception_01_The type org.xmlpull.v1.XmlPullParser cannot be resolved. It is indirectly referenced from required .class files
一.源码: package com.souvc.weixin.util; import java.io.InputStream; import java.io.Writer; import java. ...
- 百度编辑器ueditor的toolbars的各个元素代表的功能说明
百度编辑器ueditor的toolbars的各个元素代表的功能说明
- docker异常处理
Error running DeleteDevice dm_task_run failed重启docker即可 Error starting daemon: error initializing gr ...
- C#调试信息打印到输出窗口
System.Diagnostics.Debug.WriteLine("aaaa");
- 关于日志类Log4j的使用
log4j 的配置 #下面定义日志输出级别是 INFO,并且配置了2个输出目的地,一个是A3,一个是console log4j.rootLogger = INFO,A3,CONSOLE #日志最低的输 ...
- 关于系统中:/dev/mem
1)参考:https://blog.csdn.net/lsn946803746/article/details/52948036 博主:lsn946803746 2)参考:https://blog ...
- canvas变换(移动,缩放等)
代码: 1 /** 2 * Created by Administrator on 2016/1/30. 3 */ 4 function draw (id){ 5 var canvas = docum ...
- java类加载器-----用户自定义类加载器实现
java类加载器主要分为如下几种: jvm提供的类加载器 根类加载器:底层实现,主要加载java核心类库(如:java.lang.*) 扩展类加载器:使用java代码实现,主要加载如:jre/lib/ ...
- VisualGDB系列3:安装VisualGDB
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 1 系统需求 系统需求如下: Micro ...
- AxInterop.ShockwaveFlashObjects.dll 问题
在实际项目中引用此dll加载项目启动动画(swf),但在64位上此dll并不支持,解决办法有待商讨,个人在项目中,把加载动画的部分给注释掉了,不给项目中签入,他们用的都是32位系统,我的是64位的.请 ...