使用nfs协议导出日志到远端成功,但查看任务状态报错。

一、测试环境
硬件:S920X20
BMC版本:25.06
二、测试步骤

  1. 使用postman创建redfish会话,使用nfs协议导出操作/安全/运行日志到远端。
  2. 查看任务状态:
  3. 查看nfs服务器目录:
  4. 研发同事提供的日志文件:

    根据日志分析,是文件在完成复制前,NFS被提前卸载。请确认此问题。

@wangjlau_dc 已经确认 BMC SDK 部分 file_transfer 代码,对于日志中出现的 拷贝之前卸载 NFS 的这个问题,是因为当前拷贝确认失败了,在失败日志打印之前还是要卸载 NFS 分区,防止整个处理退出之后 NFS 分区依旧挂载在 BMC 环境中。

总之,当前日志上表现出来的确认是上传文件到 NFS 失败了,至于看到 NFS 上文件已经存在了,可以进行一下文件的摘要比较,确认 NFS 上的文件和要上传的文件是否相同。文件摘要计算命令参考:sha256sum <filename>

使用scp协议将日志传到远端,任务状态是成功,可以在远端看到日志:


使用nfs协议将日志传到远端,任务状态是失败,也可以在远端看到日志:

用diff对比这两个日志文件的内容是一样的;用sha256sum得到文件的校验码进行对比,也是一样的。

该问题最近还有出现吗

在25.12版本上进行了测试,还是存在的。文件可以成功传输,但是redfish命令返回文件传输失败。


@zhangbaocun 您好,这个问题在2512版本上还是复现了,log如下:


单从日志分析是file_copy_with_progress进行时nfs被umount掉了。

如果场内无法复现,也请麻烦帮忙分析下日志给个定位建议吧。

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

修改方案:
建议将 NFS 文件系统所在的服务器的文件导出配置进行修改,具体修改方式如下:

# 备注:以下执行命令均需要 root 权限才能操作
# 请保证使用 root 用户登陆服务器或者有root 权限(如:sudo)

# 步骤1:确认 NFS 文件服务器上的文件导出配置
exportgfs -v

# 步骤2:打开 NFS 服务器文件导出配置并且进行编辑(增加配置)
vi /etc/exports

# 在打开的文本编辑中找到对应的导出路径(如:/root/NFSShare),选项中增加以下选项:
修改前:/root/NFSShare *(rw,sync)
修改后:/root/NFSShare *(rw,sync,no_root_squash,insecure)

# 步骤3:然后重置 exports 配置进行生效
exportfs -ra

# 步骤4:确认 NFS 文件服务器上的文件导出配置
exportgfs -v

确认 exports 配置生效之后再行测试。

2 个赞