跳到主要内容

ONTAP 如何处理多字节文件、目录和 Qtree 名称

从 ONTAP 9.5 开始,由于支持 UTF-8 编码的 4 字节名称,所以可以在基本多文种平面(BMP)之外创建和显示包含 Unicode 补充字符的文件、目录和树名称。在早期版本中,这些补充字符在多协议环境中无法正确显示。

为了支持 UTF-8 编码的 4 字节名称,vservervolume 命令系列新增了对 utf8mb4 语言代码的支持。

  • 必须按照下面的一种方法创建新卷:
    • 显式设置卷的 -language 选项:volume create -language utf8mb4 {…}
    • 从已使用卷 -language 选项创建或针对此选项修改的 SVM 继承该选项:vserver [create|modify] -language utf8mb4 {…} volume create {…}
  • 不能修改现有卷来获得 utf8mb4 支持;必须新建支持 utf8mb4 的卷,然后使用基于客户端的拷贝工具迁移数据。

    可更新 SVM 以获得 utf8mb4 支持,但是现有卷将保留其原始语言代码。

    目前不支持包含 4 字节 UTF-8 字符的 LUN 名称。
  • Windows 文件系统应用程序中通常使用 16 位 Unicode 变换格式(UTF-16)来表示 Unicode 字符数据,而 NFS 文件系统中通常使用 8 位 Unicode 变换格式(UTF-8)来表示 Unicode 字符数据。

    在 ONTAP 9.5 之前的版本中,由 Windows 客户端创建的包含 UTF-16 补充字符的名称会在其他 Windows 客户端中正确显示,但无法正确转换为适用于 NFS 客户端的 UTF-8。同样,由 NFS 客户端创建的包含 UTF-8 补充字符的名称也无法正确转换为适用于 Windows 客户端的 UTF-16。

  • 在运行 ONTAP 9.4 的系统上创建包含有效或无效补充字符的文件名时,ONTAP 拒绝文件名,并返回无效文件名错误。

    为避免此问题,请在文件名中仅使用 BMP 字符并避免使用补充字符,或升级到 ONTAP 9.5 或更高版本。

ONTAP 的所有版本中均允许 Qtree 名称中使用 Unicode 字符。

  • 可使用 volume qtree 命令系列或 存储管理软件 设置或修改 Qtree 名称。

  • Qtree 名称中可包含 Unicode 格式的多字节字符,如日语字符和中文字符。

  • 在低于 ONTAP 9.5 的版本中,仅支持 BMP 字符(即可以表示为 3 个字节的字符)。

    在低于 ONTAP 9.5 的版本中,Qtree 父卷的接合路径可包含带 Unicode 字符的 Qtree 名称和目录名称。当父卷有 UTF-8 语言设置时,使用 volume show 命令将正确显示这些名称。但是,如果父卷语言并不是 UTF-8 语言设置中的语言,则会使用数字 NFS 备用名称显示接合路径的某些部分。
  • 在 9.5 及更高版本中,如果 Qtree 位于支持 utf8mb4 的卷中,则 Qtree 名称中支持 4 字节字符。