网络文件系统( NFS )和 SMB/CIFS 的文件命名约定以及文件名的最大长度是什么?
不可不使用
适用场景
- 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 客户端上,您可以选择使用文件属性显示短名称或长名称。
- 注意:在某些情况
lose
下、在客户端上运行的、使用 8.3 格式名称的应用程序可以使用文件的原始长格式名称。这可能是应用程序保存已编辑的文件的方式造成的。某些应用程序重命名原始文件,然后将编辑过的文件保存为新创建的文件。然后,文件管理器将收到删除原始文件和创建新文件的说明。当客户机仅支持 8.3 名称时、此新名称将不再具有等效的长格式。 - 请注意, NetApp 上的 DOS 仿真与 Windows XP 上的 DOS 仿真不同。
dir/x
NetApp 上的 CMD 会在达到限制后随机选择名称,而在 XP 目录上则保留前两个字符。限制为 5 个文件或目录、 8.3 命名方案的前 8 个字符中具有重复的字符集。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 创建的文件包含非法字符时,
charmap
可以使用该命令设置转换表以向 CIFS 客户机显示此类字符的替代显示。客户端将看到完整的长文件名,尽管其外观不同。 - 注意:切勿将非法字符映射到文件名中使用或预期使用的字符。如果这样做、例如通过将冒号映射到
a-umlaut
、a-umlauts
CIFS 客户机生成的文件名将被转换为 NFS 客户机的冒号。 - 每个卷可以有不同的转换表,并且必须根据需要为每个卷配置。此表仅包含 CIFS 非法字符。
- 当通过 NFS 创建的文件包含非法字符时,
- 案例冲突:
- 如上所述, Windows 系统不区分大小写。因此, UNIX 系统可以创建两个文件
test.txt
、TEST.txt
这对它很好、但 Windows 无法将它们分开。文件管理器知道这一点后,将为第二个文件创建一个 Tilde 表示形式,并进一步对文件进行冲突。这应该显示text.txt
为和text~1.txt
- 注意:在 Apple OS X 10.4 及更早版本中,使用 AFP 还会遇到 Windows 共享、日语字符和 32 个字符的文件名限制。
- 如上所述, Windows 系统不区分大小写。因此, UNIX 系统可以创建两个文件
- 在 ONTAP 中启用搜索短名称。
- 默认情况下,在 ONTAP ( cDOT 、集群模式 Data ONTAP )上运行时、 CIFS SVM (虚拟服务器)不能搜索 8.3 个短名称。
- 如果需要让 SVM 也搜索可以启用的短名称、但也可能会影响性能。 只有在旧应用程序需要时才应启用该功能。
- 要启用搜索短名称,请在高级权限级别运行此命令:
::*> vserver cifs options modify -vserver <SVM name> -is-search-short-names-enabled true.