openEuler折腾小记:docker/nvidia 配置

openEuler 简介

openEuler是一款开源操作系统。当前openEuler内核源于Linux,支持鲲鹏及其它多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大数据、云计算、人工智能等应用场景。同时,openEuler是一个面向全球的操作系统开源社区,通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统,推动软硬件应用生态繁荣发展

为什么选择openEuler

  1. 内存RAS - 高可靠内存,可以支持内核、关键进程、内存文件系统、文件缓存使用高可靠内存,避免内存多 bit 故障引起内核复位。改进了对高可靠内存的支持,对高可靠内存支持更加完善。
  2. 内存RAS - UCE容错增强,支持 copy_from_user 读操作时,发生内存多bit错误,可以通过杀掉受影响的进程,而避免内核复位。 可编程内核调度框架,抢占、选核、选任务部分实现及示例。
  3. 资源隔离,在cgroup v1中支持iocost,用户可以通过配置权重对io资源进行分配。
  4. CXL支持,增加PCIe/AER的RCEC(Root Complex Event Collectors)处理。 调测,基于 ARM 64 SPE,实现 perf c2c,更方便的检测Cache伪共享,定位性能瓶颈。
  5. AF_UNIX socket 性能优化,大幅降低多并发场景下,连接时延和CPU占用率。

openEuler智能运维

openEuler提供智能运维基本框架,支持cve管理、配置溯源、异常检测等基础能力,支持快速排障和运维成本降低。

cve在线巡检,提供cve批量感知修复能力,系统管理各主机漏洞情况,方便用户快速识别主机漏洞,区分受影响与不受影响cve,一键修复,保障集群安全,提升漏洞修复效率。 异常检测,突破在线巡检、高性能高精度探针等关键技术,在mysql、openGauss业务场景实现网络I/O时延、丢包、中断等故障以及磁盘I/O高负载故障的发现。 运维工具集,通过对案例的总结/分析形成,包含问题定位、系统巡检/监控、ftrace增强、一键收集日志等功能,是一款集成分析、流程跟踪、信息定时记录、历史经验固化等功能于一体的OS内核问题定位工具。

折腾环境与目标

CPU:I9-10980XE 主板:MSI X299-PRO 内存:32Gx2 GPU:GIGABYTE 3060x2 OS:openEuler 22.03 (LTS-SP1) 安装包:最小化安装

安装所需依赖

dnf install kernel-devel dkms make -y
yum install bzip2-devel gmp-devel.x86_64 mpfr-devel.x86_64 libmpc-devel.x86_64 libSM-devel.x86_64 libxml2-devel -y

安装nvidia驱动

  1. 注释开源驱动和ipv6这种碍事的东西 编辑/etc/grub2.cfg或/etc/grub2-efi.cfg,具体是哪个文件取决于bios设置的引导模式是什么。

    	echo 'Loading openEuler (5.10.0-136.17.0.93.oe2203sp1.x86_64) 22.03 (LTS-SP1)'
     linuxefi	/vmlinuz-5.10.0-136.17.0.93.oe2203sp1.x86_64 root=UUID=54a9e953-0a9e-45dc-9206-179453b0f341 ro cgroup_disable=files apparmor=0 ipv6.disable=1 rd.driver.blacklist=nouveau nouveau.modeset=0 crashkernel=512M
    

    ``

  2. 安装nvidia显卡驱动 静默安装,默认接受协议,不检测x windows系统,安装dkms动态内核模块

    sh NVIDIA-.run -q -a -s --dkms --no-x-check 
    

    如果您下载的是含32/64bit lib的全版本驱动,那么还可以增加–no-install-compat32-libs来默认不安装32bit lib;

  3. 安装docker和nvidia-container-toolkit

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum install docker-ce-19.03.8 docker-ce-cli-19.03.8 containerd.io
    

    openeuler的nvidia container toolkit目前只能安装Centos8版本

curl -s -L https://nvidia.github.io/nvidia-docker/centos8/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
yum install -y nvidia-container-toolkit

为容器指定特定的GPU

docker run -it --gpus='"device=1"' 镜像 nvidia-smi

安装nvidia-container-toolkit 后,通过 **–gpus='“device=0,1,2.."'**来指定特定的gpu给容器使用

Published At