当前位置: 首页 > news >正文

把Linux高可用性请入你的数据中心

当运转一个对于你的IT环境具有重要意义的服务时,有必要保证它使用高可用性(high-availability,HA)技术,包含配置软硬件。本文会教你如何使用Corosync和Pacemaker,为Linux的环境配置高可用性。

  Linux HA 软件

  Corosync和Pacemaker是Linux HA的实际执行标准。Corosync核对群集中所有的节点,确保其可用,Pacemaker负责群集中资源的位置。

  你可以把两个软件都安装到所有的Linux发行套件中去,来创建一个可以保护重要服务的HA stack。本篇技巧中,我们将以OpenSUSE作为Linux套件的例子,因为它可以做一个免费的test drive。决定让OpenSUSE来保障服务之后,你可以为你的企业Linux套件买一个支持版的。SUSE和红帽都有HA版本的Linux,可用额外的企业级支持。

  我们来学习一下如何安装,并观察其中一些功能。

  安装软件

  输入以下命令,可以为OpenSUSE安装Pacemaker和Corosync:

  zypper install pacemaker pacemaker-mgmt

  这条命令会在你服务器上安装所有运行Linux HA环境必要的Pacemaker软件,一般来说,这条命令覆盖所有在HA群集上使用的节点,但是对于安装测试环境来说,最好只在一个节点上使用该命令。完成之后,你就可以开始配置软件,构建节点。

  群集的更低层面有Corosync进程服务,这需要一个在/etc/corosync/corosync.conf的主配置文件。这个文件用来指定群集中的节点如何互相保持关联。安装过程,会给你一个名字类似corosync.conf.example的文件,包含了你需要用来启动群集的所有东西。只有一项需要调整,那就是界面设置,这在配置文件的totem section之中。使用命令ip address show来确定群集中每个系统的IP地址,还要确保网络设置与使用中的实际网络地址相一致:

  totem {

  ...

  interface {

  ringnumber: 0

  bindnetaddr: 192.168.1.0

  mcastaddr: 226.94.1.1

  mcastport: 5405

  }

  }

  第一点:确保改变界面设置,以反映你的当前网络设置。

  创建corosync.conf文件之后,就得开始openais service,这负责在OpenSUSE上启动Corosync。使用service openais start命令:

  service openais start

  启动了openais service之后,可以启动crm_mon命令。这个命令能显示你的群集stack是否可用,告诉你群集中现有节点的数量。如果你在output中看到其他东西,那也不妨,即使群集中的节点被标记为offline。

  图1:确保Corosync layer在继续工作之前已经可用。

 

为服务配置Linux HA

  一旦Corosync layer能行了,你就可以继续创建HA的下一步。为了便于理解,我先告诉你如何创建高可用性IP地址。首先为用户hacluster(在群集环境中的默认用户账号)创建密码,使用passwd hacluster命令,输入你要设的密码。

  这时,你可以使用crm_gui命令,启动Pacemaker 图形化管理客户端。在图形界面上选择Connection login,激活为hacluster用户。你现在可以看到群集中的内容了,表现为你在群集上加的节点。点击Configuration然后点击Resources,再点击Add,你就可以添加HA IP地址。在Add窗口中选择Primitive来增加一个标准服务作为资源,然后点击OK。现在你就可以看见Add Primitive窗口,可以用ID来进入。然后,使用以下命令确定接下来的参数:

  ID: testip

  Class: ocf

  Provider: heartbeat

  Type: IPaddr2

  也要确保资源的初始状态被设置为Started,然后点击Forward,跳转到一个界面把刚刚创建的属性添加给资源。在该界面点击ip,选择Edit来进入你要加的新的唯一IP地址,作为高可用性IP地址。一般这得是你的服务能够达到的IP地址。现在选择OK来添加IP地址,然后选择Apply将其写入群集。

  一般情况下你还需要安装STONITH,来保证群集中节点的完整,本文下一部分会提到这一点,现在你可以先跳过,选择Configuration,然后是CRM Configure,取消选择Stonith Enabled。点击Apply来保存改变,这就会给你一个高可用的IP地址。你可以通过选择Configuration¬——Management来确定。

  图2:配置完HA的资源,你可以通过crm_gui命令的管理部分确定它是否成功。

 

 现在可以做最终测试了:IP地址已经配置好了,可以被群集管理了,这意味着群集在停止运转后,启动了IP地址。你可以手动停止IP地址,来测试运行情况。比如说,如果你使用了192.168.1.169作为地址,与界面eth0相关联,使用ip addr del dev eth0 192.168.1.169命令。几秒钟后,使用ip addr show检查IP地址是否存在。群集正常情况下应该在那段IP地址重启节点。

  这篇技巧中,你已经知道如何配置基本的HA群集。这个群集还不能为产品服务,因为你还没有弄好重要服务,比如STONITH和共享的存储,但是这已经给配置Linux HA群集的重要步骤打下了基础。在我们下一篇文章中,你会学到如何使用你的Linux HA中的共享文件。



      本文转自glying 51CTO博客,原文链接:http://blog.51cto.com/liying/967618,如需转载请自行联系原作者










相关文章:

  • jQuery插件——图片按比例自适应缩放
  • Highcharts:高交互性的javascript图表类库
  • ASP.NET中文乱码的三个解决方案
  • 一招一式攻克linux(二)
  • 知识点 - Attribute在.net编程中的应用
  • Quartz2.1.5学习(一)
  • yahoo排名策略
  • 软件架构
  • 使用Scom监控Linux主机
  • javaScript中with含义与用法
  • lvy打包到本地
  • 具有键“Shape”的 ViewData 项属于类型“System.String”,但它必须属于类型“IEnumerableSelectListItem”。...
  • 对于Linux操作系统进行合理分区建议
  • 格式化字符串
  • SQL Server2008存储结构之非聚集索引
  • [Vue CLI 3] 配置解析之 css.extract
  • 2018一半小结一波
  • express + mock 让前后台并行开发
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Logstash 参考指南(目录)
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • passportjs 源码分析
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Redis 懒删除(lazy free)简史
  • vue-cli3搭建项目
  • vue中实现单选
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 来,膜拜下android roadmap,强大的执行力
  • 如何使用 JavaScript 解析 URL
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 我的面试准备过程--容器(更新中)
  • 携程小程序初体验
  • 移动端解决方案学习记录
  • Prometheus VS InfluxDB
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 移动端高清、多屏适配方案
  • ​比特币大跌的 2 个原因
  • "无招胜有招"nbsp;史上最全的互…
  • # 达梦数据库知识点
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (4)事件处理——(7)简单事件(Simple events)
  • (solr系列:一)使用tomcat部署solr服务
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (利用IDEA+Maven)定制属于自己的jar包
  • (十八)三元表达式和列表解析
  • (转)Oracle存储过程编写经验和优化措施
  • .cfg\.dat\.mak(持续补充)
  • .net 发送邮件
  • /dev下添加设备节点的方法步骤(通过device_create)