ONTAP 如何处理多字节文件、目录和 Qtree 名称
从 ONTAP 9.5 开始,由于支持 UTF-8 编码的 4 字节名称,所以可以在基本多文种平面(BMP)之外创建和显示包含 Unicode 补充字符的文件、目录和树名称。在早期版本中,这些补充字符在多协议环境中无法正确显示。
为了支持 UTF-8 编码的 4 字节名称,vserver 和 volume 命令系列新增了对 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 字节字符。