kvm-DRBD在虚机中实现

什么DRBD ?

DRBD (分布式复制块设备) 时一款基于linux 的开源软件,由内核模块和管理工具组成的,通过网络的块设备来进行数据的同步。当数据写入本地的DRBD 文件系统上时,同时会通过网络发送到另一台server 上,并且以相同的方式将数据写入。确保本地与远程的server都可以实时同步到数据。 

一般在高可用解决方案中会使用到DRBD ,代替商业存储设备,因为数据保存在本地和远程server 上,需要本地数据坏或者切换时,远程的主机使用它备份的数据可以继续提供服务。 

DRBD 复制协议的类型:

协议A: 异步复制。  本地数据写完成功后立即返回,数据放在buffer 中,如果服务器掉电数据可能丢失

协议B: 内存同步(半同步)复制 。   本地数据写成功将数据发送到远程服务器,发送到对端后立即返回。如果双机掉电数据可能丢失。

协议C: 同步复制。     本地和远端数据写成功后确认返回。  如果磁盘同时损坏数据可能丢失。 

DRBD 使用方式: 

主备模式: 两台存储服务器。1主1备,主故障备顶替主工作,只有一台提供服务,另一台作为backup

主主模式: 两台存储服务器同时提供服务, 共同分担压力,当一台故障,服务新能会下降,但是服务不会中断。

搭建基础的DRBD 实现资源数据同步功能

环境准备的前提: 

前期这些操作在两台server 上都需要操作。 

1. 两台server (ubuntu  14.04),双方网络可以互通

testvm:    10.150.114.97/20      

test-1:     10.150.112.30/20

2. 给两台server 准备分区 (我这里是给准备一个5 G 大小的分区)

我这里给虚机都添加了一块disk 。并且将disk 分了一个主分区,将空间都分配给主分区

fdisk /dev/sdb  (创建新分区。输入“n" 新建分区,输入”p“ 创建主分区,甚于默认回车,会创建一个主分区将磁盘空间都给主分区配置,输入”w“ 保存配置)

3. 通过网络源安装drbd ,也可以自己源码安装。 (这里是网络源安装)

apt-get install -y --force-yes drbd8-utils

4. 配置drbd 配置文件

/etc/drbd.conf是主配置文件,主要用来把全局配置文件和各资源配置文件(所有以.res结尾的文件)包含进来的;

而其它模块配置文件在/etc/drbd.d/下,包括/etc/drbd.d/global_common.conf全局配置文件,下面将会配置的资源配置文件也会放到这里。(test.res 是自己创建的)

配置全局配置文件

 /etc/drbd.d/global_common.conf

global {
usage-count no;        #是drdp 官方给使用drdp的 用户总数统计
}

common {
handlers {

}

startup {

}

options {
}

disk {
}

net {
protocol C;        #设置我们的drdp采用的协议是选择同步复制
}
}

配置DRBD 资源

每个资源通常定义在一个单独的位于/etc/drbd.d目录中的以.res结尾的文件中

/etc/drbd.d/test.res
resource test {         #定义资源名为test
on testvm {          # 节点信息 testvm 是主机名
device /dev/drbd1;       #虚拟出drbd 设备名
disk /dev/sdb1;         #原设备
address 10.150.114.97:7700;  #server 的地址
meta-disk internal ;

}
on test-1 {                                  #节点信息 test-1 是主机名
device /dev/drbd1;      #虚拟出drbd 设备
disk /dev/sdb1;                           #原设备
address 10.150.112.30:7700;    #server的地址
meta-disk internal ;

}
}

两台server 要使用一样的global_common.conf 和test.res 文件

5.启动drbd 

drbdadm create-md all

如果有以下报错

解决: 给sdb 注入一些数据

dd if=/dev/zero of=/dev/sdb1 bs=1M count=100 

启动服务        

service drbd start

检查启动状态

在test-1 上操作 

将test-1 设置为主设备

 drbdadm primary --force test    

 检查虚拟的drbd 设备已存在

 将drbd挂载任意目录上,并在目录下创建文件测试

将主节点设置解挂载,并且设置为从节点

umount /dev/drbd1

drbdadm secondary test

登陆testvm从节点,将从节点升级为主节点,挂载drbd 设备

drbdadm primary test

 

 创建挂载点,挂载设备,发现之前在test-1 主节点创建文件还是存在的。 

原文地址:https://www.cnblogs.com/yk0625/p/14107628.html