昇腾故障案例详情页

使用动态虚拟化时,以普通用户运行推理业务容器失败

更新时间: 2023/09/18

暂无评分

问题信息

问题来源产品大类产品子类关键字
官方安装部署MindX DL动态虚拟化、普通用户、推理任务启动失败

问题现象描述

在昇腾310P AI处理器的设备上部署Ascend Device Plugin和Volcano组件并开启动态虚拟化开关,下发任务后虚拟设备创建成功,但推理任务运行失败。

原因分析

推理任务容器使用普通用户运行,会出现以下问题,最终导致普通用户访问root属组的vNPU设备失败,从而导致推理业务容器运行失败。

  • 物理机上通过特权容器调用接口创建的vNPU为root属组,该vNPU在特权容器内/dev目录下不可见。
  • 驱动接口创建vNPU后默认为root属组,特权容器内就无法修改新创建的vNPU属组为非root。

解决措施

在Ascend Device Plugin组件的启动yaml中挂载/dev,示例如下。
command: [ "/bin/bash", "-c", "--"]
         args: [ "device-plugin  -useAscendDocker=true -volcanoType=true
                  -logFile=/var/log/mindx-dl/devicePlugin/devicePlugin.log -logLevel=0" ]
         securityContext:
           privileged: true
           readOnlyRootFilesystem: true
         imagePullPolicy: Never
         volumeMounts:
           - name: device-plugin
             mountPath: /var/lib/kubelet/device-plugins
...                                         # 此处省略若干字段
           - name: tmp
             mountPath: /tmp
           - name: dev
            mountPath: /dev            # 在此处挂载/dev
         env:
           - name: NODE_NAME
             valueFrom:
               fieldRef:
                 fieldPath: spec.nodeName
       volumes:
         - name: device-plugin
           hostPath:
             path: /var/lib/kubelet/device-plugins
...                                      # 此处省略若干字段
         - name: tmp
           hostPath:
             path: /tmp
        - name: dev                   # 在此处挂载/dev
          hostPath:
            path: /dev

本页内容

该页面对您有帮助吗?
我要评分