콘텐츠로 이동

시스템 검증(rbln-bios)

rbln-bios는 서버 설정(GRUB 파라미터, BIOS 설정, 펌웨어 버전, 팬 속도, PCIe 슬롯 매핑)을 점검하여, RBLN NPU를 위한 호스트 전제 조건을 검증하는 시스템 진단 도구입니다.

Note

  • grub 및 slot target: BMC 액세스가 필요하지 않습니다. 모든 벤더 / 모델에서 동작합니다. slot target은 추가로 dmidecode가 필요합니다.
  • version, bios, fanspeed target: 검증된 서버 모델에서 Redfish API를 통한 BMC(Baseboard Management Controller) 액세스가 필요합니다.
    • Supermicro (DCMS 라이센스 필요):
      • AS -4125GS-TNRT2
      • AS -5126GS-TNRT2
    • Gigabyte:
      • G293-S43
      • G293-Z43
      • G294-Z21
      • G494-ZB4

빠른 시작

$ sudo rbln-bios -t grub -v

주요 개념 및 용어

검증 대상

rbln-bios는 -t, --target을 통해 하나 이상의 대상을 검증합니다:

  • grub: 최적의 NPU 성능을 위한 커널/부팅 파라미터를 검증합니다(로컬, BMC 불필요).
  • version: Redfish API를 통해 BIOS 및 BMC 펌웨어 버전을 모델별 기준값과 비교하여 검증합니다.
  • bios: Redfish API를 통해 BIOS 설정을 검증합니다.
  • fanspeed: Redfish API를 통해 팬 속도 상태를 점검합니다.
  • slot: 물리적 PCIe 슬롯을 RBLN NPU 장치에 매핑합니다(로컬, dmidecode 필요).
  • all: 지원되는 모든 대상을 실행합니다.

BMC(Redfish) 자격 증명

Note

BMC에 액세스하는 대상(version, bios, fanspeed)의 경우 다음을 지정해야 합니다:

  • --bmc_ip <BMC_IP>: BMC IP 주소(Redfish 엔드포인트)
  • --bmc_user <BMC_USER> / --bmc_password <BMC_PASSWORD>: BMC 자격 증명

BIOS 검증 항목

bios target은 BMC가 Redfish API로 보고하는 각 BIOS 설정을 기대값과 비교합니다. 점검 항목은 서버 벤더와 모델에 따라 다릅니다.

Supermicro 서버에서 rbln-bios는 다음 설정을 검증합니다.

Setting Expected Models
IOMMU Enabled 전체
SR_IOVSupport Enabled 전체
Re_SizeBARSupport Enabled 전체
ASPMSupport Auto 또는 Force L1 AS -5126GS-TNRT2만
DFCstates Disabled 전체
NUMANodesPerSocket NPS1 전체
ACPISRATL3CacheAsNUMADomain Disabled 전체
  • ASPMSupport는 AS -5126GS-TNRT2에서만 검증합니다. AS -4125GS-TNRT2에서는 출력에 이 행이 나타나지 않습니다.
  • Above4GDecoding, MMIO High Base, MMIO High Granularity Size, SNC (Intel)은 Supermicro 서버에서 검증하지 않으며 N/A로 보고됩니다.

Gigabyte 서버에서는 설정 이름과 점검 항목이 CPU 플랫폼 및 서버 모델에 따라 다릅니다.

명령어 참조

일반 사용법

$ rbln-bios -l
$ rbln-bios -t <target> [options]
$ rbln-bios -t <target1> <target2> ... [options]

Note

모든 검증 대상(-t)에는 root 권한이 필요합니다 — root가 아닌 경우 권한 오류로 실패합니다. 모든 명령어를 sudo로 실행해야 합니다.

Tip

설치된 버전의 전체 옵션은 rbln-bios --help로 확인할 수 있습니다.

전역 옵션

Option Description
-h, --help 도움말 메시지를 표시하고 종료합니다.
-v, --verbose 상세 출력(예: 권장/현재 GRUB cmdline 표시).
--version 버전 정보를 표시하고 종료합니다.
-t, --target <TARGET ...> 대상 검증: grub, version, bios, fanspeed, slot, 또는 all.
-l, --list 사용 가능한 대상을 나열합니다.
-j, --json JSON 형식으로 출력합니다.
--bmc_ip <BMC_IP> BMC IP 주소(Redfish 엔드포인트). version, bios, fanspeed에 필수.
--bmc_user <BMC_USER> BMC 사용자. version, bios, fanspeed에 필수.
--bmc_password <BMC_PASSWORD> BMC 비밀번호. version, bios, fanspeed에 필수.

CLI 예제

요약

현재 시스템에서 사용 가능한 검증 대상을 나열합니다.

명령어

Command
$ rbln-bios -l

출력(예제)

대상 목록 (예제)
Available targets:
        grub
        version
        bios
        fanspeed
        slot

요약

커널/부팅 파라미터를 검증합니다. -v, --verbose를 사용하여 권장 및 현재 GRUB cmdline을 표시합니다.

명령어

Command
$ sudo rbln-bios -t grub

출력(예제)

GRUB 검증 (예제)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== GRUB Boot Parameter ====
Result                : OK

Note

Result는 다음 값 중 하나로 보고됩니다.

  • OK: 권장 커널/부팅 파라미터가 모두 존재합니다.
  • WARNING: 권장 파라미터 중 일부가 누락되었습니다. 누락된 항목은 Missing 필드에 표시됩니다.
  • CRITICAL: 필수 파라미터가 누락되었습니다. Intel CPU에서는 pci=noats가 필수이며, 누락 시 Mandatory 필드에 표시됩니다.
  • UNKNOWN: 커널/부팅 파라미터를 읽을 수 없습니다.

요약

권장 및 현재 cmdline을 포함한 상세 커널/부팅 파라미터 검증을 수행합니다.

명령어

Command
$ sudo rbln-bios -t grub -v

출력(예제)

GRUB 상세 검증 (예제)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== GRUB Boot Parameter ====
Result                : OK
Recommended           : transparent_hugepage=madvise pcie_aspm=force pci=pcie_bus_perf pci=bfsort ...
Current               : BOOT_IMAGE=... root=... ro transparent_hugepage=madvise pcie_aspm=force ...

요약

Redfish API를 통해 BIOS 및 BMC 펌웨어 버전을 모델별 기준값과 비교하여 검증합니다. --bmc_ip, --bmc_user, --bmc_password가 필요합니다.

명령어

Command
$ sudo rbln-bios -t version --bmc_ip 192.168.1.100 --bmc_user admin --bmc_password password123

출력(예제)

펌웨어 버전 검증 (예제)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== Firmware Version ====
 Result: PASS
 Model                          AS-4125GS-TNRT2
 BIOS                           ✓  3.7.V1
 BMC                            ✓  11.09.02

Note

Result는 두 펌웨어 버전이 모두 기준값과 일치하면 PASS, 불일치하면 FAIL, 버전을 읽을 수 없으면 UNKNOWN으로 보고됩니다.

요약

Redfish API를 통해 BIOS 설정을 검증합니다. --bmc_ip, --bmc_user, --bmc_password가 필요합니다.

명령어

Command
$ sudo rbln-bios -t bios --bmc_ip 192.168.1.100 --bmc_user admin --bmc_password password123

출력(예제)

BIOS 검증 (예제)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== BIOS Settings ====
 Result: OK
 Setting                        Status
 ---------------------------------------------
  IOMMU                          ✓  Enabled
  SR_IOVSupport                  ✓  Enabled
  Re_SizeBARSupport              ✓  Enabled
  DFCstates                      ✓  Disabled
  NUMANodesPerSocket             ✓  NPS1
  ACPISRATL3CacheAsNUMADomain    ✓  Disabled
  Above4GDecoding                N/A
  MMIO High Base                 N/A
  MMIO High Granularity Size     N/A
  SNC (Intel)                    N/A

Note

Status 열의 각 행은 다음 상태 중 하나를 표시합니다. 서버별 점검 항목은 BIOS 검증 항목에서 확인할 수 있습니다.

  • ✓: 설정이 기대값과 일치합니다. 표시 뒤에 현재 값이 출력됩니다.
  • x: 설정이 기대값과 일치하지 않습니다. 행에 Expected: <EXPECTED>, Actual: <ACTUAL>이 출력됩니다.
  • ?: 이 서버에서 검증하는 설정이지만, BMC가 Redfish API로 노출하지 않습니다. 행에 Expected: <EXPECTED>, Actual: UNKNOWN이 출력됩니다.
  • N/A: 이 서버에서 검증하지 않는 설정이며 Result에 영향을 주지 않습니다.

Result는 다음 값 중 하나로 보고됩니다.

  • OK: 검증한 모든 설정이 일치합니다.
  • WARNING: 불일치한 설정은 없지만, 하나 이상의 설정이 ?로 보고되었습니다.
  • CRITICAL: 하나 이상의 설정이 x로 보고되었습니다.
  • UNKNOWN: 검증을 실행할 수 없습니다. 예를 들어 BMC에 연결할 수 없거나 지원되지 않는 서버 모델인 경우입니다. 원인은 Message 필드에 표시됩니다.

일부 CPU(예: AMD Turin)에서는 Above 4G Decoding이 기본적으로 활성화되어 BIOS에 노출되지 않을 수 있습니다. 이 항목이 UNKNOWN으로 보고되더라도 시스템이 올바르게 구성되어 있을 수 있으며, rbln-bios는 이 경우 안내 메시지를 함께 출력합니다.

요약

Redfish API를 통해 팬 속도 상태를 점검합니다. --bmc_ip, --bmc_user, --bmc_password가 필요합니다.

명령어

Command
$ sudo rbln-bios -t fanspeed --bmc_ip 192.168.1.100 --bmc_user admin --bmc_password password123

출력(예제)

팬 속도 점검 (예제)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== Fan Speed ====
 Result                         OK
 Fan Mode                       Optimal (expected: Optimal)
 Fan                            Speed(RPM)     Status
 -----------------------------------------------------------------
 FAN_1                                7500    enabled
 FAN_2                                7600    enabled

Note

Supermicro에서는 팬 모드(예상값 Optimal)를, Gigabyte에서는 팬 프로파일(예상값 default)을 점검합니다. 이에 따라 Fan Mode 또는 Fan Profile 행이 표시됩니다.

요약

DMI 슬롯 데이터(dmidecode)와 sysfs를 사용하여 물리적 PCIe 슬롯을 RBLN NPU 장치에 매핑합니다. BMC 액세스가 필요하지 않습니다.

명령어

Command
$ sudo rbln-bios -t slot

출력(예제)

슬롯 / 장치 매핑 (예제)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== Slot / Device Mapping ====
 Result: OK
+-------+-----------------+--------+
| Slot  | PCI Bus Address | Device |
+=======+=================+========+
| SLOT1 | 0000:33:00.0    | rbln0  |
| SLOT2 | 0000:53:00.0    | rbln1  |
| SLOT3 | 0000:d3:00.0    | rbln2  |
| SLOT4 | 0000:d4:00.0    | rbln3  |
+-------+-----------------+--------+

요약

프로그래밍 방식으로 사용할 수 있도록 JSON 형식으로 검증 결과를 출력합니다.

명령어

Command
$ sudo rbln-bios -t grub -j

출력(예제)

JSON 출력 (예제)
{
    "version": "3.2.0",
    "system_information": {
        "os": "ubuntu 22.04.5 LTS (Jammy Jellyfish)",
        "kernel": "6.8.0-90-generic",
        "cpu_model": "AMD EPYC 9355 32-Core Processor",
        "manufacturer": "Supermicro",
        "architecture": "x86_64"
    },
    "grub_boot_parameter": {
        "result": "OK",
        "message": "",
        "missing": "",
        "mandatory": "",
        "recommended": "transparent_hugepage=madvise pcie_aspm=force pci=pcie_bus_perf pci=bfsort ...",
        "current": "BOOT_IMAGE=... transparent_hugepage=madvise pcie_aspm=force ..."
    }
}

Host Interface를 통한 운영

BMC와 호스트 간의 내부 네트워크 인터페이스(Host Interface)를 사용하면, 외부 네트워크 연결 없이도 rbln-bios의 Redfish 기반 기능(version, bios, fanspeed)을 사용할 수 있습니다.

1. Web BMC에서 Host Interface 활성화

Web BMC 관리 페이지에 접속하여 Host Interface 설정을 활성화합니다. (Configuration/BMC Settings/Host Interface)

  • Host IP Address: 169.254.3.1(변경 가능)
  • BMC IP Address: 169.254.3.254(실제 입력값으로 사용할 IP)

2. 호스트 측 네트워크 인터페이스 설정

Host Interface에 해당하는 네트워크 장치에 IP 주소를 할당하고 활성화합니다.

$ sudo ip addr add 169.254.3.1/24 dev enxbe3af2b6059f
$ sudo ip link set enxbe3af2b6059f up

Note

enxbe3af2b6059f는 Host Interface의 네트워크 장치 이름이며, 시스템에 따라 다를 수 있습니다. ip link 명령어로 확인할 수 있습니다.

3. rbln-bios 실행

--bmc_ip 옵션에 내부 BMC IP(169.254.3.254)를 지정하여 Host Interface를 통해 실행합니다.

$ sudo rbln-bios -t bios --bmc_ip 169.254.3.254 --bmc_user <username> --bmc_password <password>
$ sudo rbln-bios -t fanspeed --bmc_ip 169.254.3.254 --bmc_user <username> --bmc_password <password>

문제 해결

version, bios, 또는 fanspeed 실패

  • 호스트가 BMC에 도달할 수 있고 Redfish 엔드포인트에 액세스할 수 있는지 확인합니다.
  • BMC 자격 증명 및 BMC IP 주소를 확인합니다(BMC(Redfish) 자격 증명 참조).

지원되지 않는 플랫폼

grub 및 slot target은 모든 벤더 / 모델에서 동작합니다(slot target은 dmidecode가 필요합니다). version, bios, fanspeed target은 Redfish API를 통한 BMC 액세스가 필요하며, 현재 Supermicro(AS -4125GS-TNRT2, AS -5126GS-TNRT2; DCMS 라이센스 필요) 및 Gigabyte(G293-S43, G293-Z43, G294-Z21, G494-ZB4) 서버에서 검증되었습니다.

관련 문서