跳到主要内容

BMC 管理

  • 提供用户登入服务器的入口。
  • 获取每个计算单元的IP地址,由于计算单元的业务口是通过 DHCP 获取的 IP,所以需要有简洁的方式获取每个计算单元的业务口 IP。
  • 方便快捷地登入每个计算单元的控制台。
  • 获取每个计算单元的信息,例如系统负载、存储空间、温度等。
  • 动态控制每个计算单元的上下电、重启等。
  • 对计算单元进行固件升级。

登录 BMC(BMC 管理服务运行于主板上)

  • 在 PC上,将 IP 地址设为与 BMC 在同一网段内,例如 192.168.100.25
  • 并将 PC 与服务器的 GE M 口接入到同一局域网内
  • 通过浏览器打开 http://192.168.100.100:3000 ,即可登录到 BMC 管理页面
  • BMC 管理用户名和密码都是 admin,登入后,即可在管理页面看到所有计算单元的控制入口 _images/2.png

设备列表

登录后默认进入设备列表页面。任何时候需要访问设备列表页面,点击左边工具栏上的 _images/wps5.jpg 图标即可进入:

_images/wps6.jpg

这是集群服务器所有设备的列表,每个卡片代表一块设备。

设备列表页面的左上角,有两个下拉列表:

_images/wps7.jpg

(1). 设备:可以过滤需要显示的设备,这在设备比较多的情况下很有用。

(2). 离线设备:仅供快速查看离线设备的列表。

往下看,这是服务器提供的外设接口图:4个网口,双层USB,HDMI,OTG,Sim Card,磁盘;

_images/wps8.jpg

U:LAN 表示:上方黄色的LED灯的亮/灭对应着该设备的网络状态;

D:WORK 表示:下方绿色的LED灯的亮/灭对应着该设备的工作状态;

仪表盘列表

在设备列表或其它仪表盘页面中,点击最左上角的仪表盘名称:

_images/wps15.jpg

可以查看更多的仪表盘:

_images/wps16.jpg

目前有以下仪表盘:

  • 设备概览
  • 设备明细
  • CPU 频率与温度监控

在仪表盘页面中,右上角的工具条,可以选择浏览时段,以及多长间隔自动更新。下图就显示最近 6 小时的数据,并每 5 秒更新一次。

_images/wps17.jpg

点击 _images/wps18.jpg 按钮可手工刷新监控数据页面显示。

设备概览

通过仪表盘列表,或点击左边工具栏上的 _images/wps19.jpg 图标即可进入设备概览页面:

_images/wps20.jpg

设备概览页面将所有设备的 CPU、内存、磁盘和网络这四项数据集中显示在一起:

  • 鼠标悬停在曲线图上即可显示设备的明细数值。
  • 右上的“告警列表”,当 CPU、内存和磁盘超过红色警戒线一段时间,即触发告警动作,例如发送邮件等(此项功能需配置相关参数,待加说明)。
  • 右下的“设备列表”,列出所有在线设备的结点名称和 IP 地址,方便查看。鼠标点击即可查看该设备的设备明细页面。

设备明细

有以下几种方法可以进入设备明细页面:

  1. 设备列表页面中点击设备卡上的 _images/wps21.jpg 按钮;
  2. 设备概览页面中点击右边设备列表上的表格项;
  3. 通过仪表盘列表进入。

_images/wps22.jpg

设备明细页面,提供资源的详细监控数据,用户可以选择其中一个设备来查看其详细的资源使用情况。

左上的结点下拉选择框可以切换设备的明细显示,IP 地址即为该设备的所有网络接口的 IP 地址(仅作信息显示之用):

_images/wps23.jpg

右边的快速工具条,点击即可打开该设备的 Shell 终端窗口:

_images/wps24.jpg

利用右边的滚动条往下翻,可见更多的监控项:

_images/wps25.jpg

登录计算单元

根据上一节 BMC 登录,可以进入 BMC 管理页面查看各个计算单元的运行情况: _images/3.png

以 sub1 举例:

  1. 当 sub1 位置上的计算单元正常进入系统,并与 main 位置上的主板通信成功后,会将系统信息反馈到 BMC 管理页面上,如下图所示:

    _images/4.png

    • 卡片顶部左边以绿色字样显示“设备可用”状态,后跟设备的当前操作系统,右边显示的是软件操作系统的版本;
    • 左边的图标表示计算节点的 CPU 型号(CPU 核数和最高频率)、DDR 内存(4G) 和 eMMC 容量(32G);
    • “sub01”: 表示设备的 SUB 编号;
    • _images/15.png:点击该按钮进入 Shell 终端窗口;
    • _images/16.png:点击该按钮进入该设备的资源明细终端窗口;
    • _images/17.png:点击该按钮重置设备电源;
    • 卡片右边第二行显示该设备的主网络接口的 IP 地址及连接速率,鼠标悬停时会显示所有网络接口地址和速率
  2. 当 sub01 处于离线状态,即设备由于物理移除、固件失效或操作系统异常等原因导致与主板通讯失效时:
    _images/wps13.jpg

    • 卡片顶部以橙色字样显示“设备不可用”状态;
    • _images/wps14.jpg:点击该按钮重置设备电源。
  3. 当 sub01 处理维护状态,即设备处于系统升级模式(loader)、固件升级系统(netrecovery),将会显示:
    _images/wps14_1.jpg

    • 卡片顶部以黄色字样显示“设备维护”状态,后跟设备的明细状态。
    • 设备信息均为空,维护状态下不采集监控数据。
    • _images/wps14.jpg:点击该按钮重置设备电源。

操作主板(命令行模式)

_images/7.png

通过点击main的按钮 _images/15.png,进入Shell终端窗口进行操作 :

_images/8.png

同时由于 main 对于 sub 是支持 password-less ssh的,所以也可以通过输入命令 ssh sub01免密登录 sub01 计算单元

_images/9.png

操作计算单元(命令行模式)

_images/5.png

  • 通过点击 sub01 的按钮 _images/15.png,进入Shell终端窗口进行操作 :

_images/6.png

计算单元固件升级

Web 界面升级

升级

  • 点击左边工具栏上的 _images/18.png 图标即可进入计算单元固件升级页面:

_images/10.png

  • 点击右上角的按钮 _images/19.png 进入“新增计算单元固件升级”页面:

_images/11.png

  • 选择升级固件,在下拉列表中选择即可。

  • 选择升级设备:左边是可用的设备列表,右边则是待升级的设备列表。

    • 若要升级所有的设备,按“添加全部”按钮,可将所有的可用设备添加到右边的列表中。
    • 若要升级一两个设备,直接鼠标双击对应的设备,可将单个设备添加到右边的列表中。
    • 设备列表上方的编辑框是做筛选之用,可快速筛选出需要的设备。
    • 按“删除全部”按钮,可清空待升级的设备列表。
    • Ctrl+鼠标点击,可以增加或删除单个设备的选择;Shift+鼠标点击则可以增加或删除连续设备的选择。这跟 Windows 上的列表选择操作是一致的。选择设备后,按相应的“添加”或“删除”按钮即可将设备添加或移除到待升级的设备列表。
  • 按“升级固件”按钮,即可开始固件升级。

观察升级状态

刚提交升级申请后的页面是这样的:

_images/12.png

固件的升级时间较长(涉及到后台一系列切换和读写操作),请耐心等待。后台是隔 15 秒刷新一次进度,界面会显示如下的进度页面:

_images/13.png

  • 左边是升级设备和进度列表。
  • 右上是升级进度折线图。
  • 右下即是已完成的设备列表(包括成功和出错的)。

命令行升级

升级

  • 功能: 通过命令行升级计算单元固件

  • 描述: 服务器 BMC 加载升级固件,通过 reset 计算单元让计算单元重新进入 uboot,随后 BMC 发送升级命令让计算单元开始 TFTP 升级,待升级完成后计算单元自动重启并进入系统。

  • 演示:

    • 对 sub06 计算单元进行升级
    # 以下实现 使用 /home/ubuntu/tftp.tar升级文件对 sub06 计算单元进行升级
    # -s 选择 sub06 计算单元
    # -o 选择升级操作
    # -f 选择升级文件
    root@ubuntu:~# bmc_ctrl -s sub06 -o upgrade -f /home/ubuntu/tftp.tar
    sub06 to loader
    reset SUB06
    Sub06 is upgrading with tftp
    • 计算单元批量升级
    root@ubuntu:~# bmc_ctrl -s sub -o upgrade -f /home/ubuntu/tftp.tar
    sub01 to loader
    reset SUB01
    sub02 to loader
    reset SUB02
    sub03 to loader
    reset SUB03
    sub04 to loader
    reset SUB04
    sub05 to loader
    reset SUB05
    sub06 to loader
    reset SUB06
    sub07 to loader
    reset SUB07
    sub08 to loader
    reset SUB08
    Sub01 is upgrading with tftp
    Sub02 is upgrading with tftp
    Sub03 is upgrading with tftp
    Sub04 is upgrading with tftp
    Sub05 is upgrading with tftp
    Sub06 is upgrading with tftp
    Sub07 is upgrading with tftp
    Sub08 is upgrading with tftp

观察升级状态

  • 功能: 观察计算单元升级状态

  • 描述: 发起计算单元升级后,整个升级过程是在后台进行的,无法直接获悉升级状态及进度信息,本功能通过监测计算单元升级时发起的网络请求以计算出计算单元升级状态及进度。

  • 演示:

    • 观察 sub06 计算单元的升级状态
    root@ubuntu:~# bmc_ctrl -s sub06 -o view
    sub06 flashing rootfs.8-of-18.gz 49.300%
    • 通过watch命令实时观察计算单元升级状态
    root@ubuntu:~# watch bmc_ctrl -s sub06 -o view
    Every 2.0s: bmc_ctrl -s sub06 -o view       ubuntu: Mon Jan  9 09:41:49 2023

    sub06 flashing recovery.2-of-3.gz 29.600%

    _images/14.png

    • 批量监测计算单元升级状态
    root@ubuntu:~# watch bmc_ctrl -s sub -o view
    Every 2.0s: bmc_ctrl -s sub -o view        ubuntu: Mon Jan  9 09:46:08 2023

    sub01 no_tftp_info
    sub02 no_tftp_info
    sub03 no_tftp_info
    sub04 no_tftp_info
    sub05 no_tftp_info
    sub06 flashing system.7-of-13.gz 72.500%
    sub07 no_tftp_info
    sub08 flashing recovery.1-of-3.gz 25.900%

更多操作命令

root@ubuntu:/home/ubuntu# bmc_ctrl -h
Usage:
/usr/bin/bmc_ctrl [-s <sub?>] -o [operation] [-f <upgrade file>]

Control sub board

operation:
reset reset board
poweron|on power on the board
poweroff|off power off the board
load_fw Load the upgrade file or directory to the tftp target directory, but the board will not be upgraded
support:
zip
tar
gzip
bzip2
directory
upgrade Load the upgrade file or directory to the tftp target directory, and let the board upgrade
support:
gzip
bzip2
directory
password_less Make the ssh sub board password free
loader set sub board to loader
view View the upgrade status of child boards

修改用户密码

鼠标移到左下角用户头像,在弹出菜单中选择“修改密码”:

_images/wps38.jpg

输入旧密码、新密码和确认新密码,最后按“修改密码”按钮即可。

命令行工具

修改网卡 IP (只适用于子板 SDK 为 Ubuntu20.04 的固件包)

修改 GE M 网口的 IP

假如你要把连接 PC 的 GE M 口修改为你想要的静态 IP (原来是 192.168.100.100)以及网段,在 BMC 内执行:

sudo network-change.sh bmc eth1 10.32.235.20/28 10.32.235.30

命令解析:

  • bmc:代表修改的是 BMC 的网卡
  • eth1:代表网卡的名字
  • 10.32.235.20/28:表示你想要修改的 IP 以及子网掩码,28 表示:255.255.255.240
  • 10.32.235.30:表示你想要修改的网关

修改 GE ,SFP1+ 以及 SFP2+ 网口的 IP

默认计算单元(子板)以及主板的外部网卡都是通过 GE ,SFP1+ 以及 SFP2+ 网口去动态 DHCP 获取 IP 的,如果有修改为静态 IP 的需求,例如修改网段为 192.168.1.0,子网掩码为 255.255.255.0,网关为 192.168.1.1 的网络:

  • 修改主板(静态 IP )
sudo network-change.sh bmc pci 192.168.1.85/24 192.168.1.1
  • 修改计算单元(静态 IP ),以修改 sub01 为例:
sudo network-change.sh sub01 eth1 192.168.1.84/24 192.168.1.1
  • 修改主板(DHCP )
sudo network-change.sh bmc pci
  • 修改计算单元(DHCP ),以修改 sub01 为例:
sudo network-change.sh sub01 eth1

监控数据获取

所有监控数据都存储到 BMC的Prometheus 数据库里,可以使用其命令工具 promtool 去获取监控数据。监控数据是透过 node_exporter 去获取的。网页的仪表盘定义 json 文件存放在 /var/lib/grafana/dashboards/ 里。

获取所有计算单元的即时在线状态

$ promtool query instant http://127.0.0.1:9090 node_cluster_up
node_cluster_up&#123;instance="127.0.0.1:9100", job="node", nodename="main", state="android", subnode="sub1-01"&#125; => 1 @[1608772515.659]
node_cluster_up&#123;instance="127.0.0.1:9100", job="node", nodename="main", state="android", subnode="sub1-02"&#125; => 1 @[1608772515.659]
node_cluster_up&#123;instance="127.0.0.1:9100", job="node", nodename="main", state="android", subnode="sub1-03"&#125; => 1 @[1608772515.659]
node_cluster_up&#123;instance="127.0.0.1:9100", job="node", nodename="main", state="android", subnode="sub1-04"&#125; => 1 @[1608772515.659]
...
  • subnode: 计算单元编号
  • state:计算单元状态 linux:计算单元运行操作系统为 Linux。
  • metric: 2.6.2.1.1.1.0: 计算单元处于 linux 状态。 2.6.2.1.2.0.0: 计算单元处于 offline 状态。 2.6.2.1.3.0.5: 计算单元处于上述状态之外。

获取所有设备的 IP 地址

$ promtool query instant http://127.0.0.1:9090 node_network_ipaddr
node_network_ipaddr&#123;device="eth0", instance="127.0.0.1:60101", ipaddr="168.168.101.198", job="node", nodename="sub1-01"&#125; => 1 @[1609396443.993]
node_network_ipaddr&#123;device="eth0", instance="127.0.0.1:60102", ipaddr="168.168.100.180", job="node", nodename="sub1-02"&#125; => 1 @[1609396443.993]
node_network_ipaddr&#123;device="eth0", instance="127.0.0.1:60103", ipaddr="168.168.101.145", job="node", nodename="sub1-03"&#125; => 1 @[1609396443.993]
...
  • device: 网络接口名称,各个计算单元仅有一个以太网接口 eth0, 主板有多个。每个网络接口对应一个 IP 地址。
  • ipaddr:IP 地址,如果尚没有取得 IP 地址,则为 “0.0.0.0”。
  • nodename:计算单元 sub 编号,或 main。

重置计算单元电源

功能: 重置计算单元电源 描述: 通过操控计算单元的 RESET 脚来重置计算单元电源,达到强制重启计算单元的目的。如果计算单元没有 RESET 脚,则通过关闭、打开电源来实现。以操作 sub02 为例:

  • 命令行可运行: /usr/bin/bmc sub02 reset
  • Web API: GET http://localhost:7070/api/reset/sub02

重启计算单元操作系统

功能: 重启计算单元操作系统 描述: 首先通过网络发出重启命令,如果 10 秒内没有反应,则通过复位电源的方式强行重启计算单元。以操作 sub02 为例:

  • 命令行可运行: /usr/bin/bmc sub02 reboot
  • Web API: GET http://localhost:7070/api/reboot/sub02

打开计算单元电源

功能:打开计算单元电源 描述:通过操控计算单元的 POWER 脚来打开计算单元电源。集群服务器开机默认打开所有计算单元电源。以操作 sub02 为例:

  • 命令行可运行: /usr/bin/bmc sub02 poweron
  • Web API: GET http://localhost:7070/api/poweron/sub02

关闭计算单元电源

功能:关闭计算单元电源 描述:通过操控计算单元的 POWER 脚来关闭计算单元电源。以操作 sub02 为例:

  • 命令行可运行: /usr/bin/bmc sub02 poweroff
  • Web API: GET http://localhost:7070/api/poweroff/sub02

从主板上传文件到计算单元

在主板上运行: scp a.txt sub02:./test

从计算单元下载文件到 主板

在主板上运行: scp sub02:./test a.txt

在计算单元运行特定命令

例如 ls ,在主板上运行: ssh sub02ls

更多操作命令

root@ubuntu:/home/ubuntu# bmc -h
Usage:

bmc state
List the state of all the boards.

bmc <node> &#123;reset|poweron|poweroff&#125;
Invoke reset, poweron or power off on <node>

bmc <node> state
Show node state

bmc <node> shell [<command>...]
Invoke shell with command.

bmc <node> reboot
Reboot device.

bmc forall <command> %&#123;node&#125;