这篇笔记整理自之前的装机流程、NFS 恢复和常用命令记录,主要面向一台或一批 GPU/HPC 服务器从裸机到基础可用状态的部署过程。示例硬件以 H3C UniServer R4900 G6 Ultra 为主,具体步骤仍需以厂商白皮书和现场硬件配置为准。
制作启动盘#
准备可引导 ISO、烧录软件和一个 USB 3.0 U 盘。服务器系统可选择 Ubuntu Server LTS,例如 Ubuntu Server 22.04.5 LTS。
常用烧录工具:
- Rufus
- UltraISO
烧录时注意:
- UltraISO 写入方式选择
USB-HDD+。 - Rufus 目标系统类型选择
BIOS 或 UEFI。 - 分区类型可用 MBR。
- 文件系统按实际启动兼容性选择。
安装系统#
系统安装阶段通常不需要复杂配置,重点是:
- 创建一个非 root 用户,避免初始 root 密码不可用。
- 建议直接安装
openssh-server。 - 网络可以先不细配,系统安装完成后再统一调整。
硬件安装注意事项#
安装 GPU、IB 卡、内存或拆装 CPU 前,必须先看机器厂商白皮书。
需要特别注意:
- GPU 供电线可能有 A/B 线区分。
- 插拔电源线时不要拉扯线缆,应握住塑料接头。
- CPU 散热器拆装通常有规定的拧螺丝顺序。
- 运输前可能需要处理主板纽扣电池,避免 BIOS 配置异常。
- 内存条尽量插满;如果不能插满,应围绕每个 CPU 对称分布。
电源和 BIOS#
连接电源后先确认所有 PDU 指示灯正常。现代服务器一般有两个 PDU,互为冗余。
进入 BIOS 后可根据计算场景调整:
- 关闭超线程。
- 设置 NUMA Per Socket。
- 设置启动盘。
- 如果硬盘不识别,检查硬盘槽位、RAID/HBA 卡、IPMI 硬件状态和硬盘背板供电。
IPMI 检查#
IPMI 用于检查硬件状态,H3C 服务器上通常叫 HDM。
常见流程:
- 网线直连 IPMI/HDM 管理口。
- 根据机箱标签获取默认 IP 和掩码。
- 将本机设置到同一网段。
- 浏览器打开管理地址。
- 检查硬盘、电源、风扇、温度、告警灯和 PCIe 设备状态。
交换机和 VLAN#
通过 Console 线连接交换机。Windows 下可用设备管理器查看串口号,然后用 PuTTY 选择 Serial 连接。
H3C 交换机配置示例:
system-view
vlan 3
vlan 4
display interface GigabitEthernet 1/0/23
interface GigabitEthernet 1/0/23
port link-type trunk
port trunk permit vlan all
quit
interface range GigabitEthernet 1/0/1 to GigabitEthernet 1/0/22
port access vlan 3
quit
display vlan 3
interface GigabitEthernet 1/0/24
port access vlan 4
quit
配置后建议保存,并设置开机自动加载配置:
save
startup saved-configuration <config-file>
交换机默认密码需要及时修改。
网络配置#
系统安装后通过 ip link show 查看网口名。Ubuntu Server 可编辑 Netplan:
sudo vim /etc/netplan/50-cloud-init.yaml
示例:
network:
ethernets:
ens16f0:
addresses:
- <A.B.C.D>/24
nameservers:
addresses: []
search: []
routes:
- to: default
via: <A.B.C.D>
version: 2
应用配置:
sudo netplan apply
基础系统准备#
设置 root 密码:
su root
passwd root
禁用自动更新:
sudo vim /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
sudo vim /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
常用初始化:
echo "\$nrconf{kernelhints} = 0;" >> /etc/needrestart/needrestart.conf
echo "\$nrconf{restart} = 'l';" >> /etc/needrestart/needrestart.conf
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
apt update
apt upgrade
apt install git wget vim curl htop net-tools pciutils build-essential
分盘和挂载#
如果安装阶段报 block probing did not discover any disks,优先检查硬盘、RAID/HBA 卡和硬盘灯。
LVM 示例:
lsblk
sudo pvcreate /dev/sdb /dev/sdc /dev/sdd
sudo vgcreate vg_home /dev/sdb /dev/sdc /dev/sdd
vgdisplay
sudo lvcreate -l 100%FREE -n lv_home vg_home
sudo mkfs.ext4 /dev/vg_home/lv_home
sudo mount /dev/vg_home/lv_home /home
开机自动挂载:
sudo blkid /dev/vg_home/lv_home
sudo vim /etc/fstab
UUID=<UUID> /home ext4 defaults 0 2
验证:
sudo mount -a
df -h
NFS 共享 home#
所有节点安装:
sudo apt install nfs-kernel-server nfs-common rdma-core
服务端:
sudo mkdir -p /home
sudo chmod 777 /home
sudo vim /etc/exports
/home *(rw,sync,no_root_squash)
启用 RDMA:
sudo vim /etc/nfs.conf
[nfsd]
rdma=y
重启服务:
sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server
客户端挂载:
sudo mount -o rdma,vers=4.2 <server_ip>:/home /home
df -h | grep /home
开机挂载:
<server_ip>:/home /home nfs4 rdma,vers=4.2 0 0
验证 RDMA:
mount | grep /home
cat /proc/fs/nfsfs/servers
NFS 崩溃恢复记录#
如果 /home 是通过 NFS 挂载,恢复时先确认服务端磁盘是否正确挂载。
ssh gpu02
fdisk -l
如果存在类似 /dev/mapper/vg_home-home 的逻辑卷,需要先挂载到 /home:
mount /dev/mapper/vg_home-home /home
systemctl restart nfs-kernel-server
其他节点恢复挂载:
sudo mount gpu02:/home /home
InfiniBand 驱动和测试#
查看 IB 设备:
lspci | grep -i mell
安装基础工具:
sudo apt update
sudo apt install opensm infiniband-diags ibutils perftest -y
sudo systemctl start opensm
sudo systemctl enable opensm
检查设备:
ibv_devinfo
ibstat
带宽测试:
ibv_devices
ib_read_bw -a -d <device_name> --report_gbits
ib_read_bw -a -F <server_ip> -d <device_name> --report_gbits
简单连通性测试:
ibping <ip_addr>
CUDA 和 GPU 驱动#
查看 GPU:
lspci | grep -i nvidia
卸载 NVIDIA 驱动:
sudo /usr/bin/nvidia-uninstall
安装前应确认 GPU 型号、驱动版本和 CUDA Toolkit 版本兼容性。
Benchmark#
常用测试方向:
- MLC:内存带宽和延迟。
- STREAM:内存带宽。
- OSU Micro-Benchmarks:MPI/IB 通信性能。
- HPL/HPCG:CPU/GPU 集群算力测试。
OSU 也可以通过 Spack 安装:
spack install osu-micro-benchmarks ^openmpi/<hash>
运行:
$(which mpirun) -host i1:1,i2:1 $(which osu_bw)
常用系统命令#
关闭或开启超线程:
echo off > /sys/devices/system/cpu/smt/control
echo on > /sys/devices/system/cpu/smt/control
CPU performance mode:
#!/bin/bash
cpu_count=$(lscpu | grep "^CPU(s):" | awk '{print $2}')
for i in $(seq 0 $((cpu_count - 1))); do
echo "Setting cpu$i scaling governor to performance"
echo performance | sudo tee /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor
done
echo "All CPU governors set to performance."
监控 CPU 频率:
watch -n 1 "cat /proc/cpuinfo | grep 'cpu MHz'"
监控温度:
watch -n 1 'echo "Zone 0: $(($(cat /sys/class/thermal/thermal_zone0/temp)/1000))°C"; echo "Zone 1: $(($(cat /sys/class/thermal/thermal_zone1/temp)/1000))°C"'
Git 代理:
git config --global http.proxy "http://127.0.0.1:10002"
git config --global https.proxy "http://127.0.0.1:10002"
git config --global --unset http.proxy
git config --global --unset https.proxy
SSH 反向转发示例:
Host qhujumper
HostName 111.115.201.221
Port 22
User wukuangzheng
RemoteForward 10002 127.0.0.1:10002
APT 代理:
apt -o Acquire::http::proxy="http://192.168.0.100:3128/" update
GPU 功耗控制#
NVIDIA GPU 功耗限制:
sudo nvidia-smi -pl <power_limit>
AMD 平台示例:
sudo modprobe amd_hsmp
e_smi_tool --setpowerlimit 0 <power_limit_in_milliwatt> | grep -i "socket"
e_smi_tool --setpowerlimit 1 <power_limit_in_milliwatt> | grep -i "socket"
可以包装成脚本统一设置风扇、GPU 功耗、CPU 频率和 CPU 功耗,但具体命令依赖厂商工具和本地脚本路径。


