Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ボリュームでの SMB ファイル名の変換のための文字マッピングを設定します

共同作成者

NFS クライアントは、 SMB クライアントと特定の Windows アプリケーションでは無効な文字を含むファイル名を作成できます。ボリュームにおけるファイル名の変換のための文字マッピングを設定できます。これにより、そのままでは無効な NFS 名を持つファイルに SMB クライアントからアクセスできます。

このタスクについて

SMB クライアントが NFS クライアントによって作成されたファイルにアクセスすると、 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 のセマンティクスに従います。NFS ルックアップでは大文字と小文字が区別されるという事実も含まれます。つまり、マッピングされた共有にアクセスするアプリケーションは、 Windows の大文字と小文字を区別しない動作に依存しません。ただし、 8.3 形式の名前は大文字と小文字が区別されません。

  • 部分マッピングまたは無効なマッピング:ディレクトリ列挙(「 dir 」)を実行しているクライアントに返すように名前をマッピングしたあと、結果の Unicode 名について Windows の有効性がチェックされます。その名前にまだ無効な文字が含まれている場合、または Windows で無効な文字が含まれている場合(「 . 」または空白で終わる場合など)は、無効な名前の代わりに 8.3 形式の名前が返されます。

ステップ
  1. 文字マッピング「 + 」を設定します

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

±

  • ターゲットマッピング

    ターゲット文字には、 U+E0000…​U+F8FF の範囲の Unicode の「私用領域」を指定できます。

次のコマンドは、 Storage Virtual Machine ( 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