none
windows server 2012 nfs 服务用于suse 11 64bit中的32位应用程序时存在兼容性问题 RRS feed

  • 问题

  • 我们当前的应用程序均运行在suse enterprise 11 sp3 64bit服务器上,上面有一些客户端是32位的可以正常运行。

    之前使用的文件服务器有windows server 2008 r2 64bit/ windows server 2003/ suse等,

    suse服务器上mount一个文件夹给应用程序访问

    32位应用程序的主要任务是定时调用stat方法去mount文件夹中查看文件信息,根据返回的信息来开展业务,一直运行几年了正常没有问题

    但是现在切换到windows server 2012 R2之后 ,stat返回值为-1, errno为75表示overflow,只有把stat切换成stat64才可以正常返回结果(这样整改现在不被 允许)。但这感觉不应该,为何2008都可以支持的兼容性,到了2012就无法支持了。想询问一下是否2012有相关的配置项可以解决此类问题,或者是否有什么原因导致该问题发生,以及解决方法。

    PS:

    suse使用的客户端版本为NFS3.0  windows 2012似乎是NFSV4.1。问题是必现的,只要32位应用程序使用stat命令访问任何2008 nfs 共享文件夹下的文件,都会返回同样的错误和错误码。

    2016年12月17日 11:13

全部回复

  • 您好:

    1.据我所知NFS4.1是向下兼容3.0和2.0的。而且是有官方文档确认的。

    虚拟文件系统。此文件系统包括物理和逻辑命名空间的分离,并且与 NFS 版本 3 和 NFS 版本 2 兼容对于导出的文件系统,这是虚拟文件系统的一部分提供别名。

    REF:网络文件系统概述(如果您觉得中文表达不准确,我建议您查看英文版本)

    https://technet.microsoft.com/zh-cn/library/jj592688%28v=ws.11%29.aspx?f=255&MSPPError=-2147217396

    2.根据您的描述,windows server 2012r2对_stat的调用像是做了严格的区分,必须要用_stat64才能正常返回结果,但是我并没有找到任务官方文档阐述这个问题,更大的可能是一个by design的行为,所以更简单有效的方法是联系您应用软件的供应商或者开发者,让软件支持调用_stat64.


    Best Regards,
    Cartman
    Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.


    2016年12月19日 8:24
    版主
  • 您好:

    请问问题解决了吗?


    Best Regards,
    Cartman
    Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年12月27日 6:55
    版主