共计 3115 个字符,预计需要花费 8 分钟才能阅读完成。
1、在线调整参数:
对现有资源的配置文件进行修改,两个对等节点要保持一致,然后执行 drbdadm adjust <resource> 在两个节点上都要执行;
2、在线校验数据完整性;(这个对性能还是有很大影响的)
它通过验证源对每个底层的设备某一资源的块存储设备一次计算出加密摘要,传输到对等节点,对摘要对应的本地副本块进行验证,若不匹配,则进行标识并进行重新同步,在线验证过程中不会阻塞资源的复制,不会造成系统的中断;
操作方式:
配置文件中修改:
resource <resource>
net{
verify-alg <algorithm>
}
}(ps: 也可以配置到 common 区块,对所有资源都适用)
执行命令:
drbdadm verify <resource>
在验证运行时如果出现 out-of-sync 块,那需要在验证完毕之后使用:
drbdadm disconnect <resource>
drbdadm connect <resource>
这个方式用的还是少,不过可以配置为每周,或者每个月进行一次校验;
3、配置同步的速率:
总的来说还是适合就好,大致取决于磁盘的转速和网卡的 IO,后台带宽被占满影响复制,影响程序;
比较好的大小是,可用带宽的 30%
固定的同步速率:
resource <resource>
disk {
sync-rate 40M;
} (ps:可配置到 common 区块中,对所有资源通用)
临时调整速率:
在预期维护之后加快同步这样的时候可能会用到:
drbdadm disk-options –resync-rate=200M <resource>
若要恢复到原先的同步速率:drbdadm adjust <resource> 在两个 node 执行
对于多个资源配置同步速率的一个范围【略过暂不讨论】
拥堵策略和暂停复制多在广域网中出现,暂不讨论;
4、磁盘 IO 错误处理
resource <resouce>{
disk {
on-io-error <strategy>;
}
}(ps:可在 common 区块中进行设置,对所有资源有效)
处理磁盘错误的几个选项:
detach 分离:默认的选项,如果 node 发生底层磁盘 IO 错误,会将设备运行在 diskless 无盘模式下;
pass_on : drbd 会将错误报告到上层,即文件系统,但是往往会被忽略;
local-io-error 调用本地磁盘 IO 处理程序中定义的命令;需要 local-io-error 定义处理错误的命令;
5、磁盘刷写功能
只要磁盘控制器支持 DRBD 刷写磁盘即可(大部分还是支持的),
在含有 BBC 的 RAID 环境中,可以禁用 DRBD 磁盘刷写功能来获得更高的性能;
resource <resource>
disk {
disk-flushes no;
…
}
6、脑裂通知:
handlers {split-brain “/usr/lib/drbd/notify-split-brain.sh root”; …}
7、脑裂修复策略:
大部分情况下还是手动来修复:
after-sb-0pri:裂脑已经被探测到,但是现在没有节点处于主角色,对于这个选项,drbd 有以下关键字:
disconnect: 不需要自动恢复,仅仅是调用裂脑处理程序的脚本(如果配置了),断开连接并出在断开模式。
discard-younger-primary: 放弃和回滚最后成为主的上面所做的修改。
discard-least-changes: 放弃和回滚,变动比较少的主机上的修改。
discard-zero-changes: 如果任何节点都没有发生任何变化,仅仅申请在一个节点上做出继续修改即可。
after-sb-1pri:裂脑已经被探测到,现有有一个节点处于主角色,对于这个选项,drbd 有以下关键字:
disconnect: 和 after-sb-0pri 一样,调用裂脑处理程序的脚本(如果配置了),断开连接并出在断开模式。
consensus: 和 after-sb-0pri 中同样的修复策略。如果利用这些策略裂脑危害能选择,那就能自动解决。否则,同样断开指定的动作。
call-pri-lost-after-sb: 和 after-sb-0pri 中同样的修复策略。如果利用这些策略裂脑危害能选择,就在受危害的节点上调用 pri-lost-after-sb 程序。这个程序必须确认在 handlers 中配置,并考虑到从集群中移除该节点。
discard-secondary: 不管哪个主机只要处于次角色,都是裂脑的危害者。
after-sb-2pri:在两个节点都处于主角色时,裂脑被发现。次选项使用和 after-sb-1pri 同样的关键字,丢弃次节点并达成共识
一个简短配置:
resource data {
protocol C;
handlers {
split-brain “/usr/lib/drbd/notify-split-brain.sh root”;
local-io-error “/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f”;
}
startup {
wfc-timeout 0;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
cram-hmac-alg sha1;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
max-buffers 8000;
max-epoch-size 8000;
sndbuf-size 0;
}
syncer {
rate 90M;
al-extents 257;
}
on BGP-LF-1MS2232{
device /dev/drbd0;
disk /dev/sda4;
address 192.168.1.104:7788;
meta-disk internal;
}
on BGP-LF-1MS2233{
device /dev/drbd0;
disk /dev/sda4;
address 192.168.1.105:7788;
meta-disk internal;
}
}
相关阅读 :
Linux 高可用(HA)集群之 DRBD 详解 http://www.linuxidc.com/Linux/2013-08/89035.htm
DRBD 中文应用指南 PDF http://www.linuxidc.com/Linux/2013-08/89034.htm
CentOS 6.3 下 DRBD 安装配置笔记 http://www.linuxidc.com/Linux/2013-06/85600.htm
基于 DRBD+Corosync 实现高可用 MySQL http://www.linuxidc.com/Linux/2013-05/84471.htm
CentOS 6.4 下 DRBD 安装配置 http://www.linuxidc.com/Linux/2013-09/90536.htm
DRBD 的详细介绍 :请点这里
DRBD 的下载地址 :请点这里