热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CloudStack与IPMI配置

硬件:HPProLiantBL685cG7两笼刀片机ILO版本:ILO3目的:通过IPMI软件调用HPILO3相关功能原因:配置RHCS存储集群需要使用HPILO设备作为fence设备科普:IPMI介绍http://zh.wikipedia.org/wiki/IPMI问题描述:建议你也是遇到这样的问题再来看这

  硬件:HP ProLiant BL685c G7 两笼刀片机

  ILO版本:ILO3

  目的:通过IPMI软件调用HP ILO3相关功能

  原因:配置RHCS存储集群需要使用HP ILO设备作为fence设备

  科普:IPMI 介绍 http://zh.wikipedia.org/wiki/IPMI

  问题描述:

  建议你也是遇到这样的问题再来看这篇文章,因为如果你不是在自己很郁闷得遇到这些问题,而看到这篇文章的话,我觉得气氛是不对的,因为这个问题在我整个项目中起着很大的作用,而这个问题困扰了我好几天,简直就是崩溃。

  简单描述一下我为何写这篇文章,我现在的项目是CloudStack + KVM的实施项目,客户提供了30TB的FC SAN 存储,关于存储的挂载以及RHEL识别这些设备的问题已经成功解决,本文暂时不详细阐述,这些问题会在整个项目结束之后进行相应的总结。

  现在我准备好了:

  1. 30TB的SAN存储,30个1TB的LUN

  2. 15片安装了 QEMU/KVM的RHEL6U3操作系统,并且成功识别30个新设备(30TB未格式化的"盘")

  CloudStack 跟 KVM的集合,在进行主存储创建的时候,需要选择如下协议:

170936192.jpg

  NFS协议:使用最简单,但是有单点故障

  CLVM: LVM的Cluster版本,是红帽RHCS套件中的组件,之前接触过,也比较好用,界面如下:

172049924.jpg

  剩下的两个就接触不多了,RBD是什么分布式块设备,这个我之前没有搞过,也不去介绍了,反正就是分布式存储相关的东东,大概解释一下ShareMountPoint吧

  ShareMountPoint文档说的是所有的KVM节点都将共享存储格式化成OCFS2文件系统,当然GFS2估计也是没有问题的,然后每个节点都将格式化之后的设备都挂载到同一个名称的目录下面,然后选择这个协议,填写相关信息,如:

171702152.jpg

  3. 我现在需要做的就是将 所有的KVM主机(也就是RHEL6U3主机)加入到一个 RHCS存储中,然后添加fence设备,最终将CLVM提供给CloudStack进行纳管。

  现在问题出在fence设备上面了,玩过RHCS的朋友知道我这边说的fence设备是用来对故障节点进行关机或者重启相关操作,将故障节点从集群中剔除,使得其他节点照样正常工作,否则,每个节点都会去不断检测集群状态,集群中其他节点的状态,产生所谓的“脑裂”状态,本人测试,故障节点不能被成功fence掉【重启或者关机,一般来说会重启】,在其他节点上面执行lvs跟pvs,会被锁定,一直不能执行成功,同时负载会变得超级大,通过uptime查看,load average会持续飚,远远大于3了。

  所以现在回到我们最初的讨论上面,需要一个fence节点,RHCS集群可以使用HP的 ILO设备作为fence节点,其他正常节点通过连接故障节点的ILO设备将故障节点进行重启,将其从集群中剔除,待其重启成功,再重新加入集群。

  怎么通过RHCS添加节点,fence设备在本文不作相关说明,本文现在去KVM主机上面安装用于支持ILO设备相关操作的软件IPMI,我们再次将ILO设备理解成IPMI协议的一种实现方式,因为ILO是属于HP的设备,DELL等其他服务器有其他的实现方式。

  1. 检查主机是否有相关IPMI硬件支持

      [root@fence01 ~]# dmidecode |grep -C 6 IPMI |tail -n 7

  IPMI Device Information

  Interface Type: KCS (Keyboard Control Style)

  Specification Version: 2.0

  I2C Slave Address: 0x10

  NV Storage Device: Not Present

  Base Address: 0x0000000000000CA2 (I/O)

  Register Spacing: Successive Byte Boundaries

  2.安装软件支持

  OpenIPMI-2.0.16-12.el6.x86_64.rpm

  OpenIPMI-devel-2.0.16-12.el6.x86_64.rpm

  OpenIPMI-libs-2.0.16-12.el6.x86_64.rpm

  ipmitool-1.8.11-13.el6.x86_64.rpm

  以上三个需要去下载,最后面一个ipmitool-1.8.11-13.el6.x86_64.rpm是RHEL6U3系统自带的。

  全部安装完成之后,启动服务

  1

  2[root@SJC42KVM01 ~]# service ipmi start ; service ipmievd start

  [root@SJC42KVM01 ~]# chkconfig ipmi on ; chkconfig ipmievd on

  3. 检查是否安装启动成功

  本地检测:

  [root@fence01 ~]# for i in `seq 1 14` \

  do ipmitool lan print $i 2>/dev/null | grep -q ^Set && echo \

  Channel $i; done //查看有效channel

  Channel 2

  [root@fence01 ~]# ipmitool lan print 2 //查看ilo相关配置

  Set in Progress : Set Complete

  Auth Type Support :

  IP Address Source : DHCP Address

  IP Address : 10.197.202.43

  Subnet Mask : 255.255.255.0

  MAC Address : 38:ea:a7:a1:fd:76

  BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled

  Default Gateway IP : 10.197.202.254

  802.1q VLAN ID : Disabled

  802.1q VLAN Priority : 0

  Cipher Suite Priv Max : Not Available

  [root@fence01 ~]# ipmitool channel info 2

  Channel 0x2 info:

  Channel Medium Type : 802.3 LAN

  Channel Protocol Type : IPMB-1.0

  Session Support : session-based

  Active Session Count : 63

  Protocol Vendor ID : 7154

  Volatile(active) Settings

  Alerting : disabled

  Per-message Auth : disabled

  User Level Auth : enabled

  Access Mode : always available

  Non-Volatile Settings

  Alerting : disabled

  Per-message Auth : disabled

  User Level Auth : enabled

  Access Mode : always available

  远程检测:

  1

  2[root@fence02 ~]# ipmitool -H 10.197.202.43 -I lanplus -U Administrator -P password power status

  Chassis Power is on

  说明:

  从fence02主机上面进行远程命令的执行

  -H: 主机的IP地址或者被解析过得主机名

  -I : 使用的接口类型

  -U: 管理用户名

  -P: 管理用户明码

  power status: 查看电源状态,可以是power start ,power reset 等操作

  必须远程检测成功才能说明是真正的成功,因为故障节点总其他节点给fence的。

  这个配置成功之后,在 RHCS中进行fence设备的添加,才能真正起作用,否则,没门!


推荐阅读
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文介绍了如何利用X_CORBA实现远程对象调用,并通过多个示例程序展示了其功能与应用,包括基础的Hello World示例、文件传输工具以及一个完整的聊天系统。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • Python学习day3网络基础之网络协议篇
    一、互联网协议连接两台计算机之间的Internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列网络协议。二、为什么要有互联网协议互联网协议就相当于计 ... [详细]
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 腾讯云服务器续费指南:轻松完成资源续订
    本文详细介绍了腾讯云服务器的续费方法,包括单台资源续费、批量资源续费以及自动续费设置,帮助用户高效管理云资源。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 探讨符合特定需求的个人网盘选择,包括分享功能、WebDAV支持及长期稳定性等。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 在Python编程中,经常需要处理文件下载的任务。本文将介绍三种常用的下载方法:使用urllib、urllib2以及requests库进行HTTP请求下载,同时也会提及如何通过ftplib从FTP服务器下载文件。 ... [详细]
author-avatar
影子张被占用
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有