FSLogixプロファイルのVHDファイルハンドルの問題をトラブルシューティングする
デフォルトでは、FSLogixプロファイルは一度に1台のマシン/ユーザーセッションからのみアクセス可能です。ユーザーがVHDxファイルにファイルロック/ハンドルがかかっている状態でマシンにサインインしようとすると、デフォルトでFSLogixはユーザーにセッションを提供せず、黒い画面を表示します。エラーは次のようなものかもしれません:
ERROR:00000020 / プロセスは別のプロセスによってファイルが使用されているため、ファイルにアクセスできません。
最も一般的に、ファイルハンドルエラーは次のシナリオのいずれかによって引き起こされます。
シナリオ #1: ユーザーが同じストレージアカウントを使用する複数のホストプールに割り当てられている
ユーザーを複数のホストプールに割り当てることはサポートされていますが、同じFSLogixプロファイルVHDxに接続する複数のセッションを持つ単一のユーザーはサポートされていません。たとえば、ホストプールAとホストプールBの両方がVHDLocationsに同じファイルパスを設定している場合です。この場合、ユーザー「ボブ」は既にホストプールB内のセッションにサインインしており、そのセッションは完全にサインアウトされていない切断状態か、またはまだ使用中です。ボブは次にホストプールAの新しいセッションに接続しようとします。ボブはホストプールBのセッションがすでに彼のプロファイルを使用しているため、正常に接続できません。
こうならないように、ユーザーは単一のホストプールに割り当てるか、各ホストプールごとに個別のストレージアカウントを作成してください。後者を使用する場合、ユーザーのプロファイルは別々であり、したがって同期されないことに注意することが重要です。つまり、ユーザーのプロファイルは各ホストプールに限定されます。
シナリオ #2: スタックまたはゴーストセッションがプロファイルをロックしている
時々、セッションホスト上のAVDエージェントが応答しなくなることがあります。これにより、AVD管理サービスはセッションホスト上のセッションの存在を認識できなくなります。ユーザー「ボブ」がAVDにサインインしようとすると、AVDサービスはこれが新しいセッションであると仮定し、ユーザーのプロファイルを保持している古いセッションがあることに気づかずにセッションホストAに接続するように指示します。
AVDサービスは応答しないセッションを認識していないため、Nerdio ManagerまたはAzureポータルでユーザーのセッションを検索しても既存のセッションは表示されません。そのため、問題のあるマシンに接続してユーザーのセッションを手動でサインアウトするか、仮想マシン全体を再起動する必要があります。
応答しなくなったホストが固まらないように、自動スケールの「自動修復」機能を使用してください。詳細については、動的ホストプールの自動スケールを有効にします。を参照してください。
シナリオ #3: ユーザーが従来のリモートデスクトップ接続(AVDではなく)を使用してセッションホストに直接サインインしました(FSLogixが有効)。
この状況は、リモートデスクトップを利用して「ジャンプボックス」を経由するか、直接セッションホストに接続する管理者に見られます。
FSLogix は、AVD以外の VDI ソリューション(Citrix、VMware など)でも使用されます。そのため、FSLogixはすべてのRDPベースの接続を同じように扱います。したがって、RDPでは FSLogix プロファイルがアタッチされます。ただし、従来のリモートデスクトップ接続はAVD管理ブローカーを使用していないため、AVDサービスはこのセッションを認識していません。そのため、ボブがサインインを試みると、アクティブなセッションが存在しないと判断し、新しいセッションホストに接続するよう案内します。
ヒント: 管理やトラブルシューティングのためにRDP接続を利用する必要があり、一貫したプロファイルが求められない場合は、管理者ユーザーを「FSLogix プロファイル除外リスト」ローカルグループに追加してください。以下は、Scripted Actions - Windows スクリプトと共にユーザーをホストに追加したり、イメージ VM 上で実行したりするために使用できるコマンドです。
Add-LocalGroupMember -Group "FSLogixプロファイル除外リスト" -Member "<Domain Group or User UPN>"
このスクリプトを実行する前に、<Domain Group or User UPN>をグループまたはユーザー名に置き換えることを忘れないでください。
ファイルハンドルを持っているマシンのIPを特定する。
一般的に、ファイルハンドルはファイルロックのソースに関する情報を保持します。以下の方法を使用すれば、マシンのIPを見つけることができます。そこから、VM情報やIPアドレステーブルを参照して、該当するコンピュータを特定できます。
注意: これらのツールでファイルハンドルを閉じる試みができても、ほとんどの場合、該当セッション内のFSLogixサービスが接続を再確立し、ファイルが再びロックされる点にご留意ください。
Azure Files ストレージアカウントの IP を特定する
次の方法を使用すると、Azure Files ストレージアカウントのファイルハンドルを表示できます。
方法 #1: Nerdio Managerを使用する(おすすめ)
[<b>ストレージ</b>] > [<b>Azure Files</b>] に移動します。
FSLogix に使用されるストレージアカウントを特定します。
ドロップダウンメニューから ファイルハンドル を選択してください。
-
プロファイルパスで使用されるユーザー名を入力してください。
この検索では VHD プロファイルのファイルパスを対象としているため、たとえば「john.smith@contoso.com」といった完全な UPN を使用しても結果が得られません。命名規則に応じて、例えば "jsmith" のように SAM アカウント名のみを使用してみてください。
ファイルを閉じる を選択してください。
方法 #2: Azure PowerShell を直接使用する
Nerdio Managerが利用できない場合、Azure PowerShell モジュールを使用してファイルハンドルを見つけることができます。Get-AzStorageFileHandle コマンドレット(Az モジュールが必要)は、必要な情報を提供できます。
このコマンドを使用する便利なスクリプトを提供しました。
スクリプトを こちら からダウンロードしてください。
ファイルの圧縮を解除し、ファイル拡張子を .txt から .ps1 に変更してください。
スクリプトは、ストレージアカウントに接続できるシステム(例: セッションホスト)で実行してください。また、Az PowerShell モジュールがインストールされていることを確認してください。
重要:
Nerdio はこのスクリプトの誤用に対して責任を負いません。ご自身の判断で実行してください。
FSLogix ファイル共有を含むストレージアカウントでプライベートエンドポイントを使用している場合、そのストレージアカウントへのアクセスを Nerdio Managerアプリに許可する必要があります。これにより、アプリがファイルハンドルを検索できるようになります。詳細については、Azure Storage のファイアウォールと仮想ネットワークの構成 | Microsoft Learn を参照してください。
コメント (0件のコメント)