Azure File Sync虎の巻 - 其ノ伍

はじめに

データを異なるサイトに同期したい場合に有効かつ便利な「Azure File Sync」の設計、構築、運用、トラブルシュートまでお役立ちな情報を全5回に渡りご紹介して参ります。

第5回目の本記事では、トラブルシュート方法を中心にお届けします。

過去の記事は下記リンクよりご覧いただけます。Azure File Syncとは?サーバーエンドポイントって何?クラウドエンドポイントとは?な方はご一読いただいてから本記事をご覧いただくことをお勧めいたします。

 

第1回目:

blog.jbs.co.jp


第2回目:

blog.jbs.co.jp


第3回目:

blog.jbs.co.jp

 

第4回目:

blog.jbs.co.jp

データ同期でやってはいけないこと

サーバーエンドポイントのサービスを停止する

サーバーエンドポイント上のサービス(FileSyncSvc)を任意のタイミングで停止、再起動する事は非推奨です。

もしデータ同期を一時停止する場合は以下をレジストリに追加→ストレージ同期エージェントサービス(FileSyncSvc)を再起動します

Key: [HKLM(HKEY_LOCAL_MACHINE)]\SYSTEM\CurrentControlSet\Services\FileSyncSvc\Settings

Type: REG_DWORD

Value name: StopSync

Value: 1

サーバーエンドポイントを削除する

完全にデータ同期していない状態でサーバーエンドポイントを削除するとデータを失う可能性があります。

もしデータ同期自体を停止・廃棄する場合は然るべき操作を行ってください。方法は公開されているものの、事前にSR起票で裏どりするなど慎重に行うことを強くお勧めします。

Azure File Sync サーバー エンドポイントのプロビジョニング解除 | Microsoft Learn

Azure File Sycのエラー確認方法

Azure File Syncのエラー確認方法は2通りあります。

  • Azure Portalのストレージデータ同期サービス>ストレージデータ同期グループのGUIを確認する
  • サーバーエンドポイントのイベントログ、[Microsoft]\[FileSync]\[Agent] の下のテレメトリ 、診断、操作を確認する

Storage Sync Agentは英語のみのためイベントログも英語です。

エラーコードと対処方法はこちらをご確認下さい:

Azure File Sync での同期の正常性とエラーに関するトラブルシューティング | Microsoft Learn

エラーコードの内容を対処しても解決しない場合は、サーバーエンドポイント上でログを収集しサポートへ問い合わせます。

 cd "c:\Program Files\Azure\StorageSyncAgent" 
 Import-Module .\afsdiag.ps1 
 Debug-AFS -OutputDirectory C:\output -KernelModeTraceLevel Verbose -UserModeTraceLevel Verbose

データ同期の監視

 「Files not syncing」メトリックが0より大きい場合、データ同期エラーがある状態です。

一度アラートがアクティブになると、エラー数が0にならない限り復旧せず、エラー数が0より大きい状態でアラート通知の継続設定が可能です。最長1時間間隔でエラーの確認およびアクションの設定をすることができます。

クラウドエンドポイントの容量監視

Azure Filesのファイル共有の空き容量を監視したい時、パフォーマンスが Standard の場合、アラートの対象をファイル共有ごとに選択することはできません。特定のファイル共有のみにアラートを設定する場合は、パフォーマンスを Premium にするか、1 つのストレージ アカウントに 1 つのファイル共有のみにする必要があります。

 [監視] - [メトリック]から見れるメトリック エクスプローラーでファイル共有の使用量を確認することができるものの、ストレージ アカウント内のすべてのファイル共有が合算値で出ます。また、[監視] - [警告] +「アラートルール」 で容量しきい値設定でアラート発報が可能です。

公開情報はこちらです:Azure Files の監視 | Microsoft Learn

データ同期エラーの事例

HRESULT:0x8007007b、-2147024773(10進数)のデータ同期エラーが出続け、依存関係のある後続もエラーとなりデータ同期が進まない状態に陥りました。

原因は、データ同期対象のファイル・フォルダに文字化けやNBSPが含まれておりました。NBSPは目視、テキストログでは確認できず、Wordに貼り付けることで特殊文字と判明しました。

サポートされていない文字列はこちらをご参照下さい、WindowsOSとしてサポートされないものが該当します:
Azure File Sync での同期の正常性とエラーに関するトラブルシューティング | Microsoft Learn

本件は、該当ファイル・フォルダの名称をユーザーに変更いただくことで解消いたしました。

お役立ちツールの紹介

トラブルシュートや導入前のアセスメントで有用なスクリプト・コマンドをご紹介します。

ScanUnSupportedChars.ps1

GitHubに公開されています:

azure-files-samples/ScanUnsupportedChars.ps1 at master · Azure-Samples/azure-files-samples · GitHub

サポートされない文字列を確認し、標準出力で表示したり、CSV出力を行ったり、置換する機能があります。ただし、置換機能は指定した文字列に一律置換です

FileSyncErrorsReport.ps1

Storage Sync Agentのインストールフォルダ内にあり、データ同期エラーを洗い出す機能があります。動作の実態として、Storage Sync Agentのイベントログエラーを集約します。エラー詳細で対象ファイルのパスが出るものの、折り返しが非常に整形し辛いデメリットがあります。

Invoke-AzStorageSyncCompatibilityCheck

PowerShellのAzモジュールに含まれます
Azure File Syncがシステム要件・データのいずれか、または両方について適合するかを確認するPowerShellです。サポートされていない文字列も洗い出します。  

$Invoke-AzStorageSyncCompatibilityCheck -Path [同期対象データのあるパスのTOPフォルダ]

おいくらですか?月額課金

トラブルシュートの話題から逸れてしまいますが、月額課金について触れていなかったため最後にお伝えさせていただきます。

サーバーエンドポイント1台までは無料ですが、2台目から1台あたり\988/月です。
クラウドエンドポイントはストレージアカウントの月額課金分です。   

例)1TBのデータを2台のサーバーエンドポイントでデータ同期するケース(2023/3/10時点の金額)
 ※Express Route、VPN Gateway、プライベートエンドポイント、インターネットエグレス等のデータ通信量は含んでおりません。

ストレージアカウント 東日本リージョン / File Storage / ホットパフォーマンスレベル / Standard v2 / LRS冗長性 / 1TBの保存データ / 0GBのスナップショット/1TBの保存メタデータ(従量課金) ¥8183.98/月
トランザクション
 書き込み/一覧表示
 10,000操作あたり\8.87
 読み取り/削除以外の操作
 10,000操作 ¥0.71
同期サーバー ストレージ同期サービスにつき 1 台の同期サーバーは無料 \988/月
サーバーエンドポイントが2台目以降1台あたり
合計   ¥9191.91/月

   
サーバーエンドポイントがAzure VMの場合は初期同期と実運用でプランを変更し課金額が期間で異なりますし、通信経路がパブリックかプライベートかで通信量や関連リソースが増えますので、実際は上記限りでは無いためご認識おきください。

おわりに

全5回にわたりAzure File Syncの設計・構築・トラブルシュートに至るまで、つまづきポイント回避のための情報をお届けして参りました。

お手軽にデプロイが可能かつシンプルな処理はあるものの、導入前の現調や検討事項が多々あるため、慎重に提案、導入を進めていただければと思います。

執筆担当者プロフィール
熊田 沙代

熊田 沙代(日本ビジネスシステムズ株式会社)

かれこれサーバーエンジニア歴10数年。WindowsServer/Linux/OSS/vSphere/Hyper-Vと器用貧乏に経験し、現在はAzure IaaS/PaaSをメインとしたアーキテクトを担当してます。TEAM NACSのファンです。

担当記事一覧