DRBD简介
Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)
DBRD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。
DBRD的位置处于文件系统以下,比文件系统更加靠近操作系统内核及IO栈。
以上信息,来自于互联网,请尊重版权。接下来笔者将向您展示如何配置heartbeat+drbd的实例。
Drbd实验1
网络的初步配置
给node1配置IP地址,并启动网络服务
修改ip为 192.168.145.99 100
[root@localhost ~]# service network restart
改主机名字 node1.a.com
[root@localhost ~]# vim /etc/sysconfig/network
3 HOSTNAME=node1.a.com
[root@localhost ~]# hostname node1.a.com
注销重新登录,
高可用群集名称一定可以相互解析修改hosts文件
[root@node1 ~]# vim /etc/hosts
5 192.168.145.99 node1.a.com
6 192.168.145.100 node2.a.com
要求两个节点的时钟一致
[root@node1 ~]# hwclock –s
给node2配置IP地址,并启动网络服务
修改ip为 192.168.145.100
[root@localhost ~]# service network restart
改主机名字node2.a.com
[root@localhost ~]# vim /etc/sysconfig/network
3 HOSTNAME=node2.a.com
[root@localhost ~]# hostname node2.a.com
注销重新登录,
高可用群集名称一定可以相互解析修改hosts文件
[root@node1 ~]# scp /etc/hosts node2.a.com:/etc
[root@node1 ~]# vim /etc/hosts
5 192.168.145.99 node1.a.com
6 192.168.145.100 node2.a.com
要求两个节点的时钟一致
[root@node2 ~]# hwclock –s
创建一个扩展分区,用于保持数据同步
保持双方的的同步磁盘大小一致
在node1上,查看磁盘剩余未分区的磁盘容量。
创建出一个分区来,用于存储。
[root@node1 ~]# fdisk /dev/sda
Command (m for help): n 新建分区
Command action
e extended
p primary partition (1-4)
p 新建主分区
Selected partition 4
First cylinder (3954-6527, default 3954):
Last cylinder or +size or +sizeM or +sizeK (3954-6527, default 6527): +1G 大小设为1GB
Command (m for help): p 显示分区结果
Disk /dev/sda: 53.6 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 514048+ 83 Linux
/dev/sda2 65 3888 30716280 83 Linux
/dev/sda3 3889 3953 522112+ 82 Linux swap / Solaris
/dev/sda4 3954 4076 987997+ 83 Linux
Command (m for help): w 保存退出
The partition table has been altered!
[root@node1 ~]# partprobe /dev/sda 重新读取硬盘分区表,加载到内存
[root@node1 ~]# cat /proc/partitions
major minor #blocks name
8 0 52428800 sda
8 1 514048 sda1
8 2 30716280 sda2
8 3 522112 sda3
8 4 987997 sda4
147 0 987928 drbd0
在node2上,查看磁盘剩余未分区的磁盘容量
有空闲的磁盘,和node1一样,创建一个1GB的分区用于同步存储数据。
安装配置drbd的软件包,以内核模块的形式使用 两边都要安装
[root@node1 ~]# rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm
[root@node1 ~]# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
把drbd以模块的形式加载到内核
[root@node1 ~]# modprobe drbd
查看内核模块是否有drbd
[root@node1 ~]# lsmod |grep drbd
drbd 228528 0
编辑drbd的配置文件,在底行模式下读取需要帮助文件[root@node1 ~]# vim /etc/drbd.conf
:r /usr/share/doc/drbd83-8.3.8/drbd.conf
[root@node1 ~]# cd /etc/drbd.d 备份这个文件,免得出错不好修复
[root@node1 drbd.d]# cp global_common.conf global_common.conf.bak
编辑
[root@node1 drbd.d]# vim global_common.conf
底行模式 使用命令1,$d 删除所有的行 添加一下内容
Protocol 协议
Startup 各种延迟
Disk 出错的协议
Net 加密 算法 密钥
Syncer 同步时的速率
global {
usage-count yes;
# minor-count dialog-refresh disable-ip-verification
}
common {
protocol C;
startup {
wfc-timeout 120;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
fencing resource-only;
}
net {
cram-hmac-alg "sha1";
shared-secret "mydrbdlab";
}
syncer {
rate 100M;
}
}
编辑资源文件,需要是 .res结尾的文件
[root@node1 drbd.d]# vim web.res
resource web {
on node1.a.com {
device /dev/drbd0;
disk /dev/sda5;
address 192.168.145.99:7789;
meta-disk internal;
}
on node2.a.com {
device /dev/drbd0;
disk /dev/sda5;
address 192.168.145.100:7789;
meta-disk internal;
}
}
在node2上,安装配置drbd,情况类似node1把node1的drbd文件都拷贝到node2上
[root@node1 drbd.d]# scp * node2.a.com:/etc/drbd.d/
[root@node1 drbd.d]# scp /etc/drbd.conf node2.a.com:/etc/
前面的两边都要做完,才可以初始化,两边都要创建资源
[root@node1 drbd.d]# drbdadm create-md web
启动drbd服务,需要在两个服务器上同时启动[root@node1 drbd.d]# service drbd start
查看谁是主设备primary secondary次设备 没有调整优先级前
[root@node2 drbd.d]# drbd-overview
0:web Connected Secondary/Secondary Inconsistent/Inconsistent C r----
使用命令在node1上 升级为主设备
[root@node1 drbd.d]# drbdadm -- --overwrite-data-of-peer primary web
再次查看时,node1已经升级了为了主设备
查看同步过程
[root@node1 drbd.d]# cat /proc/drbd
查看同步过程,1秒显示一次
[root@node1 drbd.d]# watch -n 1 'cat /proc/drbd'
查看节点1是主设备,节点2是次设备,在节点1上 做写操作
这个实验是单组模型,只有一个主设备
格式化这个设备,挂载设备[root@node1 ~]# mkfs -t ext3 -L drbdweb /dev/drbd0
[root@node1 ~]# mkdir /mnt/1
[root@node1 ~]# mount /dev/drbd0 /mnt/1
[root@node1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 29G 2.6G 25G 10% /
/dev/sda1 487M 16M 446M 4% /boot
tmpfs 127M 0 127M 0% /dev/shm
/dev/drbd0 950M 18M 885M 2% /mnt/1
测试作适当的写操作 拷贝文件
[root@node1 ~]# cd /mnt/1
[root@node1 1]# cp /etc/passwd ./
由于node2是次设备,无法产看信息,
只有把node1的级别降为 次设备,就可以了
降级的方法,卸载,级别设为次
[root@node1 ~]# umount /mnt/1
[root@node1 ~]# drbdadm secondary web 降级为次设备
辅助设备是不能挂载,需要先升级为主设备,再挂载,就可以查看了
[root@node2 drbd.d]# dir /mnt/1
[root@node2 drbd.d]# drbdadm primary web
[root@node2 drbd.d]# mount /dev/drbd0 /mnt/1
进入挂载目录,查看同步过来的数据
在写操作,卸载,产看node1的变化