系统: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的更多相关文章

  1. 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 ...

  2. 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 ...

  3. 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 工具软件 ...

  4. MariaDB——(一)CentOS 6.5 下 MariaDB 10.0.15 YUM 安装

    1.配置yum源: 在MariaDB官网提供了yum源在线生成器,选择合适的系统和版本后,会生成所需的repo文件内容: 在/etc/yum.repos.d/目录下新建一个MariaDB.repo文件 ...

  5. CentOS7.0 内核(3.10.0-123.el7.x86_64)bug导致KVM物理机重启

    一.问题描述 服务器硬件:DELL R720 系统版本:CentOS7.0 内核版本:3.10.0-123.el7.x86_64 故障现象:偶尔会重启 二.问题原因 经查看dmesg日志发现是kern ...

  6. 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 修改主 ...

  7. Centos 6.5下mysql 8.0.11的rpm包的安装方式

    1.系统版本及mysql下载地址 操作系统:Centos 6.5(Centos 7.4下载对应的mysql版本安装同理) mysql数据库版本:mysql8.0.11 mysql官方网站:http:/ ...

  8. Kubernetes 1.10.0离线安装

    讲述如何通过离线的方式安装Kubernetes,主要用于对Kubernetes的研究学习,不建议在生产环境使用,安装包获取地址: 链接:https://pan.baidu.com/s/1nX5_mem ...

  9. [redhat][centos] 让不同小版本的CentOS7使用相同的内核版本

    背景: CentOS7有定期的小版本发布,即官网释出的ISO,是带着小版本号的.CentOS7可以使用平滑升级,从这些小版本号中升上去. 但是并不是每一次的更新,都在释出的ISO中,这样的话,一台既有 ...

随机推荐

  1. BEC listen and translation exercise 48

    It's not publicly known who the kidnappers were. Because they are not eating such lovely food since ...

  2. Java IO 简记

    1.File 类: l  java.io.File类:文件和目录路径名的抽象表示形式,与平台无关 l  File 能新建.删除.重命名文件和目录,但 File 不能访问文件内容本身.如果需要访问文件内 ...

  3. ACM学习历程—SNNUOJ1132 余数之和(数论)

    Description F(n) = (n % 1) + (n % 2) + (n % 3) + ...... (n % n).其中%表示Mod,也就是余数.例如F(6) = 6 % 1 + 6 % ...

  4. MVC系统过滤器(局部缓存,局部动态)

    1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为单位,理论上缓存时间可以 ...

  5. Poj 1077 eight(BFS+全序列Hash解八数码问题)

    一.题意 经典的八数码问题,有人说不做此题人生不完整,哈哈.给出一个含数字1~8和字母x的3 * 3矩阵,如: 1  2  X            3 4  6            7  5  8 ...

  6. 【转】 Pro Android学习笔记(四一):Fragment(6):数据保留

    目录(?)[-] 通过fragment参数实现数据保留 对TitleFragment进行修改 对DetailActivity进行修改 通过savedInstanceState进行数据保留 保留frag ...

  7. Linux keepalived与lvs的深入分析

    一)概述 在本篇文章里,我们会涉及两部份内容,一个是LVS,另一个则是keepalived. 即我们用LVS和keepalived实现了负载均衡及高可用的服务器.   LVS有实现三种IP负载均衡技术 ...

  8. mysql命令之一:mysql常用命令之一

    一.登录 1.本地登录:MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u roo ...

  9. Linux负载均衡软件之LVS

    一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是linuxvirtualserver.org ...

  10. Linker Tools Error LNK2001

    https://msdn.microsoft.com/en-us/library/f6xx1b1z.aspx https://www.cnblogs.com/runningRain/p/5674833 ...