はじめに
こんにちは! 好きなYoutuberのモトブログをたまたま視聴してからバイクに乗りたくてたまらない、 SA課の阿部です。
ブログタイトルの通りではありますが、今回はAmazon FSx for NetApp ONTAP(以下FSx ONTAPに省略)構築時に、私が 実際に痛い目を見たボリュームの言語設定について記事にしてみたいと思います。
本題
FSx ONTAPではボリュームの言語設定というものが存在します。
ボリューム等FSx ONTAPの構成については以下のブログも参照してみてください。
FSx ONTAPを作成すると、デフォルトで言語が「C.UTF-8」のボリュームが作成されます。 FSx ONTAPにユーザーがデータを書き込む際、この言語設定によっては「UTF-8で4バイトになる文字」を含む ファイルやフォルダを作成しようとするとエラーが表示され書き込むことができません。

では、どうすればいいのかというと、あらかじめボリュームの言語「utf8mb4」にしておくと、「UTF-8で4バイトになる文字」を扱うことができるようになります。
ただし、上述した通りデフォルトでは「C.UTF-8」のボリュームが作成されるため、利用者側で意図的にボリュームの言語を変更する必要があります。
そして、このボリューム設定はAWSのマネジメントコンソール上やAWS CLIからは設定できません。
設定するにはONTAP CLIを利用する必要があります。
また、設定方法にもSVM単位でのボリュームの言語設定と、特定のボリュームを指定した設定方法があります。
私が実際に経験した失敗
FSx ONTAPを最近はじめて構築するようになった私は、このボリューム言語設定の存在を知らないまま、淡々と構築作業を進めていました。 そうすると、デフォルトで言語が「C.UTF-8」のボリュームが作成されます。
そして、普段から日本語ひいては漢字や絵文字等を利用している我々日本人は、ファイルサーバー上のファイル名やフォルダ名に、 特に意識せず「UTF-8で4バイトになる文字」をつけていたりします。
絵文字 😄(U+1F604) 🏀(U+1F3C0) 🌍(U+1F30D) 🐉(U+1F409)
特殊記号 𝄞(U+1D11E、音楽記号「トレブル・クレフ」) 𝔘(U+1D518、数学用黒体文字 U)
漢字や文字(補助漢字) 𠀋(U+2000B) 𠮷(U+20BB7、「吉」の異体字)
お客様の要件確認が不十分だった私は、これらの文字が使われる可能性があることを考慮せずに、デフォルト設定のままボリュームを作成してしまいました。
結果、ユーザーがファイルを保存しようとするとエラーが発生し、業務に支障をきたす事態に…。
急いでONTAP CLIから設定変更を試みましたが、既存ボリュームの言語設定変更は推奨されていないため、やむをえずボリュームを作り直すことになりました。
FSx ONTAP構築時は絶対にボリュームの言語設定を変更しておこう
もし、UTF-8で4バイトになる文字を利用する可能性がある場合は、ファイルシステム作成後、 ONTAP CLIでファイルシステム全体のボリューム言語設定を変えておくことを強くおすすめします。
方法としては、対象のファイルシステムにSSH接続し、以下のコマンドを実行することで、以降に作成されるボリュームが、指定した言語設定で作成されます。
あくまでコマンド実行後のボリュームが対象です。コマンド実行時に既に作成されているボリュームの言語設定は変更されません。
言語設定を変更したいSVMにて以下コマンドを実行する
::> vserver modify -vserver <svm名> -language utf8mb4
言語設定変更後にボリュームを作成する
上記コマンド実行後にマネジメントコンソールもしくはONTAP CLIにてボリュームを作成すると、 指定した言語のボリュームが作成されます。
# ボリュームの言語設定が utf8mb4 になっていることを確認 ::> volume show -vserver <svm名> -volume <volume名> -fields language vserver volume language ------- ------ -------- svm名 volume名 utf8mb4
おわりに
今回は、FSx for NetApp ONTAP構築時のボリューム言語設定変更の必要性ついてまとめてみました。
たった一つの設定ですが、これが原因で大きなトラブルに繋がる可能性があることを、私の失敗談を通じて知っていただければ幸いです。
この記事がどなたかのお役に立てれば嬉しいです。それでは!
阿部伊織(執筆記事の一覧)
インフラエンジニアからクラウドエンジニアへ転職。