卷语言如何与运行 7 模式 Data ONTAP 的存储系统配合使用?
适用于
7- 模式 Data ONTAP
解答
检查 Active IQ 是否会影响您的系统
每个卷都有一种语言。存储系统使用与语言对应的字符集。可以在创建卷期间指定卷的语言,也可以在创建后进行修改。默认情况下,卷的语言与根卷的语言相同。在某些情况下,不需要设置卷语言。以下是不同的情况:
- 如果卷仅用于 NFS (低于 V4 ):
不执行任何操作(但文件由 Unicode 客户端创建时确实重要) - 如果卷仅用于 CIFS 或 NFSv4 及更高版本:
卷语言与 CIFS 无关。对于 NFS ,将卷的语言设置为其客户端的语言。 - 如果此卷同时用于 CIFS 和 NFS (低于 V4 )
,请将此卷的语言设置为 NFS 使用的区域设置。 - 通过打开 create_ucode 和 convert_ucode 卷选项,在创建卷时立即激活这些选项。
vol options <volume_name> create_ucode on | off
vol options <volume_name> convert_ucode on | off - 降级传统客户端,例如 MSDOS ,它们不支持 unicode 。Do Require the volume language setting —此设置可提供这些客户端使用的 OEM 字符集。
对于旧版客户端,请使用 " en " 卷语言设置,该设置可提供正常的 NFS 字符集和涵盖大多数欧洲国家或地区的 cp850 OEM 字符集,包括德语,西班牙语和法语。否则,请使用 " en_US " ,它提供 NFS 字符集和 cp437 OEM 字符集。这两种方法之间的区别可在相关cp850.h
文件和cp437.h
标题文件中找到。
最佳实践:
- 最好所有卷都使用相同的语言。如果卷与控制台语言不同,则具有路径名称的命令可能无法运行。
- 设置语言后,请勿更改语言。
如果必须更改语言,请在卷中创建任何文件之前执行此操作,以便所有文件名都使用相同的语言。在卷中创建文件后更改语言可能会导致某些 NFS 编码无效。然后,文件名将无法读取且找不到,从而使这些文件无法访问。更改卷语言的最佳方法是,使用所需的语言集创建新卷,并使用外部软件将数据复制到新卷。这样可以确保客户端按预期创建编码, Data ONTAP 会以一种完全返回给客户端的方式写入该编码。 - 要从 Windows 和 UNIX 中查看相同的文件名,请仅使用这两个文件均合法且在 NFS 字符集中合法的字符。
例如,请勿将日语文件名放在法语卷上。 - 从技术上讲,更改卷语言后无需重新启动,因为磁盘和内存转换表都已更改为新语言。但是,如果
Error starting OEM char set
Error starting NFS char set
遇到类似或的错误消息,则需要重新启动,因为可能是由于内存不足而无法构建新的内存表。此外,如果不重新启动系统,内存中可能会出现陈旧数据的风险。
如果数据属于以下任一类别,则在写入数据后更改卷语言可能会产生一些影响:
- 如果卷仅包含 Windows OSSV 数据的副本,则不应引起关注。
- 如果满足以下所有条件,则除了在 SnapVault 或 qtree SnapMirror 关系失败时重新初始化这些关系之外,没有其他解决方法:
- 此卷包含非 unicode 源的副本 qtree ,即:
- 未通过通用 Internet 文件系统( Common Internet File System , CIFS )协议访问的存储系统 qtree ,并且卷选项
create_ucode
和convert_ucode
均已关闭 - 非 Windows OSSV 主数据
- 未通过通用 Internet 文件系统( Common Internet File System , CIFS )协议访问的存储系统 qtree ,并且卷选项
- 卷
create_ucode
已打开,而二级卷未打开。 - 主数据具有非 ASCII 文件名,并在同一目录(不是同一目录树,而是同一目录)中有多个硬链接
- 此卷包含非 unicode 源的副本 qtree ,即:
对于不属于上述任一类别的副本数据:
二级卷上的 NFS 访问可能会受到影响(名称可能看起来很奇,或者您只能看到像 8U10000 这样的 NFS 备用名称),直到主卷上发生目录操作且更新操作成功完成为止。
在这种情况下,要加快恢复速度,请重命名主系统上的每个非 ASCII 文件名。理想情况下,您可以将每个重命名为另一个目录,然后将其重命名为其原始位置。然后正确更新 SnapVault/SnapMirror 。
对于非副本数据:
- 如果卷
create_ucode
和convert_ucode
选项均关闭,并且 NFS 数据仅使用 NFS (而不是 CIFS )访问,则不会出现任何问题。 - 如果
create_ucode
convert_ucode
在卷上设置了或选项,或者访问了 NFS 数据,则可能存在与 NFS 备用名称相关的一些问题。 - 如果文件中的字符超过 0x7f ,而这些字符位于非 Unicode 目录中,则在切换后访问这些文件时会出现问题。如果您确定这些不存在,则一切都应该正常。
对于 Unicode 目录中的文件, Unicode 是确定性的,问题是这些名称是根据您指定的字符集进行转换的。因此,如果将客户端配置为接受 UTF8 名称,则一切都应该正常。
是否可以使用扩展字符集(例如 日语)而不更改存储系统上的语言?
卷的语言为 UTF-8 语言集(即 en_US.UTF-8 ),如果客户端写入的文件名长度小于 255 字节,则无需更改语言。如果文件名非常长,例如超过 85 个字符,并且每个字符转换为 3 字节的 UTF-8 ,则会导致文件名大于允许的大小,如果用户尝试从 NFS 访问文件,则会看到 NFS 备用名称。在上述情况下,请将语言更改为本地化后支持的语言(例如 JA_v1 )允许每个日语字符包含 2 个字节,因此上述 85 个字符的文件名仅为 170 字节,而不是 255 。在这种情况下,当您达到文件名 128 个字符时,管理员仍会遇到文件名限制问题。
其他信息
附加信息 _text