1 安装环境介绍

1.1 系统环境

  内核:3.10.0-862.el7.x86_64 
  版本:CentOS Linux release 7.5.1804 (Core)
  主服务器:hostname = mysql-master-01  心跳通信 IP = 172.16.1.50
  从服务器:hostname = mysql-master-02  心跳通信 IP = 172.16.1.51

注意:以下操作主从同时执行

1.2 前期准备

  关闭防火墙和selinux。

  主从服务器的/etc/hosts一样,如下:

    172.16.1.50   mysql-master-01
    172.16.1.51 mysql-master-02

2 开始安装drbd-84-utils

  2.1 yum源安装:

    rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 

  2.2 drbd 安装:    

    yum -y install drbd84-utils kmod-drbd84 

  2.3 让内核加载 drbd 模块

  [root@mysql-master- ~/]# modprobe drbd
  [root@mysql-master-01 ~/]# lsmod |grep drbd
  drbd
  libcrc32c xfs,drbd   [root@mysql-master- ~/]# echo "modprobe drbd">>/etc/rc.local # 加入开机自启动
  [root@mysql-master-01 ~/]# chmod +x /etc/rc.d/rc.local

3 创建配置文件   注意:主从配置完全一样

  3.1 创建全局配置

[root@mysql-master-01 ~/]# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.bak
[root@mysql-master-01 ~/]# cat > /etc/drbd.d/global_common.conf <<-EOF
global {
usage-count no;
}
common {
net {
protocol C;
}
}
EOF

  3.2 创建资源配置文件

[root@mysql-master-01 ~/]# cat  > /etc/drbd.d/mysql_data.res <<-EOF
resource mysql_data {
disk /dev/sda4;
device /dev/drbd0;
meta-disk /dev/sda3[];
# meta-disk internal; # 内部模式
on mysql-master- {
address 172.16.1.50:;
}
on mysql-master- {
address 172.16.1.51:;
}
}
EOF

3.3 主从服务器都需要添加如下分区、如下操作:
  /dev/sda3 为 500M # 作为 create-md  这个分区一定不能用 mkfs 来格式化
  /dev/sda4 为 2G  # 数据
  刚分完区要通知内核:partprobe /dev/sda

  3.3.1 格式化:/dev/sda4

  [root@mysql-master-01~/]# drbdadm up all && drbdadm -- --overwrite-data-of-peer primary all &&mkfs.xfs /dev/drbd0 或者 mkfs.xfs /dev/sda4

  meta-data=/dev/sda4              isize=512    agcount=4, agsize=125120 blks
   = sectsz=512 attr=2, projid32bit=1
   = crc=1 finobt=0, sparse=0
  data = bsize=4096 blocks=500480, imaxpct=25
   = sunit=0 swidth=0 blks
  naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  log =internal log bsize=4096 blocks=2560, version=2
   = sectsz=512 sunit=0 blks, lazy-count=1
  realtime =none extsz=4096 blocks=0, rtextents=0

  3.3.2 初始化设备元文件3.4 启动系统服务

  drbdadm create-md mysql_data 或者 drbdadm create-md all 

3.5 启动系统服务

 [root@mysql-master-~/]#drbdadm up all
 [root@mysql-master-~/]#systemctl start drbd

4 主节点操作

  4.1 首次,数据不一致,主覆盖从令数据一致(自动设为主盘)

   [root@mysql-master-01 ~/]# drbdadm -- --overwrite-data-of-peer primary mysql_data 或者 drbdadm -- --overwrite-data-of-peer primary all 

  或者强制设置为主:

  [root@mysql-master-01 ~/]# drbdadm primary all --force 或者 drbdadm primary mysql_data --force 

  4.2 查看同步进程

  4.2.1 刚开始同步

[root@mysql-master-/etc/drbd.d/]# cat /proc/drbd
version: 8.4.- (api:/proto:-)
GIT-hash: 66145a308421e9c124ec391a7848ac20203bb03c build by mockbuild@, -- ::
: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r-----
ns: nr: dw: dr: al: bm: lo: pe: ua: ap: ep: wo:f oos:
[==>.................] sync'ed: 16.6% (1673256/2001920)K
finish: :: speed: , (,) want: , K/sec

  4.2.1 同步完成

[root@mysql-master-~/]# cat /proc/drbd
version: 8.4.- (api:/proto:-)
GIT-hash: 66145a308421e9c124ec391a7848ac20203bb03c build by mockbuild@, -- ::
: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
ns: nr: dw: dr: al: bm: lo: pe: ua: ap: ep: wo:f oos:

提示:如果是 drbd90-utils 版本,显示结果是不一样的。

[root@store-nfs-~/]#cat /proc/drbd
version: 9.0.- (api:/proto:-)
GIT-hash: 62f906cf44ef02a30ce0c148fec223b40c51c533 build by mockbuild@, -- ::
Transports (api:): tcp (9.0.-)

  4.3 同步完成就可以挂在,往里面写数据了

  [root@mysql-master-~/]# mount /dev/drbd0 /mnt/ 

  4.4 创建测试文件

touch /mnt/file{..}
ls -l /mnt
total
-rw-r--r--. root root Jun : file1
-rw-r--r--. root root Jun : file2
-rw-r--r--. root root Jun : file3

  4.5 卸载文件系统并切换为备节点  

umount /mnt
drbdadm secondary mysql_data

5 从节点操作

  5.1 确认文件主节点的数据是否同步到从节点

drbdadm primary mysql_data
mount /dev/drbd0 /mnt
ls -l /mnt
total 0
-rw-r--r--. 1 root root 0 Jun 10 09:43 file1
-rw-r--r--. 1 root root 0 Jun 10 09:43 file2
-rw-r--r--. 1 root root 0 Jun 10 09:43 file3

  注意:从节点不能提供访问

6 如果启用了防火墙需打开7788端口

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="ip_address" port port="7788" protocol="tcp" accept'
firewall-cmd --reload

 到此配置完成!!!

CentOS7 yum安装配置 drbd-84-utils (外部模式)的更多相关文章

  1. centos7 yum安装配置redis 并设置密码

    原文:https://www.cnblogs.com/fanlinglong/p/6635828.html centos7 yum安装配置redis 并设置密码 1.设置Redis的仓库地址 yum ...

  2. (转)centos7.0安装配置DRBD

    原文:http://gushiren.blog.51cto.com/3392832/1685207 首先确保两台机器时间同步,配置ssh. 方法一通过yum源安装:yum安装默认路径是/etc/drb ...

  3. CentOS7 yum安装配置

    一.安装必要包 yum install gcc 二.linux下安装 #下载 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar ...

  4. centos7 yum安装配置redis

    1.设置Redis的仓库地址 yum install epel-release 2.安装redis yum install redis 修改配置文件,监听所有的IP地址 vim /etc/redis. ...

  5. CentOS7 yum安装配置 +redis主从配置

    一.安装必要包 yum install gcc 二.linux下安装 #下载 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar ...

  6. CentOS7 yum 安装配置 MySQL 5.7

    1.配置yum源 # 下载mysql源安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm # 安装 ...

  7. Centos7下安装配置Redsocks

    Redsocks是一个开源的网络程序,代码依赖开源的libevent网络库.Redsocks允许你将所有TCP连接重定向到SOCKS或HTTPS代理,比如Shadowsocks(Centos7下安装配 ...

  8. centos7 yum安装MongoDB

    centos7 yum安装MongoDB   原文博客地址http://xgs888.top/post/view?id=64 centos7 yum安装mongodb: 1:创建仓库 vi /etc/ ...

  9. CentOS7 yum 安装 Nginx最新版本

    CentOS7 yum 安装 Nginx最新版本 下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/7/noarc ...

随机推荐

  1. traditional ajax提交数据有列表的时候需要添加

    $.ajax({ url:'test', type:'POST', traditional:true, data: {'test':[1,2,3,4]} }) 提交数据有列表时需要使用traditio ...

  2. ssl证书过期问题

    问题:linux服务器ssl证书过期,申请新证书后,也更换了服务器的证书,但是网页一直提示证书过期 解决:经分析后,发现服务器架构为waf->slb->esc,域名并未直接解析到slb,解 ...

  3. 数据库乐观锁和悲观锁的理解和实现(转载&总结)

    数据的锁定分为两种,第一种叫作悲观锁,第二种叫作乐观锁. 1.悲观锁,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住.[数据锁定:数据将暂时不会 ...

  4. [UE4]虚幻引擎的C++环境安装

    一.一般使用VS2017开发 二.需要勾选“使用C++的游戏开发”

  5. IDEA 运行spring boot出现端口占用的问题

    Description: The Tomcat connector configured to listen on port 8080 failed to start. The port may al ...

  6. mysql error(2003) 10060的再解决

    前段时间在window虚拟机上处理过这样的问题 现在在linux上也遇到了这样的问题一项一项的排查 1.网络问题,ping的通 但是telnet (ip)  (端口号)失败,telnet(ip)都失败 ...

  7. Intellij IDEA超好用的快捷键

    1.首推 Ctrl+Shift+Enter,自动跳出括号,在行尾添加分号,并自动回车. 2.Ctrl+Shift+J,将多行代码折叠成一行. 当你遇到的时候,这个快捷键非常实用.比如你在写painle ...

  8. css常见布局问题

    1.如何实现一个盒子在页面中上下左右居中 方法一:(盒子宽高固定时) .box{ width:400px; height:200px; background:#000; position:absolu ...

  9. Day71Django基础

    Django框架基础一 python中的web框架    a:socket    b:路由跟视图函数匹配关系    c:模板渲染    django:  a: 用了别人的wsgiref   b:自己写 ...

  10. C#异步方法

      Task MainTask;   MainTask = Task.Factory.StartNew(() =>             { //耗时的异步逻辑 });