术语描述

为避免理解错误,为下列相关名词做诠释:

  • 服务器:服务器硬件本体

  • BMC:软件上是一套集群服务器管理系统,分别运行在一块使用 RK3588S 作为主控芯片的控制板(以下简称主板)以及一定数量的主控为 BM1684 或者 BM1684X的核心板(以下简称子板)上,主板运行 Ubuntu 20.04 系统,通过网络与集群服务器内的子板进行数据交互,实现对集群服务器各个子板进行监测和管理。其软件栈的组成为:

    node_exporter: 运行在主板和子板上,负责收集设备的监控数据。

    Prometheus: 运行在主板上,负责收集和存储各个设备的监控数据。

    Grafana: 运行在主板上,负责监控图表的集中显示。

    该方案的优点是,由主板统一布署 node_exporter 到各个设备上,以直观的图表方式显示各个子板的资源使用状况。

  • main:指的是位于 main 位置的主板,可以直接理解为主板

  • sub:指的是位于不同位置的子板,例如 sub01 指的是位于硬件卡槽 1 的子板,sub02 指的是位于硬件卡槽 2 的子板,以此类推

  • 计算单元:指的是子板,即主控为 BM1684 或者是 BM1684X 的核心板

服务器内部集成 8 个计算单元。各计算单元间通过网络交换机相互连接,并且与主板一起,硬件上组成一个内外网分离的网络结构。

由于 BMC中的绝大部分的功能都是运行在主板上面的,所以下面提到的 BMC 也可以当成主板去理解。

产品介绍

简介

Cluster Server A1 集群服务器是一款高密度 ARM 核心板卡的集群服务器。服务器采用机架式服务器规格设计,核心板卡基于算能芯片平台。通过 Firefly 的创新设计和软件支持,使得集群服务器在AI、边缘计算等多领域具有良好的适应性。Firefly 集群服务器经过多个软硬件版本迭代,现已经具有完善合理的软硬件系统支持,并且具有以下特色:

  • 高密度核心:

A1 版集群服务器为1U规格,支持集成 8 个独立核心板卡。

R1版集群服务器为1U规格,支持集成11个独立核心板卡(Rockchip)。

R2版集群服务器为2U规格,支持集成72个独立板卡(Rockchip)。

  • 核心板卡可配置

根据业务场景的需求,集群服务器的核心板卡可以选择不同的规格。并且也支持不同规格板卡混插。如视频编解码、AI运算、区块链运算等,都可以选用不同规格的核心板卡。

  • 核心板软件系统独立

集群服务器各个核心板卡可独立运行 Linux 操作系统。单个核心板故障不会导致整个服务器宕机。

  • BMC可视化管理系统

通过集群服务器的 BMC 管理单元,可以实现用户在web浏览器对核心板卡的监测、配置、系统更新等操作。

  • 冗余设计

集群服务器的电源管理单元和网络管理单元采用冗余设计,可以应对部分电源和网络的突发故障。

  • 温控设计

集群服务器集成温控单元,通过监测服务器内环境温度和核心温度,可以有效调节散热风扇工作状态,优化服务器的整体性能和稳定性。

规格

技术规格

型 号 Cluster Server A1 Cluster Server R1 Cluster Server R2
核心板卡数 8 11 72 (热插拔设计)
构 架 ARM 架构 ARM架构 ARM架构
操作系统 支持 Ubuntu 操作系统 支持Android、Ubuntu、Linux操作系统 支持Android、Ubuntu、Linux操作系统
网 络 千兆网口(RJ45)× 2、万兆网口(SFP+) × 2 1GE千兆RJ45网口4个其中:主核心板网口1个,普通网口3个 双网卡冗余设计,单网卡集成:千兆网口(RJ45)×2、万兆网口(SFP+)×2BMC网络接口
4G 4G/LTE 4G/LTE/5G网络(可选配) 不支持
显 示 HDMI 2.0 × 1,8K@60Hz(控制主板显示) 1×Mini HDMI 2.0,4K@60Hz(控制主板显示) 1×Mini HDMI 2.0,4K@60Hz(控制主板显示)
扩展存储 3.5寸STAT硬盘 × 1 3.5寸STAT硬盘 / TF卡 3.5寸STAT硬盘 / TF卡
USB USB3.0 HOST × 2,Type-C × 1 2个USB2.0 HOST1 个 Type-C(处理器核心板调试用) 1 × USB3.0 HOST
电 源 300W AC电源(输入:100V AC~240V AC) 300W AC电源(输入:100V AC~240V AC) 双路冗余电源设计 :AC 100~240V 50/60Hz,1300W / 800W 可选
散 热 散热片 +5个高速散热风扇 散热片 +5个高速散热风扇 散热片 + 2组风扇模组: 风扇模组1(3×2冗余风扇设计)、风扇模组2(2×2冗余风扇设计)
UID UID按键×1
硬件看门狗

子板规格

型 号 Cluster Server A1 Cluster Server R1 Cluster Server R2
节点数 一体化1U服务器 一体化1U服务器 9个刀片节点
每个节点都能配置8个处理器核心板
节点9可用于安装2个3.5寸SATA/SSD硬盘
核心数 最高可配置 8 个处理器核心板 最高可配置11个处理器核心板 最高可配72个处理器核心板
核心板 BM1684核心板(Core-1684JD4)
BM1684X核心板(Core-1684XJD4)
RK3399(AI)核心板(Core-3399-JD4)
RK3328核心板(Core-3328-JD4)
RK1808(AI)核心板(Core-1808-JD4)
RK3399(AI)核心板(Core-3399-JD4)
RK3328核心板(Core-3328-JD4)
RK1808(AI)核心板(Core-1808-JD4)
内 存 16GB 1GB / 2GB / 4GB 1GB / 2GB / 4GB
存 储 64GB eMMC
3.5 英寸 SATA3.0 硬盘位 × 1
eMMC
3.5英寸硬盘
1个SATA/SSD硬盘
TF卡 x1
eMMC
3.5英寸SATA/SSD硬盘位x2(节点9)
TF卡 x1

物理规格

型 号 Cluster Server A1 Cluster Server R1 Cluster Server R2
尺 寸 标准1U机架式:490mm x 390mm x 44.4mm 标准1U机架式:490mm x 390mm x 44.4mm 标准2U服务器机箱:580mm x 434mm x 88.8mm
重 量 服务器主机:5.8kg 包装总重:7.2 kg 服务器主机:5.8kg 包装总重:7.2 kg 包装总重量:29 kg

环境规格

型 号 Cluster Server A1 Cluster Server R1 Cluster Server R2
工作温度 0ºC - 50ºC 0ºC - 40ºC 0ºC - 40ºC
工作湿度 10%RH~90%RH 8%RH~95%RH 8%RH~95%RH

实物图

_images/all1.png_images/all.png

网络结构

概览

_images/1.png

硬件接口

_images/front.png

  • GE M 端口访问 BMC 的入口, 接口为千兆以太网,与此端口连接在同一局域网内的 PC 可以访问 BMC。

  • SFP1+SFP2+ 为各计算单元的数据交互业务口,接口为万兆光口。各个计算单元可以通过此端口,获取外部 DHCP Server 分配的 IP 地址。

  • GE 口功能与 SFP1+SFP2+功能相同,但是接口为千兆电口,作为没有光口环境的备份接口。

由概览图可知,各个计算单元的业务数据,是不会经过 BMC 单元的。所以在计算单元的业务部署、运行等场景下,BMC单元是完全不需要关注的。

网卡 IP 配置策略

  • 主板

    • eth1: 这个网卡是外部访问 BMC 的入口,默认是静态 IP:192.168.100.100,如果用户需要修改 BMC 的访问地址,这个网卡的 IP 地址允许被修改。

    • pci_net: 这个网卡默认采用 DHCP,也可以通过其IP访问 BMC。

    • usb_net: 这个网卡是 BMC 与各个计算单元数据交互的网 卡,默认是静态 IP:192.168.150.1, 这个网卡的 IP 地址不允许被用户修改。

  • 计算单元

    • eth0: 这个网卡是计算单元与 BMC 数据交互的网卡,默认是静态 IP: 192.168.150.xx,IP 地址的最后一位是根据计算单元在服务器中的物理位置自动计算生产的, 这个网络的 IP 地址不允许被用户修改。

    • eth1: 这个网卡是计算单元与外部的业务数据交互网卡,默认采用 DHCP.

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{instance="127.0.0.1:9100", job="node", nodename="main", state="android", subnode="sub1-01"} => 1 @[1608772515.659]
node_cluster_up{instance="127.0.0.1:9100", job="node", nodename="main", state="android", subnode="sub1-02"} => 1 @[1608772515.659]
node_cluster_up{instance="127.0.0.1:9100", job="node", nodename="main", state="android", subnode="sub1-03"} => 1 @[1608772515.659]
node_cluster_up{instance="127.0.0.1:9100", job="node", nodename="main", state="android", subnode="sub1-04"} => 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{device="eth0", instance="127.0.0.1:60101", ipaddr="168.168.101.198", job="node", nodename="sub1-01"} => 1 @[1609396443.993]
node_network_ipaddr{device="eth0", instance="127.0.0.1:60102", ipaddr="168.168.100.180", job="node", nodename="sub1-02"} => 1 @[1609396443.993]
node_network_ipaddr{device="eth0", instance="127.0.0.1:60103", ipaddr="168.168.101.145", job="node", nodename="sub1-03"} => 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> {reset|poweron|poweroff}
        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> %{node}

软件服务

NFS 挂载

计算单元开机会通过 NFS 方式自动远程挂载 BMC 的磁盘,用户可以通过该服务拓展计算单元存储空间,也便于多计算单元间文件共享和交互。

BMC 提供磁盘 NFS 共享

BMC 会自动挂载 SATA 硬盘分区并提供 NFS 共享服务,具体运行逻辑如下:

  • 系统开机扫描 SATA 硬盘

  • 识别 SATA 硬盘分区,并逐个分区挂载(不支持 NTFS 格式,推荐使用 EXT4 或 FAT32 等格式)

  • SATA 硬盘分区会挂载到 /userdata/NFS/ 目录下,该目录为NFS共享目录供计算单元使用

所以要保证该服务能正常运行需要客户确认几点: (1)如果 BMC 接入的硬盘为未被分区硬盘,需要对硬盘进行分区 (2)对分区后的硬盘进行格式化 (3)重启 BMC 系统

查看计算单元挂载情况

  • 计算单元检查 firefly-NFS-auto-mount-client.service 是否正常运行 stemctl status firefly-NFS-auto-mount-client

  • 如果以上服务运行正常,那么在计算单元的 /media/NFS 目录下可以看到 BMC 的磁盘

    ssh sub01
    linaro@bm1684:~$ cd /media/NFS/
    linaro@bm1684:/media/NFS$ ls
    sda1
    

ssh 端口映射

为了方便客户开发,BMC 将 30001~30008 端口映射到对应的 sub01~sub08 的 ssh 端口,客户无需登录 BMC 即可远程操作计算单元,免去像堡垒机式的操作;且端口映射走的是BMC与计算单元的内部网络,专用网络通讯质量高且安全。

  • 支持ssh、scp 和 sshfs 等基于 SSH(默认为 22 端口)安全协议开发的衍生命令

  • 以下为通过访问 BMC 默认登录 IP:192.168.100.100 的 3001 端口,经 BMC 中转 ssh 登录 sub01 示例 ssh linaro@192.168.100.100 -p 3001

  • 同理ssh登录sub02 ssh linaro@192.168.100.100 -p 3002

FAQ

新旧 SDK 交替升级

服务器支持两套系统(SDK):

  • Debian 9(以 2.7.0、3.0.0 等版本号来划分)

  • Ubuntu 20.0 (以 22.12.01、23.07.01 等版本号来划分)

但是目前 Debian 9 这一套旧的 SDK 已经不做维护了,有使用到旧 SDK 的用户需尽快升级到 Ubuntu 20.0。

升级所需的固件包可以直接在资源下载处下载。

旧升新

如果计算单元(子板)是旧的 SDK (无论版本号),想要通过 Web 端或者命令行去升级新的 SDK(无论版本号),那么在执行升级之前,需要使用 BMC 内置的脚本依次做一些准备工作(需要进去 main 终端去执行,下面以更新 sub01 为例):

  1. 烧录 SPI FLASH(spi flash 固件和新 SDK 的版本号是相对应,烧写不同版本号的新 SDK 包,需要变换不同的 spi flash 固件)

bmc_upgrade_tool  -s  sub01  -f ./spi_flash.bin
  1. 烧录 MCU(这一步仅在计算单元的主控为 BM1684 的时候执行,如果是 BM1684X,请不要执行)

bmc_upgrade_tool  -m  sub01  -f ./bm1684_mcu_0x39.bin

之后便可以使用正常的 Web 或者是命令行去升级固件。

新升新

在新 SDK 可以正常运行于计算单元的基础上,可以直接使用 Web 或者命令行去升级固件。

同时也是可以逆版本号升级的(23.07.01 -> 23.05.01

新升旧(不推荐)

如果需要从新的 SDK 切回旧版本的 SDK,不需要其他的额外操作,直接使用 Web 端或者命令行升级即可(无论版本号),最好在升级完成之后硬重启一次子板(在 bmc 上操作即可)。

但以上不提倡,最好使用新的 SDK。