drbd软件包链接:https://pan.baidu.com/s/1eUcXVyU 密码:00ul

1、使用的资源:
1.1 系统centos6.9 mini
1.2 两台节点主机node1、node2
192.168.1.132 node1
192.168.1.124 node2
1.3 DRBD
disk: /dev/sdb1 10G
DRBD device: /dev/drbd1
DRBD resource: vz1
挂载目录 /vz/vz1

2、设置hostname,ip地址,关闭iptables,selinux

2.1 node1
[root@node1 ~]# hostname
node1
[root@node1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.132 node1
192.168.1.124 node2
[root@node1 ~]# service iptables status
iptables: Firewall is not running.
[root@node1 ~]# getenforce
Disabled
[root@node1 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:BC:22:FE
inet addr:192.168.1.132 Bcast:192.168.1.255 Mask:255.255.255.0

2.2 node2
[root@node2 ~]# hostname
node2
[root@node2 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.132 node1
192.168.1.124 node2
[root@node2 ~]# service iptables status
iptables: Firewall is not running.
[root@node2 ~]# getenforce
Disabled
[root@node2 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:D6:96:1C
inet addr:192.168.1.124 Bcast:192.168.1.255 Mask:255.255.255.0

3.配置ssh无密钥通信

3.1 在node1上
[root@node1 ~]# ssh-keygen -t rsa -b 1024
#按enter键
[root@node1 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node2
#输入node2的密码

3.2 在node2上
[root@node2 ~]# ssh-keygen -t rsa -b 1024
#按enter键
[root@node2 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node1
#输入node1的密码

4.在node1和node2上建立同样大小的分区/dev/sdb1

4.1 分区
[root@node1 ~]# fdisk /dev/sdb

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7b1a86d9

Device Boot Start End Blocks Id System
/dev/sdb1 1 1306 10490413+ 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

4.2 在node1和node2 格式分区格式为ext4
[root@node1 ~]# mkfs -t ext4 /dev/sdb1
[root@node1 ~]# tune2fs -c 0 -i -1 /dev/sdb1
[root@node2 ~]# mkfs -t ext4 /dev/sdb1
[root@node2 ~]# tune2fs -c 0 -i -1 /dev/sdb1

5.安装perl* 包和drbd的安装包上传到node1和node2上的/root/tools/vz/目录
[root@node1 vz]#yum install -y perl*
[root@node1 vz]# yum install -y lrzsz
[root@node1 ~]# cd /root/tools/vz/
[root@node1 vz]# ls
[root@node1 vz]# rz
[root@node1 vz]# ls
drbd83-utils-8.3.13-1.el6.elrepo.x86_64.rpm

[root@node2 vz]#yum install -y perl*
[root@node2 vz]# yum install -y lrzsz
[root@node2 ~]# cd /root/tools/hbvz/
[root@node2 vz]# ls
[root@node2 vz]# rz
[root@node2 vz]# ls
drbd83-utils-8.3.13-1.el6.elrepo.x86_64.rpm

6.安装drbd包

6.1检查内核版本,内核版本要和drbd的版本相对应(由于版本不一样,现在升级内核版本)
[root@node1 vz]# uname -r
2.6.32-696.el6.x86_64
[root@node1 vz]# cd /etc/yum.repos.d/
[root@node1 yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo
[root@node1 yum.repos.d]#cd /etc/yum.repos.d
[root@node1 yum.repos.d]#wget http://download.openvz.org/openvz.repo
[root@node1 yum.repos.d]#rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
[root@node1 yum.repos.d]# yum install -y vzkernel
#配置OS内核参数,进入/etc/sysctl.conf文件,需要重启才会生效
kernel.sysrq = 1

[root@node2 vz]# uname -r
2.6.32-696.el6.x86_64
[root@node2 vz]# cd /etc/yum.repos.d/
[root@node2 yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo
[root@node2 yum.repos.d]#cd /etc/yum.repos.d
[root@node2 yum.repos.d]#wget http://download.openvz.org/openvz.repo
[root@node2 yum.repos.d]#rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
[root@node2 yum.repos.d]# yum install -y vzkernel

6.2 在node1和node2安装drbd,并且加载模块
[root@node1 vz]# rpm -Uvh drbd83-utils-8.3.13-1.el6.elrepo.x86_64.rpm
warning: drbd83-utils-8.3.13-1.el6.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
Preparing... ########################################### [100%]
1:drbd83-utils ########################################### [100%]
[root@node1 vz]# modprobe drbd

[root@node2 ~]# cd /root/tools/vz/
[root@node2 vz]# rpm -Uvh drbd83-utils-8.3.13-1.el6.elrepo.x86_64.rpm
warning: drbd83-utils-8.3.13-1.el6.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
Preparing... ########################################### [100%]
1:drbd83-utils ########################################### [100%]
[root@node2 vz]# modprobe drbd

7.在node1、node2 上测试/dev/sdb1分区的磁盘
[root@node1 vz]# dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0968801 s, 10.8 MB/s
[root@node2 vz]# dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0968801 s, 10.8 MB/s

8.编写drbd的配置文件

8.1 在node1上
[root@node1 vz]# /bin/cp /root/tools/hbvz/global_common.conf -f /etc/drbd.d/
[root@node1 vz]# vi vz1.res
[root@node1 vz]# cat vz1.res
resource vz1 {
on node1 {
device /dev/drbd1;
disk /dev/sdb1;
address 192.168.1.132:7788;
flexible-meta-disk internal;
}
on node2 {
device /dev/drbd1;
disk /dev/sdb1;
address 192.168.1.124:7788;
meta-disk internal;
}
}

[root@node1 vz]# /bin/cp /root/tools/hbvz/vz1.res -f /etc/drbd.d/

8.2 将node1机器上的drbd配置文件都复制到node2机器上
[root@node1 vz]# scp -r /etc/drbd* root@node2:/etc/
drbd.conf 100% 133 0.1KB/s 00:00
vz1.res 100% 293 0.3KB/s 00:00
global_common.conf 100% 1896 1.9KB/s 00:00

9、启动drbd服务

9.1 在node1 上
[root@node1 vz]# drbdadm create-md all
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
[root@node1 vz]# drbdadm up all
[root@node1 vz]# drbd-overview
1:vz1 WFConnection Secondary/Unknown Inconsistent/DUnknown C r----s
[root@node1 vz]# /etc/init.d/drbd start
#填入yes

9.2 在node2 上
[root@node2 vz]# drbdadm create-md all
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
[root@node2 vz]# drbdadm up all
[root@node2 vz]# drbd-overview
1:vz1 Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
[root@node2 vz]# /etc/init.d/drbd start
Starting DRBD resources: [ ].
#注意红色的字体,现在两个节点都是备份节点

10.将vz1资源的master机器是node1
[root@node1 vz]# drbdadm -- --overwrite-data-of-peer primary vz1
[root@node1 vz]# drbd-overview
1:vz1 SyncSource Primary/Secondary UpToDate/Inconsistent C r-----
[>...................] sync'ed: 5.2% (9724/10244)M

#现在看到node1为主节点了,并且在同步数据

11.在node1上创建文件系统,并且挂载
[root@node1 vz]# mkfs.ext4 /dev/drbd1
[root@node1 vz]# tune2fs -c 0 -i -1 /dev/drbd1
[root@node1 vz]# mkdir /vz/vz1 -p
[root@node1 vz]# mount /dev/drbd1 /vz/vz1/

12.上传数据到/vz/vz1上
[root@node1 vz1]# ls
lost+found openstack-sdn.wmv

13.测试

13.1 重启node1,在node2 上新建目录/vz/vz1,然后把node2 设置为主节点,将/dev/drbd1挂载到/vz/vz1
[root@node2 vz1]# drbdadm -- --overwrite-data-of-peer primary vz1
[root@node2 vz1]# mount /dev/drbd1 /vz/vz1
[root@node2 vz1]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.8G 1.5G 7.8G 16% /
tmpfs 233M 0 233M 0% /dev/shm
/dev/sda1 477M 53M 399M 12% /boot
/dev/drbd1 9.8G 289M 9.0G 4% /vz/vz1
[root@node2 vz1]# cd /vz/vz1
[root@node2 vz1]# ls
lost+found openstack-sdn.wmv
#看到之前上传的东西恢复了

[root@node1 ~]# drbd-overview
1:vz1 Connected Secondary/Secondary UpToDate/UpToDate C r-----
[root@node1 ~]# drbd-overview
1:vz1 Connected Secondary/Primary UpToDate/UpToDate C r-----
#看到node1上的变化从次节点变为主节点

13.2 现在node2为主节点,当它崩溃之后,把node1设置为主节点,看看node2上的数据还在
[root@node2 vz1]# echo c >/proc/sysrq-trigger
#此为测试环境,慎用这个命令,node2 已经崩溃
[root@node1 ~]# ping 192.168.1.124
PING 192.168.1.124 (192.168.1.124) 56(84) bytes of data.
From 192.168.1.132 icmp_seq=2 Destination Host Unreachable
From 192.168.1.132 icmp_seq=3 Destination Host Unreachable
From 192.168.1.132 icmp_seq=5 Destination Host Unreachable

[root@node1 ~]# drbdadm -- --overwrite-data-of-peer primary vz1
[root@node1 ~]# mount /dev/drbd1 /vz/vz1/
[root@node1 ~]# cd /vz/vz1/
[root@node1 vz1]# ls
hadoop脚本.docx iaas平台搭建.mp4 lost+found openstack-sdn.wmv

DRBD的主备安装配置的更多相关文章

  1. VRRP主备备份配置示例—实现网关冗余备份

    本示例的基本拓扑结构如图所示. HostA通过Switch 双线连接到RouterA 和RouterB .用户希望实现:正常情况下, 主机以RouterA 为默认网关接入Intemet; 而当Rout ...

  2. Mysql5.7主主互备安装配置

    一.安装说明 ======================================================================================= 环境:   ...

  3. 文件系统:drbd主备服务器文件同步

    一. DRBD介绍 DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地 文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文 ...

  4. Ubuntu14.04双网卡主备配置

    近日有个需求,交换机有两台,做了堆叠,服务器双网卡,每个分别连到一台交换机上.这样就需要将服务器的网卡做成主备模式,以增加安全性,使得当其中一个交换机不通的时候网卡能够自动切换. 整体配置不难,网上也 ...

  5. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  6. MySQL主备复制原理、实现及异常处理

    复制概述 MySQL支持三种复制方式:基于行(Row)的复制.基于语句(Statement)的复制和混合类型(Mixed)的复制. 基于语句的复制早在3.23版本中就存在,而基于行的复制方式在5.1版 ...

  7. Keepalived+Nginx+tomcat实现主备+负载

    部署系统: Red Hat Enterprise Linux Server release 7.0 软件版本:apache-tomcat-7.0.92.tar.gzkeepalived-2.0.11. ...

  8. f5主备切换演练

    1.准备工作: 1)保证主备机同步 2)备份主备机配置 2.切换:所有操作均在主机 方法1:shutdown主机上联的核心交换机的端口: 此方法在主备切换过程中会丢1个包 方法2:命令行下reboot ...

  9. Nginx+Keepalived 主备高可用 安装与配置

    环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10. ...

随机推荐

  1. Java-反射初级知识掌握

    PS:本文就Java基础需要掌握的反射知识做下汇总和分析. Java-reflect:java反射,对应我们研究框架.底层框架起到基本的知识储备. Class类Java的世界类,万事皆对象,所有的类都 ...

  2. 【转载】Java 内存分配全面浅析

    本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java.这类文章网上有很多,但大多比较零碎.本文从认知过程角度出发,将带给读者一个系统的介绍. 本文转载自袭烽大神的博客,原文链接 ...

  3. 最短路 spfa 算法 && 链式前向星存图

    推荐博客  https://i.cnblogs.com/EditPosts.aspx?opt=1 http://blog.csdn.net/mcdonnell_douglas/article/deta ...

  4. 2017广东工业大学程序设竞赛C题爬楼梯

    Description 小时候,我只能一阶一阶得爬楼梯, 后来,我除了能一次爬一阶,还可以一次爬两阶, 到现在,我最多一次可以爬三阶. 那么现在问题来了,我想爬上n层楼,相邻楼层之间有一段楼梯,虽然我 ...

  5. echarts自定义提示框数据

    tooltip: { trigger: "axis", axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: "line" // 默认为 ...

  6. [学习OpenCV攻略][009][从摄像机读入数据]

    cvCreateCameraCapture(设备ID) 创建一个摄像机视频,返回值是CvCapture*类型.设备ID表示设备的编号,如果有多个摄像机设备,-1表示随机选择一个设备. #include ...

  7. 转:深入理解Java的接口和抽象类

    转载原文链接: http://www.cnblogs.com/dolphin0520/p/3811437.html 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有 ...

  8. 冒泡排序和选择排序-java

    冒泡排序 假设有一数组int [] arr  = {9,5,4,10,2};原理是第一个元素和第二个比较,如果前者大于后者便交换位置,然后第二个元素和第三个元素比较,如果前者大于后者便交换位置.以此类 ...

  9. Spark算子--cogroup

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/b612b1e6d9b951fad5574cd0ce573d7e.html cogroup--Transform ...

  10. php网站在服务器上邮件发送不了,在本地可以

    标签: php邮箱 2015-11-27 13:58 879人阅读 评论(0) 收藏 举报 分类: php(2) 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在做phpmailer发送邮 ...