近日西安的天气很不错,可是看到从其他地方迁移来的主机在新环境下无法远程调试怪郁闷的,这就需要填坑,要不就会给后来者挖更大的坑。

今天遇到的坑是在IPMI的网络设置里面启用了VLAN标签之后,在新环境下IPMI直接失灵的问题。

由于时间原因,当时迁移的时候直接就断电了,很中国的理念是不——就是要快,先不看结果。

原有的环境是vSphere ESXi 4.1的操作系统,配置好IP之后可以通过vSphere Client去管理他,服务器是Supermicro的。

传统方式解决此问题需要还原出一个原有的IPMI所在的VLAN环境,然后通过远程管理工具(基于IP模式的)进行操作。

而今天的化境是主机上已经有了操作系统,那问题的思路就变了,不需要配套网络工程师的支持,我们系统方向的工程师就可以解决此问题。

所需要填坑的材料有:IPMICFG、可远程的主机操纵系统(SSH)、SuperMicro X8 系列主机。

操作流程:

1. 下载最新版本的IPMICFG软件,我们可以在Supermicro的ftp内下载到ftp://ftp.supermicro.com/utility/IPMICFG/ipmicfg_1.20.3_20141105.zip ,

2. 解压缩ipmicfg_1.20.3_20141105.zip该文件,导航到Linux目录下,根据操纵系统版本选择架构位数,这里是用64bit文件夹下的内容

3. 通过vSphere Client客户端浏览主机所在磁盘就是那个vmfs3格式的文件系统,将这个文件夹全部复制进去

4. 打开ssh客户端工具,链接到ESXi主机

5. 使用df –h命令查看需要键入的分区

6. 进入到对于那个的分区,选择64bit文件夹

7. 对文件夹内的ipmicfg-linux.x86_64.static 和 ipmicfg-linux.x86_64 文件赋予可执行权限 使用 chmod +x ipmicfg-linux.x86_64.static和 chmod +x ipmicfg-linux.x86_64 操作一下(后缀static的文件内置了静态链接库,可备用替换常规命令执行)

8. 使用 ./ipmicfg-linux.x86_64 查看一下帮助信息,我们这里需要对vlan ID进行关闭

9. 使用 ./ipmicfg-linux.x86_64 -vlan off 关闭vlan ID标签

10. 使用 ./ipmicfg-linux.x86_64 –m XXX.XXX.XXX.XXX 设置IP地址

11. 使用 ./ipmicfg-linux.x86_64 –k XXX.XXX.XXX.XXX 设置子网掩码

12. 使用 ./ipmicfg-linux.x86_64 –g XXX.XXX.XXX.XXX 设置网关地址

13. 使用 ./ipmicfg-linux.x86_64 -raw 0x30 0x70 0x0c 1 00 c2 禁用LAN Select Setting 或者使用 ./ipmicfg-linux.x86_64 -raw 0x30 0x70 0x0c 1 1 0 恢复到默认值(SuperMicro X8系列主机)

14. 使用 ./ipmicfg-linux.x86_64 –r 重启BMC ,此步骤有时候可不用操作

15. 按照上面这个流程走一遍,稍等片刻你就可以通过浏览器打开对应的IPMI了,这个坑就填平了。

备注信息:

1. IPMI在BIOS里面的设置类似于现在的Windows nano 这种无头版操作系统,只有在BIOS里面一个简单的IP设置后,剩下的都需要通过网页或者客户端来操作。

2. SuperMicro官方文档中并没有写支持ESXi系列的操作系统,对于Linux环境仅仅要求Linux Kernel 版本是2.6.X以上的即可。

3. 而使用IPMIcfg还需要你的硬件BMC支持IPMI2.0功能。

4. 以上这些操作可以恢复由于原先的网络VLAN绑定、主机板载端口和原生IPMI端口捆绑,还原最原始的BMC配置。

5. 为什么不用 –fd参数?原因是此参数不会重置网络相关信息,-fdl虽然可以清空网络信息,但是还是无法禁用LAN Select Setting,因此手工操作一下最好。

6.由于IPMI的配置属于操作即保存,因此配置后会有短暂的停留现象,这点在对LAN setting做操作的时候尤其明显

7. 更多的 LAN Select Setting可见下表:

型号

查看当前LAN模式

设置LAN模式为独立

设置LAN模式为与板载口共享

设置LAN模式为自动切换(实现故障转移)

X8 ATEN

ipmicfg -raw 0x30 0x70 0x0c 0

ipmicfg -raw 0x30 0x70 0x0c 1 1 0

ipmicfg -raw 0x30 0x70 0x0c 1 1 1

ipmicfg -raw 0x30 0x70 0x0c 1 1 2

X9 ATEN

ipmicfg -raw 0x30 0x70 0x0c 0 0

ipmicfg -raw 0x30 0x70 0x0c 1 0

ipmicfg -raw 0x30 0x70 0x0c 1 1

ipmicfg -raw 0x30 0x70 0x0c 1 2

X8 AMI

ipmicfg -raw 0x30 0x70 0x0c 0 0 1

ipmicfg -raw 0x30 0x70 0x0c 1 1 0

ipmicfg -raw 0x30 0x70 0x0c 1 1 1

ipmicfg -raw 0x30 0x70 0x0c 1 0

X9 AMI

ipmicfg -raw 0x30 0x70 0x0c 0

ipmicfg -raw 0x30 0x70 0x0c 1 0

ipmicfg -raw 0x30 0x70 0x0c 1 1

ipmicfg -raw 0x30 0x70 0x0c 1 2

参考信息:http://www.supermicro.com/support/faqs/faq.cfm?faq=13614 、https://www.ahead-it.eu/support/?/Knowledgebase/Article/View/53/0/how-to--change-the-ipmi-lan-mode-to-dedicated-shared-failover-by-using-the-ipmicfg-raw-command

-=EOB=-

填坑系列:通过ESXi来配置IPMI的更多相关文章

  1. MySQL填坑系列--Linux平台下MySQL区分大小写问题

    大家好,我是软件大盗(道),下面开始我们的<MySQL填坑系列>. 笔者最近又在MySQL的边缘试探,然后,试探着,试探着就报错了. 书接上文,系统连接数据库时报错:找不到DB_TIMIN ...

  2. SpringBoot填坑系列---XML方式配置数据库

    本次只是简单的运用SpringBoot搭建框架,对其原理并不做深入的探究 1.POM文件 <?xml version="1.0" encoding="UTF-8&q ...

  3. Android填坑系列:在小米系列等机型上放开定位权限后的定位请求弹框

    背景: 近期因实际项目需要,在特定操作下触发定位请求,取到用户位置及附近位置. 问题: 经初步选型,最终决定接入百度定位,按照百度定位SDK Android文档,接入过程相对顺利.但随后发现,在小米系 ...

  4. 踩坑系列:MySql only_full_group_by配置,竟导致所有应用报错?

    1. 踩坑经历 一个很平常的下午,大家都在埋头认真写bug呢,突然企业微信群里炸锅了,好多应用都出现大量的Error日志,而且都报同一个错误,就是下面这个: Caused by: com.mysql. ...

  5. angularcli填坑系列(持续更新...)

    1.在xx.ts中引入css样式无效 @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls ...

  6. Vue 填坑系列(持续更新...)

    1.遇到页面显示不更新,数据已更新情况 vue-cli中: this.$nextTick(function () { this.x=x; })     以js引入vue的网页中: this.$set( ...

  7. (填坑系列) 用aio写server与client进行通信的坑

    最近闲来无事,就估摸着自己写个“服务注册中心”来玩,当然因为是个人写的,所以一般都是简洁版本. 代码地址在:https://gitee.com/zhxs_code/my-service-registe ...

  8. [日常填坑系列]CAP食用指南-版本引用问题

    一.前言 最近,由于好久没升级底层框架,一直用着netcore2.2版本,导致有些包没能更新到最新的版本,例如:CAP. 然而,在最近升级到CAP:3.1.2版本的时候,发现有点小坑,只能退回到CAP ...

  9. Android填坑系列:Android JSONObject 中对key-value为null的特殊处理

    在与服务端通过JSON格式进行交互过程中,不同版本的JSON库在对于key-value为null情况上的处理不同. Android自带的org.json对key-value都要求不能为null,对于必 ...

随机推荐

  1. .NetCore MVC中的路由(2)在路由中使用约束

    p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...

  2. nodejs之get/post请求的几种方式

    最近一段时间在学习前端向服务器发送数据和请求数据,下面总结了一下向服务器发送请求用get和post的几种不同请求方式: 1.用form表单的方法:(1)get方法 前端代码: <form act ...

  3. Git Bash的一些命令和配置

    查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...

  4. 【原】AFNetworking源码阅读(六)

    [原]AFNetworking源码阅读(六) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这一篇的想讲的,一个就是分析一下AFSecurityPolicy文件,看看AF ...

  5. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  6. css中的浮动与三种清除浮动的方法

    说到浮动之前,先说一下CSS中margin属性的两种特殊现象 1, 外边距的合并现象: 如果两个div上下排序,给上面一个div设置margin-bottom,给下面一个div设置margin-top ...

  7. SQL Server-聚焦NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL性能分析(十八)

    前言 本节我们来综合比较NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL的性能,简短的内容,深入的理解,Always to review the basics. ...

  8. MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决

    一.简介 MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发.发布并支持的.有以下特点: MySQL是一种数据库管理系统. MySQL是一种关联数据库管理系统. MySQ ...

  9. var和dynamic的区别

    1.var 1.均是声明动态类型的变量. 2.在编译阶段已经确定类型,在初始化的时候必须提供初始化的值. 3.无法作为方法参数类型,也无法作为返回值类型. 2.dynamic 1.均是声明动态类型的变 ...

  10. Java FtpClient 实现文件上传服务

    一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...