Azure File Sync のリコールは、 クラウド階層化 に関連する重要な機能です。クラウド階層化を有効にすると、あまりアクセスされないファイル(「コールド」ファイルと呼ばれる)は、ローカルストレージを節約するためにクラウドに保存されます。ただし、ファイルのメタデータと構造(名前空間)はローカルサーバーに残ります。
ユーザーまたはアプリケーションが階層化されたファイルにアクセスしようとすると、 リコールプロセス がトリガーされます。このプロセスは、クラウド内の Azure ファイル共有からファイルのコンテンツをシームレスに取得し、ローカルで利用できるようにします。リコールは自動的に行われるため、ユーザーへの影響は最小限に抑えられます。
問題の説明
最近の Azure File Sync 環境では、次のエラーによりリコールの失敗が観測されました。
RecallToDiskType: No
このエラーは、 ファイルシステムキャッシュの使用量 が最大しきい値に達したことを示していました。その結果、階層化されたファイルは、想定どおりに完全なデータコンテンツをダウンロードできませんでした。
問題のトラブルシューティング
リコールの失敗に対処するため、次の手順が実施されました。
1. 原因を理解する
リコールの失敗は メモリ制限が原因であることが判明しました。デフォルトでは、次のようになっています。
- 割り当てられたメモリの 10% がリコール用に予約されています。
- リコールが この予約済みメモリの 60%を超えると、ディスクに書き込まれることなくメモリから処理されます。
メモリのしきい値を超えると、この動作が問題を引き起こしました。
2. データリコールプロセスを確認する
チームは、次の方法でデータがどのようにリコールされているかを確認しました。
- リコール用に要求された データサイズ を確認すること。
- リコールされたデータが、サーバーエンドポイントのディスクに書き込まれたデータと一致することを確認すること。
- リコールが成功したか失敗したかを確認するために、 File Sync エージェントのリコール結果 (イベント ID 1110)を確認すること。
3. メモリ設定を調整する
問題を解決するため、レジストリ設定を変更してリコール用のメモリ割り当てを増やしました。次のコマンドが実行されました。
reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v BottomlessFilterSharedMemSizePercentage /t REG_DWORD /d 30 /f
reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v BottomlessFilterCacheUsagePercentage /t REG_DWORD /d 70 /f
fltmc unload StorageSync
fltmc load StorageSync
net stop filesyncsvc
net start filesyncsvc
これらの変更により、 サーバーの総メモリの 30% をリコールに使用できるようになり、リコールされたデータをディスクに永続化する能力が向上しました。
解決策
上記の手順を実施することで、ファイルシステムキャッシュの制限によって引き起こされたリコールの失敗は無事に解決されました。これにより、Azure File Sync 環境でのデータリコールプロセスがよりスムーズで信頼性の高いものになりました。
追加のヒント
Azure File Sync のクラウド階層化をより深く理解し、管理するのに役立つ追加リソースをいくつか紹介します。
まとめ
Azure File Sync のリコールは、ローカルストレージの使用量を最適化しながら、クラウドに階層化されたファイルへのシームレスなアクセスを維持するために不可欠です。メモリ制限などの問題を理解し、トラブルシューティングすることで、信頼性が高く効率的なリコールプロセスを確保できます。上記の手順に従うことで、リコールの失敗を解決し、Azure File Sync 環境のパフォーマンスを向上させることができます。