drbd
1、DRBD安装
1.1、安装依赖包:
- yum -y install gcc kernel-devel kernel-headers flex
下载安装drbd源码包:
- wget http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz
- tar xzf drbd-8.4.1.tar.gz
- cd drbd-8.4.1
- ./configure --prefix=/usr/local/drbd --with-km
- make KDIR=/usr/src/kernels/2.6.32-220.17.1.el6.x86_64/
- make install
- mkdir -p /usr/local/drbd/var/run/drbd
- cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d
- chkconfig --add drbd
- chkconfig drbd on
KDIR=中指定的系统内核源码路径,根据实际情况设置
1.2、安装drbd模块:
- cd drbd
- make clean
- make KDIR=/usr/src/kernels/2.6.32-220.17.1.el6.x86_64/
- cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
- depmod
2、DRBD配置
首先对/dev/sda设备分区/dev/sda3(这一步我是在装系统时就分区了),在根目录下建立/drbdData文件夹,名字自定义,供后面挂载/dev/sda3分区设备用。
2.1、配置global_common.conf
- vi /usr/local/drbd/etc/drbd.d/global_common.conf
确保文件中包含有下内容:
- global {
- usage-count yes;
- }
- common {
- net {
- protocol C;
- }
- }
当然,还可以有其它配置,这是最基本的。
2.2、配置r0资源:
- vi /usr/local/drbd/etc/drbd.d/r0.res
写入文件内容:
- resource r0{
- on masterNode{
- device /dev/drbd1; #逻辑设备的路径
- disk /dev/sda3; #物理设备
- address 192.168.58.128:7788;
- meta-disk internal;
- }
- on backupNode{
- device /dev/drbd1;
- disk /dev/sda3;
- address 192.168.58.129:7788;
- meta-disk internal;
- }
- }
需要把上面用到的防火墙7788端口打开,这个端口是自定义的,如果嫌麻烦可以直接关掉防火墙。
说明:
device 是自定义的物理设备的逻辑路径
disk 是磁盘设备,或者是逻辑分区
address 是机器监听地址和端口
meta-disk 这个还没弄明白,看到的资料都是设为:internal
2.3、建立resource
- modprobe drbd //载入 drbd 模块
- lsmod | grep drbd //确认 drbd 模块是否载入
- dd if=/dev/zero of=/dev/sda3 bs=1M count=100 //把一些资料塞到 sda3 內 (否则 create-md 时会报错)
- drbdadm create-md r0 //建立 drbd resource
- drbdadm up r0
我遇到的问题:
- [root@backupNode /]# drbdadm up r0
- 1: Failure: (104) Can not open backing device.
- Command 'drbdsetup attach 1 /dev/sda3 /dev/sda3 internal' terminated with exit code
原因是我之前已经挂在了/dev/sda3,需要先卸载/dev/sda3设备,解决办法:
- umount /dev/sda3
问题解决。
注:以上每一步骤,都需要在主备服务器上进行配置设置。
2.4、设置Primary Node
将masterNode设为主服务器(primary node),在masterNode上执行:
- drbdadm primary --force r0
查看drbd状态:
- [root@backupNode /]# cat /proc/drbd
- version: 8.4.1 (api:1/proto:86-100)
- GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@masterNode, 2012-05-27 18:34:27
- 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
- ns:4 nr:9504584 dw:9504588 dr:1017 al:1 bm:576 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
已经变成了主服务器。
2.5、创建DRBD文件系统
上面已经完成了/dev/drbd1的初始化,现在来把/dev/drbd1格式化成ext4格式的文件系统,在masterNode上执行:
- [root@masterNode /]# mkfs.ext4 /dev/drbd1
输出:
- mke2fs 1.41.12 (17-May-2010)
- 文件系统标签=
- 操作系统:Linux
- 块大小=4096 (log=2)
- 分块大小=4096 (log=2)
- Stride=0 blocks, Stripe width=0 blocks
- 589824 inodes, 2358959 blocks
- 117947 blocks (5.00%) reserved for the super user
- 第一个数据块=0
- Maximum filesystem blocks=2415919104
- 72 block groups
- 32768 blocks per group, 32768 fragments per group
- 8192 inodes per group
- Superblock backups stored on blocks:
- 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
- 正在写入inode表: 完成
- Creating journal (32768 blocks): 完成
- Writing superblocks and filesystem accounting information: 完成
- This filesystem will be automatically checked every 21 mounts or
- 180 days, whichever comes first. Use tune2fs -c or -i to override.
然后,将/dev/drbd1挂载到之前创建好的/drbdData目录:
- [root@masterNode /]# mount /dev/drbd1 /drbdData
现在只要把数据写入/drbdData目录,drbd即会立刻把数据同步到backupNode的/dev/sda3分区上了。
2.6、DRBD同步测试
1、首先,在主服务器上先将设备卸载,同时将主服务器降为备用服务器:
- [root@masterNode /]# umount /dev/drbd1
- [root@masterNode /]# drbdadm secondary r0
2、然后,登录备用服务器,将备用服务器升为主服务器,同时挂载drbd1设备到 /drbdData目录:
- [root@masterNode /]# ssh backupnode
- Last login: Sun May 27 19:57:17 2012 from masternode
- [root@backupNode ~]# drbdadm primary r0
- [root@backupNode ~]# mount /dev/drbd1 /drbdData/
3、最后,进入/drbdData目录,就可以看到之前在另外一台机器上放入的数据了,如果没有看到,说明同步失败!
drbd的更多相关文章
- 基于corosync+pacemaker+drbd+LNMP做web服务器的高可用集群
实验系统:CentOS 6.6_x86_64 实验前提: 1)提前准备好编译环境,防火墙和selinux都关闭: 2)本配置共有两个测试节点,分别coro1和coro2,对应的IP地址分别为192.1 ...
- 5 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之生产环境下drbd裂脑处理
preface 公司的业务变更,导致服务器要搬迁,所以需要关闭服务器,然后到新地在开启服务器. 关机前确定drbd+heartbeat+mysql是正常使用的,没有异常,Heartbeat和drbd都 ...
- Heartbeat+DRBD+MySQL高可用方案
1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证.默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自 ...
- ZABBIX冗余架构构筑(Centos6.4+pacemaker+corosync+drbd)
基本构成: 用pacemaker+corosync控制心跳和资源迁移 用drbd同步zabbix配置文件和mysql数据库 所有软件都用yum安装至默认路径 主机的drbd领域挂载至/drbd,备机不 ...
- 1 NFS高可用解决方案之DRBD+heartbeat搭建
preface NFS作为业界常用的共享存储方案,被众多公司采用.我司也不列外,使用NFS作为共享存储,为前端WEB server提供服务,主要存储网页代码以及其他文件. 高可用方案 说道NFS,不得 ...
- 4 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之Lvs为Mysql-slave做负载均衡
preface Mysql+drbd+heart能够实现Mysql的高可用了,master出现故障的时候能够快速切换.在现在的业务情况下,读操作多,写操作少的情况下,一台DB server明显扛不住, ...
- 3 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之heartbeat的搭建
preface 在上节的说了mysql的搭建,这节我们在上节的基础上,继续搭建heartbeat. 安装和配置heartbeat 采用yum安装,dbmaster81和dbbackup136上都安装, ...
- 2 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之MySql的搭建
preface 上一节我们讲了DRBD的原理,以及如何部署DRBD,那么现在在上一节的基础上部署Mysql 安装并启动Mysql 为了方便,我一般采用yum安装Mysql.命令如下: 在172.16. ...
- 1 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之DRBD的搭建
preface 近来公司利润上升,购买了10几台服务器,趁此机会,把mysql的主从同步的架构进一步扩展,为了适应日益增长的流量.针对mysql架构的扩展,先是咨询前辈,后和同事探讨,准备采用Mysq ...
- Rhel6-pacemaker+drbd配置文档
系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.119 server19.example.com 192.168.12 ...
随机推荐
- unity3d vs2012
Unity3D自带的MonoDevelop编辑器无论是js还是c#代码提示都很差,很诡异的就是变量名和方法名有的时候提示有的时候不提示.不过用Visual Studio代替MonoDevelop这个问 ...
- uploadify多图片上传实例
upload.php <html> <head> <meta http-equiv="Content-Type" content="text ...
- JavaWeb学习总结(七)—HttpServletRequest
一.Request概述 request是Servlet.service()方法的一个参数,类型为javax.servlet.http.HttpServletRequest.在客户端发出每个请求时,服务 ...
- openSUSE 国内镜像和镜像使用帮助 (zhuan)
https://my.oschina.net/u/2475751/blog/631036?p={{currentPage-1}} https://lug.ustc.edu.cn/wiki/mirror ...
- 转!!java反射机制
Java 反射机制 基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的. 这种动态获取类的信息以及动态调用对象 ...
- 20160805_Win7x64刻录CentOS6.4x64启动光盘
使用的软件为:UltraISO.v.9.6.2.3059.exe Win7 x64 刻录 CentOS6.4 x64 启动盘,有提示错误信息. 网上查了一下,是 AHCI 的驱动没有安装.来到 联想t ...
- JavaScript设计模式与开发实践 - 单例模式
引言 本文摘自<JavaScript设计模式与开发实践> 在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返 ...
- Linux 打包和压缩 方法详解
一般基因组的数据都非常大,所以都会 打包 压缩 后进行传输,拿到数据后的第一步必然就是要 解包 和 解压缩. 基本常识 首先要弄清两个概念:打包 和 压缩. 打包 是指将一大堆文件或目录变成一个总的文 ...
- 笔记11:GDI 制作数字验证码
大二学长让我学下GDI绘制验证码,然后自己就试了试了.找了点视频看了下. 现在会画直线,矩形,字符串,制作验证码 一.绘制一条直线 private void button1_Click(object ...
- javaSE基础之基本细节注解
1. 对于多行注释而言,不能进行嵌套注释.....! /* dada /* d adasdas */ */ 只是不被允许的.... 2.对于记事本编程......如果竹类是公有类,则必须保证类名和为 ...