跳转到主内容

网络文件系统 (NFS) 和 SMB/CIFS 的文件命名约定以及文件名的最大长度是什么?

Views:
1,537
Visibility:
Public
Votes:
1
Category:
ontap-9
Specialty:
nas
Last Updated:

 

适用于

  • ONTAP 9
  • CIFS\NFS
  • 文件路径\名称的最大长度

问题解答

  • 文件名被截断
  • 错误消息: File not found
  • 无法打开长文件名的文件
  • 通过 SMB 从 Windows 客户端计算机浏览时,文件名显示为 8.3 格式
  • UNIX 用户正在通过 NFS 挂载点保存文件通过 CIFS 从 Windows 客户端计算机浏览时,文件名显示为 8.3 格式

 

 
  • NFS 和 CIFS 使用的文件的文件命名约定
    • 文件命名约定取决于客户端的操作系统和文件共享协议。例如,对于运行 UNIX 操作系统的客户端,文件名区分大小写;对于运行任何 Windows 操作系统的客户端,文件名不区分大小写。
  • 文件名的最大长度
    • 在存储系统上,对于支持 PC 长文件名格式的 NFS 客户端和 CIFS 客户端,文件名的最大长度为 255 个字符。

注意:这与最大文件路径长度是分开的,CIFS 的最大文件路径长度为 32727,NFS 的最大文件路径长度为 4096。

  • 某些 CIFS 客户端(例如 MS-DOS 和 Windows 3.x 客户端)仅支持 8.3 格式的文件名(文件名为 8 个字符,文件扩展名为 3 个字符)。在任何可从 CIFS 客户端访问的目录中,存储系统都会创建并维护两个名称:原始长名称和 8.3 格式的附加短名称。存储系统按如下方式生成 8.3 名称:
    • 它会将文件名截断为六个字符。
    • 它会在文件名后附加一个 tilde (~) 和一个数字或字母。如果由于名称相似度过高而导致字母和数字不足,它会创建一个与原始文件名无关的唯一文件名。
    • 它会将文件扩展名截断为三个字符。

注意:短名称后附加的数字或字母确保文件名的唯一性。它不用于显示文件创建的顺序。

  • 例如,如果 NFS 客户端创建一个名为 specifications.html 的文件,则存储系统创建的短名称为 specif~0.htm。如果此短名称已存在,则存储系统会在文件名末尾使用不同的数字。例如,如果 UNIX 客户端创建另一个名为 specifications_new.html 的文件,则 specifications_new.html 的短版本为 specif~1.htm
  • 短名称显示在仅支持 8.3 格式的客户端上。短名称对 NFS 客户端不可见。在 Windows 95 和 Windows NT 客户端上,您可以选择使用文件属性显示短名称或长名称。

注意在某些情况下,在使用 8.3 格式名称的客户端上运行的应用程序可能会lose丢失文件的原始长格式名称。这可能是由于应用程序保存已编辑文件的方式导致的。某些应用程序会重命名原始文件,然后将编辑后的文件保存为新创建的文件。然后,文件管理器会收到删除原始文件并创建新文件的指令。当客户端仅支持 8.3 名称时,此新名称将不再具有长格式的等效名称。

  • 需要注意的是,NetApp 上的 DOS 仿真与 Windows XP 上的不同。dir/x cmd 在达到限制后会随机化名称,而在 XP 目录上的前两个字符会保留。在 8.3 命名方案的前 8 个字符中字符集重复的文件或目录数量限制为 5 个。XP 和 NetApp 都会根据~1命名方案中的最后修改日期顺序命名文件,而 NetApp 会在达到 5 个限制后删除编号。
    • 此处显示的是 Windows XP Professional SP2:
    • 目录 C:test dir /x

04/24/2008  10:41 AM   <DIR>                       .
04/24/2008  10:41 AM   <DIR>                       ..
04/24/2008  10:41 AM   <DIR>          MS57C1~1     MSSDK_4_01
04/24/2008  10:41 AM   <DIR>          MS67C1~1     MSSDK_4_02
04/24/2008  10:41 AM   <DIR>          MS77C1~1     MSSDK_4_03
04/24/2008  10:41 AM   <DIR>          MSSDK_~4     MSSDK_4_04
04/24/2008  10:41 AM   <DIR>          MSSDK_~3     MSSDK_4_05
04/24/2008  10:41 AM   <DIR>          MSSDK_~2     MSSDK_4_06
04/24/2008  10:41 AM   <DIR>          MSSDK_~1     MSSDK_4_07
               0 File(s)              0 bytes
               9 Dir(s)  37,710,434,304 bytes free

  • 同样的事情,但在 NetApp 上:
  • 目录 Z:test dir /x

04/24/2008  10:39 AM   <DIR>                       .
04/24/2008  10:38 AM   <DIR>                       ..
04/24/2008  10:39 AM   <DIR>          MSSDK_~1     MSSDK_4_01
04/24/2008  10:39 AM   <DIR>          MSSDK_~2     MSSDK_4_02
04/24/2008  10:39 AM   <DIR>          MSSDK_~3     MSSDK_4_03
04/24/2008  10:39 AM   <DIR>          MSSDK_~4     MSSDK_4_04
04/24/2008  10:39 AM   <DIR>          MSSDK_~5     MSSDK_4_05
04/24/2008  10:39 AM   <DIR>          U9ORL00~     MSSDK_4_06
04/24/2008  10:39 AM   <DIR>          V9ORL00~     MSSDK_4_07
               0 File(s)              0 bytes
               9 Dir(s)  2,967,848,583,168 bytes free

 

  • 配置非法字符的替代显示方式
    • 当通过 NFS 创建的文件包含非法字符时,字符映射可以使用来设置转换表,以便向 CIFS 客户端提供此类字符的替代显示。客户端将看到完整的长文件名,尽管看起来有所不同。

注意:切勿将非法字符映射到文件名中原本使用或预期使用的字符。如果您这样做,例如将冒号映射到a-umlauta-umlauts则 CIFS 客户端生成的文件名中的字符将被转换为 NFS 客户端的冒号。

  • 每个卷可以有不同的转换表,并且必须根据需要为每个卷配置转换表。该表仅涵盖 CIFS 非法的字符。
  • 大小写冲突
    • 如上所述,Windows 系统不区分大小写。因此,UNIX 系统可以创建两个文件 test.txtTEST.txt 这对它来说没问题,但 Windows 无法区分它们。知道这一点,Filer 会为第二个以及之后每个冲突的文件创建一个波浪号表示。这应该显示为 text.txttext~1.txt

注意:在 Apple OS X 10.4 及更早版本中,使用 AFP 还会遇到 Windows 共享、日语字符以及文件名 32 个字符的限制。

  • 在 ONTAP 中启用短名称搜索。
    • 默认情况下,CIFS SVM(vserver)在 ONTAP(cDOT、Clustered Data ONTAP)上运行时无法搜索 8.3 短名称。
    • 如果需要让 SVM 也搜索短名称,可以启用此功能,但这也会影响性能。  只有在旧版应用程序需要时才应启用此功能。
    • 要启用短名称搜索功能,请在高级权限级别运行以下命令:
      • ::*> vserver cifs options modify -vserver <SVM name> -is-search-short-names-enabled true.

 

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.