在Linux上配置DRBD部署

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

本地(主节点)与远程主机(备节点)的数据能够保证实时同步.当本地系统出现问题时,远程主机上还会 保留有一份同样的数据,能够继续使用.在高可用(HA)中使用DRBD功能,能够取代使用一个共享盘阵.
由于数据同一时候存在于本地主机和远程主机上,切换时,远程主机仅仅要使用它上面的那份备份数据,
就能够继续进行服务了。
两台机器的环境例如以下:
hostname:srv5.localdomain
192.168.8.5
hostname:srv6.localdomain
192.168.8.6

准备环境

在两台机器上各新加一块磁盘
fdisk -l 列出全部的磁盘和分区的情况
在实验中能够看到新加的磁盘还没有分区
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

对新加的磁盘分区
[[email protected] ~]# fdisk /dev/sdb

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

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

Calling ioctl() to re-read partition table.
Syncing disks.
载入磁盘信息
partprobe /dev/sdb
cat /proc/partions

安装和配置DRBD

1。两台机器上分别安装drbd
yum -y install kmod-drbd83 drbd83
检查是否成功安装
[[email protected] yum.repos.d]# modprobe -l | grep -i drbd
/lib/modules/2.6.18-53.el5/weak-updates/drbd83/drbd.ko
安装完毕后再/sbin 文件夹下有drbd的命令文件。 在/etc/init.d/文件夹下有drbd启动脚本
[[email protected] yum.repos.d]# ls /sbin/drbd*
/sbin/drbdadm  /sbin/drbdmeta  /sbin/drbdsetup

2,配置drbd
2.1,在两台机器的hosts文件里加入例如以下的内容:
192.168.8.5 srv5.localdomain
192.168.8.6 srv6.localdomain

2.2,DRBD运行的时候要读取/etc/drbd.conf文件,
将文件的内容保存为例如以下内容:
include "drbd.d/global_common.conf";
include "drbd.d/*.res";

改动global_common.conf文件内容例如以下:

global {
	usage-count no;
}
common {
	protocol C;
	startup {
		wfc-timeout 15;
		degr-wfc-timeout 15;
		outdated-wfc-timeout 15;
	}
	disk {
		on-io-error detach;
		fencing resource-only;
	}
	net {
		cram-hmac-alg sha1;
		shared-secret "123456";
	}
	syncer {
		rate 100M;
	}
}

创建一个xserver.res文件内容例如以下:

resource xserver {
	meta-disk internal;
	device /dev/drbd0; #device指定的參数最后必须有一个数字,用于global的minor-count,
	#否则会报错。device指定drbd应用层设备。
	on srv5.localdomain{    #注意:drbd配置文件里。机器名大写和小写敏感。
		address 192.168.8.5:7789;
		disk /dev/sdb5;
	}
	on srv6.localdomain {
		address 192.168.8.6:7789;
		disk /dev/sdb5;
	}
}

2.3,如果上面的配置是在92.168.8.5上做的。拷贝上面配置好的3个文件到92.168.8.6上
scp /etc/drbd.conf 192.168.8.6:/etc/drbd.conf
scp /etc/drbd.d/* 192.168.8.6:/etc/drbd.d/

3,在两台机器上创建drbd元数据信息:
[[email protected] ~]# drbdadm create-md all
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.

4。启动服务。
4.1,在主节点92.168.8.5上
service drbd start
在备份节点92.168.8.6上
service drbd start
在两台机器上用以下的命令drbd-overview或者cat /proc/drbd查看,发现都是Secondary 备份状态
[[email protected] ~]# drbd-overview
  0:xserver  Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
[[email protected] ~]# cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by [email protected], 2013-03-27 16:04:08
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:1044092

4.2,在主节点92.168.8.5上运行以下的命令让其成为主节点
drbdadm -- --overwrite-data-of-peer primary all
然后再看状态:
[[email protected] ~]# drbd-overview
  0:xserver  SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
        [=============>......] sync‘ed: 70.6% (310268/1044092)K
[[email protected] ~]# drbd-overview
  0:xserver  SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
        [================>...] sync‘ed: 89.1% (117372/1044092)K
[[email protected] ~]# drbd-overview
  0:xserver  Connected Primary/Secondary UpToDate/UpToDate C r-----

4.3,将/dev/drbd0格式化并挂载
在主节点192.168.8.5上运行以下的命令
mkfs.ext3 /dev/drbd0
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
4.4,測试同步
在主节点192.168.8.5上运行以下的命令
cd /xserver-storage
echo "a file created in server5" > testfile
在备份节点192.168.8.6上运行以下的命令
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
#mount 会出错,由于mount仅仅能在Primary一端使用
在主节点192.168.8.5上运行以下的命令变成备份节点
umount /xserver-storage
drbdadm secondary all
在备份节点192.168.8.6上运行以下的命令变为主节点,能够看到192.168.8.5同步过来的内容
drbdadm primary all
mount /dev/drbd0 /xserver-storage
less /xserver-storage/testfile
能够查看到文件的内容为"a file created in server5"
在192.168.8.6新建一个文件
echo "a file created in server6" > testfile2
再将192.168.8.5变为主节点后mount能够看到testfile2的内容也同步了。

时间: 2024-10-06 20:14:43

在Linux上配置DRBD部署的相关文章

php+mysql+nginx在linux上的环境部署

一直在linux上鼓捣,还没有完整在linux下配置过nginx服务器环境部署呢,这几天没什么事就部署了一下,遇到的问题也很多,现在把我的环境部署文档发出了,有什么问题大家可以一起讨论一下,希望大家采用后遇到问题多多沟通. || 安装所需各种依赖包 sudo -s LANG=C yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2

Linux上配置HTTP代理及代理例外

在Ubuntu , Debian或者Mint: $ sudo vi /etc/environment http_proxy="http://proxy.com:8000" no_proxy="127.0.0.1, localhost, *.cnn.com, 192.168.1.10, domain.com:8080" 在CentOS的,Fedora或RHEL : $ sudo vi /etc/profile.d/proxy.sh export http_proxy=

在Linux上配置xampp后远程访问域名报错

在Linux上配置xampp后远程访问域名报错: New XAMPP security concept: Access to the requested object is only available from the local network. This setting can be configured in the file "httpd-xampp.conf". 初步分析了一下错误原因是:安全异常,需要修改httpd-xampp.conf.这个文件在:/opt/lampp/

在Linux上配置DNS服务

一.DNS服务简介 DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器. 二.DNS安装配置 准备工作1.配置DNS服务器所需的安装包 DNS服务程序包:bindDNS相关库:bind-libsDNS客户端:bind-utils限制DNS在一个目录中:bind-chroot关闭防火墙:iptables

linux下配置DRBD

今天搭建了DRBD,为了以后查看方便,也希望帮到需要的人,所以整理了文档,分享给大家. 我的系统是CentOS6.7版本 DRBD 1.加硬盘后重启 cat /pro/parttions 分区 fdisk /dev/sdb partprobe /dev/sdb       重新加载文件系统 cat /pro/parttions       可以看到sdb1 2.加载yum源 yum clean all yum repolist 3.同步时间 ntpdate -u asia.pool.ntp.or

Configure Always On Availability Group for SQL Server on RHEL——Red Hat Enterprise Linux上配置SQL Server Always On Availability Group

下面简单介绍一下如何在Red Hat Enterprise Linux上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 之前发表过一篇类似的文章是Configure Always On Availability Group for SQL Server on Ubuntu——Ubuntu上配置SQL Server Always On Availability Group,有对Ubuntu感兴趣的请看那一篇

在 Linux 上配置一个 syslog 服务器

syslog服务器可以用作一个网络中的日志监控中心,所有能够通过网络来发送日志的设施(包含了Linux或Windows服务器,路由器,交换机以及其他主机)都可以把日志发送给它. 通过设置一个syslog服务器,可以将不同设施/主机发送的日志,过滤和合并到一个独立的位置,这样使得你更容易地查看和获取重要的日志消息. rsyslog 作为标准的syslog守护进程,预装在了大多数的Linux发行版中.在客户端/服务器架构的配置下,rsyslog同时扮演了两种角色:1.作为一个syslog服务器,rs

ElasticSearch在linux上的安装部署全程记录

原文地址:http://www.cnblogs.com/tianjixiaoying/p/4316011.html 由于项目需求,需要在linux平台搭建一套ES服务.在搭建过程中,遇到各种各样的问题.后来都一一解决.现在要记录下来这个过程,以及其中遇到的问题,及其解决方法. 一.环境配置 操作系统:Cent OS 7 ElasticSearch版本:1.4.1 JDK版本:1.7 SSH Secure Shell版本:3.2.9 elasticsearch-servicewrapper :ES

tomcat 分别在window 和 Linux上配置SSL-安全问题

公司项目收尾后,通过压力测试后的安全测试,安全测试后中,对于网络传输中数据加密问题存在安全隐患.需要配置SSL. 简单介绍下SSL协议:SSL或者Secure Socket Layer,是一种允许web浏览器和web服务器通过一个安全的连接进行交流的技术.这意味着将被发送的数据在一端被翻译成密码,传送出去,然后在另一端解开密码,再进行处理.这是一个双向的过程,也就是浏览器和服务器都需要在发送数据之前对它们进行加密. SSL协定的另一个重要方面是认证(Authentication).这就是说,在你