使用nfs协议导出日志到远端成功,但查看任务状态报错问题分析
更新时间: 2026/05/30
在Gitcode上查看源码

问题背景

  • 单板类型:S920X20;
  • 软件版本:openUBMC 25.06;
  • 涉及功能:redfish创建会话,redfish使用NFS协议远程导出日志;
  • 触发条件:使用postman创建redfish会话后使用该会话ID配套nfs协议在redfish接口导出操作/安全/运行日志到远端,再通过redfish接口查看对应的远程导出任务状态。
  • 业务表现:预期nfs服务器可查看到对应路径下的日志文件且任务进度可到100%;实际nfs服务器可查看到对应路径下的日志文件但是任务百分比显示为null。

问题复现步骤

  1. 使用postman创建redfish会话,redfish接口为/redfish/v1/SessionService/Sessions;
  2. 使用nfs协议导出操作/安全/运行日志到远端,redfish接口为/redfish/v1/Managers/1/LogServices/RunLog/Actions/Oem/openUBMC/LogService.ExportLog;
  3. postman查看任务状态,redfish接口为redfish/v1/TaskService/Tasks/taskid;

关键日志信息

导出接口任务创建返回202: task进度查询结果为null: app.log日志:

定位过程

  1. 查看nfs服务器是否存在运行日志: 显示nfs服务器侧导出文件存在;
  2. 尝试使用scp协议将日志传到远端,任务状态是成功,可以在远端看到日志:
  3. 用diff对比这两个日志文件的内容是一样的;用sha256sum得到文件的校验码进行对比,也是一样的。
  4. 确认nfs协议和scp协议导出文件过程中的差异。

问题原因

openUBMC在文件导出到远程NFS服务器上时,经过安全的考虑,会将导出的远端文件进行文件属主和属组以及权限进行重置,其中文件的属主重置为504(owner id),属组重置为204(group id);由于当前的NFS文件系统的配置不允许外来用户修改文件的属主和权限,因此失败(失败的现象:文件能导出成功,但是导出流程上失败)。

解决方案

修改NFS文件系统所在的服务器的文件导出配置,具体修改方式如下: 确认exports配置生效之后再次测试,功能正常。