制作启动盘

资源中心 | 统信UOS生态社区下载对应的系统版本。因为本次安装的服务器硬件是海光的,同时因为A版本gcc版本高于E版本:
在这里插入图片描述

所以选择1070a-AMD64版本。
使用软件balenaEtcher烧录U盘,插到服务器上。

系统安装

启动服务器过程中,可以使用F7选择启动菜单,可以使用DEL进入设置菜单。
操作系统启动菜单中,我选择用图形化的界面安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选择安装目的地,如果磁盘中有数据,可能还会有磁盘空间回收的对话框:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择授权类型,我这里主要是测试,就选择免费的了
在这里插入图片描述
选择网络配置(可选)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完以后重启,接受许可证:
在这里插入图片描述
进入系统桌面环境
在这里插入图片描述
使用ssh登录后,会提示激活cockpit
在这里插入图片描述
在浏览器中登录,端口9090
在这里插入图片描述
在这里插入图片描述

安装显卡驱动

去官网https://www.nvidia.cn/drivers/lookup/下载驱动,我使用的是RTX 4090的显卡,最后选择的是580.126.09

# 禁用 Nouveau 开源驱动
sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF
sudo dracut --force  # 重建 initramfs(RHEL 系关键步骤)
sudo reboot
# 检查命令无输出
lsmod | grep nouveau

# 更新系统
sudo yum update -y
# 安装基础编译环境
sudo yum groupinstall "Development Tools" -y
# 安装匹配当前内核的头文件与开发包
sudo yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r) \
gcc make dkms pkgconfig acpid \
libglvnd-glx libglvnd-opengl libglvnd-devel \
libX11-devel libXext-devel libXrender-devel

# 临时切换到纯命令行环境
sudo systemctl isolate multi-user.target
sudo chmod +x NVIDIA-Linux-x86_64-580.126.09.run
sudo ./NVIDIA-Linux-x86_64-580.126.09.run --no-opengl-files --no-x-check

选择NVIDIA Proprietary
在这里插入图片描述
选择NO
在这里插入图片描述
选择YES
在这里插入图片描述
选择Rebuild initramfs
在这里插入图片描述
选择YES
在这里插入图片描述
安装完成
在这里插入图片描述
重启服务器:sudo reboot

安装Docker

参考Install daemon and client binaries on Linux

# 下载二进制文件
export VERSION=29.2.1
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-${VERSION}.tgz
tar xzvf docker-${VERSION}.tgz
cp docker/* /usr/local/bin/

# 配置开机运行
sudo cat << EOF > /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
RestartSec=5
TimeoutSec=0
IgnoreSIGPIPE=no
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
PrivateTmp=true
Delegate=yes
KillMode=process
OOMScoreAdjust=-500

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable docker.service
sudo systemctl start docker.service
# 限制docker日志大小
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

安装Docker Compose

参考:Install the Docker Compose plugin

mkdir -p /usr/local/lib/docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
docker compose version

安装NVIDIA Container Toolkit

参考:Installing the NVIDIA Container Toolkit

# 配置源
sudo dnf install -y curl
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
# 安装
sudo dnf install -y \
      nvidia-container-toolkit \
      nvidia-container-toolkit-base \
      libnvidia-container-tools \
      libnvidia-container1
# 配置docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

# 测试,可以看到GPU信息
docker run --rm --runtime=nvidia --gpus all mcr.microsoft.com/azureml/inference-base-1804:latest nvidia-smi

安装时会报一些CDI错误,不用理会
在这里插入图片描述

测试结果:
在这里插入图片描述

安装1Panel

sudo bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

会提示错误,不用管他,直接在浏览器中登录即可
在这里插入图片描述
在这里插入图片描述

问题

发现SSH登录一段时间无操作就会断开,echo $TMOUT为300.

echo "unset TMOUT" >> ~/.bashrc
echo "unset TMOUT" >> ~/.profile
source ~/.bashrc

su - root
vi /etc/profile
# 找到 TMOUT 那行,前面加 # 注释
# export TMOUT=300

sudo vi /etc/ssh/sshd_config
ClientAliveInterval 60
ClientAliveCountMax 300
TCPKeepAlive yes
sudo systemctl restart sshd

系统突然崩溃重启,排查问题

# 持久化 journal
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo sed -i 's/^#\?Storage=.*/Storage=persistent/' /etc/systemd/journald.conf
sudo systemctl restart systemd-journald

# 开启 kdump(抓内核崩溃转储)
sudo grubby --update-kernel=ALL --args="crashkernel=512M"
sudo systemctl enable --now kdump
sudo kdumpctl status

# 内核崩溃策略
sudo cat >/etc/sysctl.d/99-crash-debug.conf <<'EOF'
kernel.panic_on_oops=1
kernel.panic=10
kernel.sysrq=1
kernel.unknown_nmi_panic=1
vm.panic_on_oom=0
EOF
sudo sysctl --system

# 默认启动命令行模式
sudo systemctl disable --now lightdm
sudo systemctl set-default multi-user.target

sudo reboot
# 重启后检查
journalctl --list-boots
systemctl status kdump --no-pager
cat /proc/cmdline | tr ' ' '\n' | grep crashkernel
sysctl kernel.panic_on_oops kernel.panic kernel.sysrq kernel.unknown_nmi_panic vm.panic_on_oom

等系统再次崩溃的时候,检查日志发现:journalctl -b -1 -e

kernel: watchdog: watchdog0: watchdog did not stop!

等待下一次崩溃,又崩溃了一次,检查日志journalctl -b -1 -e

systemd[1]: Reached target Shutdown.
systemd[1]: Reached target Final Step.
systemd[1]: systemd-reboot.service: Succeeded.
systemd[1]: Started Reboot.
systemd[1]: Reached target Reboot.
systemd[1]: Shutting down.
systemd[1]: Hardware watchdog ‘iTCO_wdt’, version 0
systemd[1]: Set hardware watchdog to 10min.
kernel: watchdog: watchdog0: watchdog did not stop!
kernel: systemd-shutdow: 54 output lines suppressed due to ratelimiting
systemd-shutdown[1]: Syncing filesystems and block devices.
systemd-shutdown[1]: Sending SIGTERM to remaining processes…
systemd-journald[1358]: Journal stopped

dmesg | grep -iE 'watchdog|itco|hardlock|softlock'

[ 2.850577] NMI watchdog: Enabled. Permanently consumes one hw-PMU counter.
[ 14.748730] iTCO_vendor_support: vendor-support=0
[ 14.790931] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[ 14.791027] iTCO_wdt: Found a Intel PCH TCO device (Version=4, TCOBASE=0x0400)
[ 14.791140] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)

我的服务器用的是 Intel PCH 硬件看门狗(iTCO_wdt),默认「心跳超时时间 30 秒」—— 系统内核必须每 30 秒给看门狗发一次「心跳包」,一旦内核 / 驱动卡死、没法发心跳,看门狗就会直接断电重启。
我的容器中使用了macvlan网络,现在猜测macvlan 网络对宿主机 i40e 网卡驱动的频繁 / 后台操作,导致驱动瞬时卡死 → 内核喂狗不及时 → 看门狗强制重启,后续删除macvlan再观察一下。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐