# 裸金属云服务器质量控制

## 概述

<div align="left"><figure><img src="/files/0xE1U5QPWQtCggP4yFMb" alt="" width="563"><figcaption></figcaption></figure></div>

**裸金属云服务器质量控制**流程确保在<mark style="color:red;">**三个**</mark>**阶段**中的可靠性：

1. **部署前压力测试** – 验证硬件在出货前的稳定性。
2. **生产入库验收测试** – 在加入生产池前验证所有组件。
3. **系统运行监控与告警** – 维护长期健康与运营一致性。

## 1. 服务器压力测试

当我们<mark style="color:blue;">采购新服务器</mark>或服务器在边缘节点<mark style="color:blue;">首次部署</mark>时，会进行全面压力测试以确保硬件的稳定性与可靠性。

测试重点为内存完整性和系统级性能压力。我们主要使用以下工具：

### 1.1 MemTest86 — 内存稳定性与错误检测

<div align="left"><figure><img src="/files/QdQQAdz3fnzFHaqorfGi" alt="" width="563"><figcaption></figcaption></figure></div>

* **目的:** MemTest86 是独立的内存测试工具，可直接从启动运行，无需操作系统。它可检测内存模块的位错误、延迟异常及兼容性问题。
* **集成测试:** 内存与服务器整机硬件一起测试，而非在独立测试设备上单独测试内存模块。此方法能更真实地反映实际稳定性，捕捉内存、主板、CPU 与电源组件之间的相互作用。
* **测试阶段:**
  * 每轮必须完成<mark style="color:red;">**至少一次完整测试阶段**</mark>，确保验证所有地址范围和访问模式。
  * 测试结果会**根据每个内存模块的序列号（SN）记录和归档**，以便追踪和长期质量管理。
* **双阶段测试:**
  * **出厂前测试** – 在服务器组装完成并出货前进行，确保不出厂有缺陷的内存模块。
  * **机架安装后测试** – 机架安装后再次执行，以验证运输后的完整性，在分布式边缘环境中尤为重要。
* **官方网站:** <https://www.memtest86.com>。

### 1.2 stress-ng — CPU、内存、磁盘与 I/O 压力测试

<div align="left"><figure><img src="/files/2JFuP7smUtN19gM8yBQC" alt="" width="563"><figcaption></figcaption></figure></div>

* **目的:** stress-ng (<https://manpages.ubuntu.com/manpages/focal/man1/stress-ng.1.html>) 是 Linux 上的综合压力测试工具，支持数百种压力子系统测试 CPU、内存、磁盘及 I/O。
* **测试时长:** 每台服务器压力测试<mark style="color:red;">**不少于 4 小时**</mark>；高性能或 GPU 节点可延长至 <mark style="color:red;">**24 小时**</mark>。
* **出厂前测试监控指标:**
  * CPU 温度曲线
  * 风扇转速及控制响应
  * 电源稳定性（电压与功率）
* **目标:** 及早发现热量、风扇或电源不稳定迹象，确保只有完全稳定的单元进入生产。

## 2. 部署后质量控制

服务器在数据中心安装后，每台服务器都会经历完整的**硬件验收流程，方可进入生产库存（生产池）**。

这确保系统硬件符合设计规范，且处于验证的健康状态。

<div align="left"><figure><img src="/files/2VGQm4vbhq4kzqfMKNxM" alt="" width="563"><figcaption></figcaption></figure></div>

### 2.1 CPU 验证

* 验证安装的 CPU 型号与预期配置及性能规格一致。

### 2.2 内存验证

* 确认总安装内存符合规格，无缺失或多余 DIMM。
* 验证每条 DIMM 的容量和识别准确性。
* 检查 CPU 通道内存对称性，确保 NUMA 性能均衡。
* 确保操作系统报告的容量与实际安装一致。
* 对高性能配置，验证内存通道已完全填充。
* 确认所有 DIMM 品牌、频率及 Rank 规格一致。

### 2.3 磁盘验证

* 确认磁盘类型（SSD/HDD）、容量及接口符合型号规格。
* 验证磁盘数量正确。
* 检查 **SMART** 属性，并更换任何低于健康阈值的磁盘。

### 2.4 服务器机箱验证

* 确认出厂型号与配置记录一致。
* 验证冗余（双）电源。
* 检查 BIOS 与 BMC 固件版本是否符合批准基线。

### 2.5 GPU 验证

* 确认 GPU 数量与定义型号一致。
* 验证所有设备的 GPU 固件一致性。

### 2.6 网络适配器验证

* 验证实际链路速率与配置型号带宽一致（如 25 G NIC 接入 10 G 交换机，需标注为 10 G）。
* 确保 NIC 固件版本符合标准。

## 3. 运行时监控

服务器进入生产后，通过**运行时监控和生命周期验证**保持持续质量保障，包括：

1. **硬件验证在**<mark style="color:blue;">**实例开通与回收阶段**</mark>
2. **Linux 层与 IPMI 硬件遥测采集**
3. **多层监控与告警**

### 3.1 开通 & 回收阶段 — 实例生命周期检查

<div align="left"><figure><img src="/files/cUtoklZStobEH7nJW79E" alt="" width="563"><figcaption></figcaption></figure></div>

在每次通过控制台 **实例创建（开通）**&#x6216; **实例终止（回收）**&#x65F6;，自动硬件检查确保节点在用户工作负载前后均可靠。

#### **工作流程:**

1. **控制方案进入安装模式**，启动自动化操作系统部署。
2. **硬件信息上传:** 系统收集数据（通过 <mark style="color:blue;">lshw</mark> 或等效工具）并上传到中央平台。
   1. 包括 CPU、内存、磁盘、网卡、主板及 RAID 控制器信息。
   2. 用于合规验证及在 SRE 平台中的告警关联。
   3. 由于 **IPMI 与 Linux 暴露硬件信息维度不同**，因此 Linux 层数据也在此过程中采集，以<mark style="color:blue;">**补充 IPMI 遥测**</mark>。
   4. 出于安全原因，<mark style="color:red;">**不安装任何代理**</mark>；采集为**周期性**，非实时。
   5. 确保每次开通与回收周期中硬件可见性与一致性完整。
3. **磁盘健康验证:** 防止性能下降硬件进入或留在生产。
   1. 程序调用工具（<mark style="color:blue;">smartctl</mark>、<mark style="color:blue;">megacli</mark>、NVMe 工具）读取磁盘健康指标。如健康异常，则标记为<mark style="color:red;">**降级**</mark>。服务器标记为 **安装失败**，加入 **故障设备列表**，安装停止并上报监控及系统。

### 3.2 回收阶段 — 复用检查

服务器在实例释放后被回收时，重复开通阶段的磁盘健康检查。

### 3.3 监控数据采集与告警系统

服务器进入全面生产后，可观测性通过三层遥测保持：

* **基于 IPMI 的硬件监控**
* **业务 IP 网络监控**
* **交换机端口级监控**

所有采集的遥测数据也会**展示在每个实例的健康仪表盘**中，使用户可查看关键硬件与网络指标。

<div align="left"><figure><img src="/files/zPGfVE8q6HI9c1DAdjRD" alt=""><figcaption></figcaption></figure></div>

#### **1. 基于 IPMI 的监控**

* **IPMI IP ICMP（延迟 / 丢包）:** 监控 BMC 网络连通性。
* **传感器数据:**
  * 处理器 – 温度、电源、健康状态
  * 电源 – 电压、电流、冗余
  * 内存 – ECC 错误计数、DIMM 健康
  * 磁盘插槽 – 插入/移除状态、故障
  * 风扇 – 转速及控制响应
  * 温度 – 实时热量分布
* **SEL（系统事件日志）:** 捕获**关键中断**、电源或风扇故障等事件，并自动触发告警。

#### **2. 基于业务 IP 的监控**

* **WAN IP ICMP（延迟 / 丢包）:** 监控外部网络可达性及延迟。\
  超出阈值时触发告警。

#### **3. 交换机端口级监控**

* **入/出方向丢包:** 检测丢包或缓冲区溢出。
* **入/出方向错误:** 识别物理链路故障（CRC、对齐错误）。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.console.zenlayer.com/welcome/cn/bare-metal/best-practice/bare-metal-cloud-server-quality-control.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
