ONTAP ボリューム上の ONTAP SMB ファイル名変換の文字マッピングを構成する
NFSクライアントは、SMBクライアントと特定のWindowsアプリケーションでは無効な文字を含むファイル名を作成できます。ボリュームにおけるファイル名の変換のための文字マッピングを設定できます。これにより、そのままでは無効なNFS名を持つファイルにSMBクライアントからアクセスできます。
NFSクライアントによって作成されたファイルにSMBクライアントがアクセスすると、ONTAPはファイル名を確認します。ファイル名が有効なSMBファイル名でない場合(例えば、コロン「:」が含まれている場合)、ONTAPは各ファイルに保持されている8.3形式のファイル名を返します。ただし、重要な情報を長いファイル名にエンコードするアプリケーションでは、この方法では問題が発生します。
したがって、異なるオペレーティング システムを使用するクライアント間でファイルを共有する場合は、両方のオペレーティング システムで有効な文字をファイル名に使用するようにしてください。
これとは別に、SMBクライアントで有効でない文字を含むNFSクライアントが作成したファイル名がある場合は、無効なNFSの文字を、SMBと特定のWindowsアプリケーションの両方で有効なUnicode文字に変換するマッピングを定義できます。たとえば、この機能はCATIAR MCADおよびMathematicaアプリケーションをサポートしていますが、同じ要件を持つほかのアプリケーションでも使用できます。
文字マッピングはボリューム単位で設定できます。
ボリュームで文字マッピングを設定する場合は、次の点に留意する必要があります。
-
文字マッピングは、ジャンクション ポイントを越えて適用されることはありません。
文字マッピングは、各ジャンクション ボリュームに対して明示的に設定する必要があります。
-
無効な文字を表すUnicode文字が、通常はファイル名に使用されないようにする必要があります。これらの文字が使用されていた場合、不要なマッピングが発生します。
たとえば、コロン(:)をハイフン(-)にマッピングしようとしたが、ファイル名でハイフン(-)が正しく使用されていた場合、Windowsクライアントが “a-b” という名前のファイルにアクセスしようとすると、その要求はNFS名 “a:b” にマッピングされます(望ましい結果ではありません)。
-
文字マッピングを適用してもまだマッピングに無効なWindows文字が含まれている場合、ONTAPはWindows 8.3ファイル名にフォールバックします。
-
FPolicy通知、NAS監査ログ、セキュリティ トレース メッセージでは、マッピングされたファイル名が表示されます。
-
タイプがDPであるSnapMirror関係が作成されても、ソース ボリュームの文字マッピングはデスティネーションDPボリュームにレプリケーションされません。
-
大文字と小文字の区別:マッピングされたWindows名はNFS名に変わるため、名前の検索もNFSの基準に従います。これには、検索時に大文字と小文字が区別されることも含まれます。そのため、マッピングされた共有にアクセスするアプリケーションは、Windowsの大文字と小文字を区別しない動作に依存できません。ただし8.3形式の名前は(大文字と小文字が区別されませんが)使用可能です。
-
部分マッピングまたは無効なマッピング:名前をマッピングしてクライアントに戻ったあと、「dir」コマンドでディレクトリのファイル一覧を表示すると、生成されたUnicode名がWindowsで有効かどうかチェックされます。この名前に無効な文字が含まれているか、Windowsで無効なファイル名(「.」または空白で終了するなど)の場合は、無効なファイル名の代わりに8.3形式の名前が返されます。
-
文字マッピングを構成する:+
vserver cifs character-mapping create -vserver vserver_name -volume volume_name -mapping mapping_text, …
マッピングは、ソースとターゲットの文字ペアを「:」で区切ったリストで構成されます。文字は16進数で入力されたUnicode文字です。例:3C:E03C。+
コロンで区切られた各 `mapping_text`ペアの最初の値は、変換するNFS文字の16進値であり、2番目の値はSMBが使用するUnicode値です。マッピングペアは一意である必要があります(1対1のマッピングが存在する必要があります)。
-
ソースマッピング
次の表に、ソース マッピングで許可されているUnicode文字セットを示します。
+
| Unicode文字 | 印刷文字 | 概要 |
|---|---|---|
0x01-0x19 |
該当なし |
表示されない制御文字 |
0x5C |
バックスラッシュ |
|
0x3A |
: |
コロン |
0x2A |
* |
アスタリスク |
0x3F |
? |
疑問符 |
0x22 |
" |
引用符 |
0x3C |
< |
小なり |
0x3E |
> |
より大きい |
0x7C |
||
縦線 |
0xB1 |
± |
-
ターゲットマッピング
対象文字は、Unicodeの「
Private Use Area」内のU+E0000…U+F8FFの範囲で指定できます。
次のコマンドは、ストレージ仮想マシン(SVM)vs1上の「data」という名前のボリュームの文字マッピングを作成します:
cluster1::> vserver cifs character-mapping create -volume data -mapping 3c:e17c,3e:f17d,2a:f745 cluster1::> vserver cifs character-mapping show Vserver Volume Name Character Mapping -------------- ----------- ------------------------------------------ vs1 data 3c:e17c, 3e:f17d, 2a:f745