IN THIS ARTICLE
Provides an overview of translating illegal characters over SMB in Qumulo Core
- Cluster running Qumulo Core 2.12.0 and above
NOTE: This feature is intended to address illegal characters in multi-protocol environments. SMB-only users will see no change with this functionality since files within that environment will not contain any illegal characters.
With the release of Qumulo Core 2.12.0, SMB will now translate illegal characters in file names and paths on all responses to protocol requests. For clients using multiple protocols, it's a common problem that clients over NFS will create file names with characters that are illegal in Windows file names, and thus illegal in the SMB2 spec. Prior to this release, renaming the files over another protocol (NFS, FTP, or API) was the only solution to allow access by SMB clients.
Now, when SMB clients attempt to open, edit, delete, or rename any file that has a name with illegal characters, SMB will translate them back to their original file name so that any file created on a different protocol with the following illegal characters can successfully be accessed and managed:
- “ \ / : | < > * ?
- ASCII control codes 0x00 - 0x1F
All SMB operations which respond with a filename or path will look at each filename or path character by character. When one of these characters is encountered, 0XF101 will be added to the unicode code point to effectively translate the character. When that translated character comes back over the wire in an SMB CREATE operation (or other operations which use filenames), we will change that character back to its original value so that the file in question can be found on the filesystem.
For example, files with illegal characters will display as such in Windows Explorer:
The · character in the file name indicates that there is an illegal character that is not being displayed but rest assured, you will be able to perform all operations that our SMB’s protocol implementation supports on this file.
On a Mac or Linux system, the file names will include an unknown character glyph like the following:
Same as Windows, you will be able to perform any operation on the files.
- When you are doing a robocopy or moving files between the Qumulo Core file system and other file storage, file names containing illegal characters will not be translated when they land on the alternate storage. On the other hand, if we didn’t have the ability to translate these illegal characters, you wouldn’t be able to robocopy the files because you wouldn’t be able to open the files to read their contents.
- If applications create new files with the illegal characters, they will be translated on the filesystem which may be confusing when attempting to look up files via the API, FTP, or NFS. You will need to instead look for the translated file name. If you are concerned about your cross-protocol users getting confused, it is recommended your applications don’t create new files with illegal characters.
- Reparse points that are relative to the filesystem will go through translation. Reparse points that are disk-absolute or UNC-absolute (i.e. \??\C:\path\to\file or \??\UNC\\server\share\path\file) will not since those reparse points could refer to a non-Qumulo filesystem.
You should now understand translating illegal characters over SMB in Qumulo Core
Like what you see? Share this article with your network!