概念介绍:
sbd:split brain detection(脑裂检测)
stonith: shoot the other node in the head.

 在SBD STONITH里,Linux集群的节点们使用心跳机制来保持互相之间的信息更新。如果集群中的一个节点发生错误,一条有关此节点的错误记录就会被写下并发送到共享的存储设备。当文件系统资源安全的切换到Linux集群的另一个节点上之后,此节点就必须接受这条错误信息并自己关闭自己。
 SBD STONITH是一个简单但有效的方法用来确保在Linux集群环境中数据和其他节点的集成,但是要实现这个功能的前提条件是必须能够进入SAN环境。接下去的步骤描述了如何搭建SBD STONITH环境。
1.首先,你必须创建一个小的逻辑单位(LUN)卷。理论上1MB就足够了,但是为了安全起见,最好的办法是创建一个至少一柱(一般为8MB)的SBD。接下来,你需要找到这个LUN设备独一无二的设备名称,因为这个将会被集群中的节点们看到。典型意义上来说,你会使用multipath –l命令在Linux集群中的一个节点来找出这个LUN所使用的独一无二的设备名称。

  2.现在作为root用户,从众多节点中的一个命令行开始,你需要标记你刚刚创建的SBD设备的LUN,使用sbd -d create 命令。这条命令会将SBD的信息写入设备,所以不管你使用哪个设备名称,只要你能从那个节点看到这个设备就行。确保当使用此设备工作时,你工作的设备名称不会改变。那就意味着你应该使用/dev/disk/by-id 在一开始来命名设备名称。虽然这些名字又长又丑,但是至少他们不会改变。你可以使用ls-l 命令来查阅“简单的”设备名称。所以定义这个设备/dev/disk/by-id/scsi-149455400000000000000000003000000250600000f000000 作为SBD STONITH 设备, 使用sbd -d /dev//disk/by-id/scsi-149455400000000000000000003000000250600000f000000 来创建。

  4.此时,你可以使用sbd -d /dev/disk/by-id/scsi-149455400000000000000000003000000250600000f000000 dump 命令来查看哪些被写入了此设备。这给予了你类似下文的一份输出

  Listing: Requesting current SBD information using sbd -d dump

  xen1:/dev/disk/by-id # sbd -d /dev/disk/by-id/scsi-149455400000000000000000003000000250600000f000000 dump

  Header version : 2

  Number of slots : 255

  Sector size : 512

  Timeout (watchdog) : 2

  Timeout (allocate) : 2

  Timeout (loop) : 1

  Timeout (msgwait) : 4

  4.另外,使用kernel watchdogs来建立Linux系统也是必需的,其作用是帮助系统检测在集群中是否有节点被hung住。最优的方法是使用硬件协助的warchdog。如果,由于某些原因,这个方法对你正使用的硬件不适用,你可以使用watchdog的软件版本。要操作此步骤,在集群的所有节点中,位于/etc/init.d/boot.local文件里增加一行modprobe softdog就可以。

  5.此时,你可以启动Linux高可用管理客户端以及使用用户hacluster登录。选择Configuration > Resources并点击Add。

  6.在Add窗口中,选择Primitive 类型并点击OK。接着进入ID sbd-stonith。 确保下面的几组参数设定好:

  ID: sbd

  Class: stonith

  Type: external/sbd

  7.在Instance Attributes选项卡上,你可以看到参数sbd_device当前并没有值。点击Edit,进入SBD设备的block设备名称。你必须确保block设备名称在Linux集群的所有节点上是相同的,所以确保使用/dev/disk/by-id names来完成这个操作。

  8.现在点击OK, 接着是两次Apply,在你的集群中增加资源。

  9.要完成此步骤,你还要在所有节点上创建一个文件,名为/etc/sysconfig/sbd。在此文件中,你必须定义两个参数。SBD_DEVICE 参数告诉集群软件当负载时,哪个设备必须使用SBD设备。SBD_OPTS 参数则用来告诉使用哪个开始参数。在接下去的列表中,有个例子来展示这个文件看上去的样子。千万不要忘记将sbd设备的名字放在/etc/sysconfig/sbd文件里,不然它不能正常工作。

  Listing:

  xen1:/dev/disk/by-id # cat /etc/sysconfig/sbd

  SBD_DEVICE=”/dev/disk/by-id/scsi-14945540000000000000000000300000026060 0000f000000-“

  SBD_OPTS=”-W”

  此时,STONITH就配置好了,你可以重启集群中的节点来确认是否工作正常。一旦重启了,你会看到STONITH代理从心跳管理接口直接启动。你的Linux集群现在就在一个安全区域内,所以你可以开始创建你想去保护的高可用资源。在本系列的下一篇中,你会学到如何在Linux高可用环境中搭建Apache。

LINUX sbd stonith相关推荐

  1. Linux: CentOS 7下搭建高可用集群

    转载: http://linux.cn/article-3963-1.html 本文以两台机器实现双集热备高可用集群,主机名node1的IP为192.168.122.168 ,主机名node2的IP为 ...

  2. linux高可用集群(HA)原理详解

    高可用集群 一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服 ...

  3. Linux集群系统Heartbeat

    1.理论部分 1.1.群集的分类 我们用到的集群系统主要就2种: 高可用(High Availability)HA集群, 使用Heartbeat实现;也会称为"双机热备", &qu ...

  4. Linux 高可用(HA)集群之Pacemaker详解

    大纲 说明:本来我不想写这篇博文的,因为前几篇博文都有介绍pacemaker,但是我觉得还是得写一下,试想应该会有博友需要,特别是pacemaker 1.1.8(CentOS 6.4)以后,pacem ...

  5. linux lvm 系统快照,利用Linux LVM进行快照备份

    1. LVM概述 LVM的全称为Logical Volume Manager,是Linux所提供的一种对磁盘分区进行灵活管理的机制.要理解LVM,首先需要从一个Linux用户经常遇到的问题开始,那就是 ...

  6. Linux块设备驱动总结

    <Linux设备驱动程序>第十六章 块设备驱动程序读书笔记 简介 一个块设备驱动程序主要通过传输固定大小的随机数据来访问设备 Linux内核视块设备为与字符设备相异的基本设备类型 Linu ...

  7. Linux集群服务知识点总结及通过案例介绍如何实现高性能web服务

    转自:http://guodayong.blog.51cto.com/263451/1201101 一:集群相关概念及知识点介绍: LVS(Linux Virtual System) 本项目在1998 ...

  8. Linux块设备驱动程序原理

    顾名思义,块设备驱动程序就是支持以块的方式进行读写的设备.块设备和字符设备最大的区别在于读写数据的基本单元不同.块设备读写数据的基本单元为块,例如磁盘通常为一个sector,而字符设备的基本单元为字节 ...

  9. 服务器 ha linux,Linux 高可用(HA)集群之Heartbeat详解

    大纲 一.Heartbeat 的定义 二.Heartbeat 的版本与组件 三.Heartbeat 的各版本之间的区别 四.Heartbeat 集群的一般拓扑图 推荐阅读: 一.Heartbeat的定 ...

最新文章

  1. 排列(permutation)2_6
  2. 英特尔也决定了!正式退出5G智能型手机
  3. Hello World, S/4HANA for Customer Management 1.0
  4. boost::multiprecision模块实现导入/导出 cpp_int 的位 到 8 位无符号值的向量相关的测试程序
  5. HTTP 301 跳转和302跳转的区别
  6. linuxpython拍照_linux下python抓屏实现方法 -电脑资料
  7. Spring项目启动加载xml配置文件替换数据库提高响应速度
  8. 5000个收货地址_欠薪老赖和法院玩4年“躲猫猫”,双十一更新收货地址后被抓...
  9. python判断列表维度_如何输出python中list的维度
  10. vSphere及云端计算的完美集成
  11. LayaAir Sprite 容器添加子节点
  12. Protel99se基本教程 Protel 99SE从零开始学习教程视频教程
  13. Linux 系统的安全加固
  14. 免费临时邮箱大全,专注个人隐私保护
  15. Java类的三大特性总结
  16. 新宝解读大盘单边攀升突破3600点 大金融崛起
  17. Spark视频王家林大神第1课: 30分钟彻底理解Spark核心API发展史:RDD、DataFrame、DataSet
  18. 浪潮ps9.0 oracle,浪潮ERP-PS V9.1安装手册.doc
  19. FileZilla软件安装教程
  20. excel中如何在同一单元格中换行

热门文章

  1. CRC32校验原理及实现
  2. 提高会员粘性的小Tips
  3. 宿舍管理查询软件系统
  4. 2________23作业
  5. 高人气笔记本电脑推荐,购机必看
  6. SAP License费用如何收取
  7. 三级缓存和二级缓存的区别,浅谈Android消息机制原理,面试心得体会
  8. 环境搭建Linux学习
  9. SD卡文件系统类型是raw
  10. 二手车交易价格预测:数据的探索性分析