次の方法で共有


Azure VM 上の SQL Server のデプロイに失敗するか、SQL Server インスタンスがオンラインに失敗する

この記事は、次のシナリオを解決するのに役立ちます。

  • Azure 仮想マシン (VM) の Azure Marketplace イメージ上の SQL Server のデプロイに失敗する。
  • Azure VM が再起動または割り当て解除された後、SQL Server インスタンスがオンラインに失敗します。

適用対象:Azure VM 上の SQL Server

この問題の調査は積極的に進行中です。 この記事の情報は、新しい詳細が利用可能になると変更される可能性があります。

症状

この問題が発生した場合は、次の情報が表示される可能性があります。

  • Azure Marketplace イメージを使用しているときに、Azure VM 上の SQL Server のデプロイが失敗する。
  • SQL Server の手動でインストールされたインスタンスに対して Azure VM が再起動された後、SQL Server がオンラインに失敗しました。

Azure VM 上の SQL Server のデプロイが失敗する

Azure Marketplace から Azure VM イメージに SQL Server をデプロイしようとすると、デプロイが失敗し、状態が Conflict され、次のエラーが発生します。

システムドライブの状態は「使用できない」と返されました。

たとえば、Azure portal からイメージをデプロイする場合、 アクティビティ ログのデプロイに次のエラーが表示されることがあります。

Azure portal のデプロイ エラーのスクリーンショット。

VM の再起動後に SQL Server がオンラインに失敗する

この一連のイベントに従うと、この問題が発生する可能性があります。

  1. 影響を受けた VM の一覧から Azure VM をデプロイします。
  2. SQL Server のインスタンスを Azure VM に手動でインストールします。
  3. ローカル SSD エフェメラル ストレージ (通常は tempdb ドライブ) を使用するように SQL Server D: データベースを構成します。
  4. VM が再起動されるか、割り当てが解除されます。
  5. SQL Server インスタンスがオンラインに失敗する。

この問題が発生した場合は、SQL Server エラー ログに次のエラーが表示されることがあります。

CREATE FILE encountered operating system error 3(The system cannot find the path specified.) 
while attempting to open or create the physical file 'D:\SQLTemp\tempdb.mdf'.
Error: 17204, Severity: 16, State: 1. FCB::Open failed: Could not open 
file D:\SQLTemp\tempdb.mdf for file number 1. OS error: 
3(The system cannot find the path specified.).
Error: 5120, Severity: 16, State: 101.
Unable to open the physical file "D:\SQLTemp\tempdb.mdf". Operating system error 3:
"3(The system cannot find the path specified.)".
Error: 1802, Severity: 16, State: 4 CREATE DATABASE failed. 
Some file names listed could not be created. Check related errors.
Could not create tempdb. You may not have enough disk space available.
Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. 
Check for additional errors in the event log that may indicate why the 
tempdb files could not be initialized.

原因

最新の Azure VM サイズの中には、非揮発性メモリ Express (NVMe) インターフェイスで構成されたエフェメラル ストレージ用の RAW ローカル SSD ボリュームが存在するものもあります。 この構成では、SQL Server が tempdb データベースをエフェメラル ストレージに配置しようとして、ローカル SSD ボリュームが使用できないために失敗するため、エラーが発生します。 さらに、マシンの割り当てが解除された後、エフェメラル ストレージは RAW と表示されます。

RAW ローカル SSD ボリュームによって SQL VM のデプロイが失敗し、VM の再起動後に手動でインストールされた SQL Server インスタンスがオンラインにならないようにします。 どちらの場合も、SQL Server はエフェメラル ストレージ上の tempdb データベースを初期化しようとしていますが、これは使用できません。 Azure VM のデプロイ中に SQL Server がインストールされ、エフェメラル ストレージが使用できないため、デプロイは失敗します。 同様に、SQL Server の手動でインストールされたインスタンスは、VM の再起動後にオンラインに失敗します。これは、SQL Server が tempdb データベースを作成しようとしたときにエフェメラル ストレージを使用できないためです。

解決策

この問題は、選択した Azure VM サイズが原因で発生します。 この問題を解決するには、次のいずれかの方法を使用します。

  • 可能であれば、 VM サイズのベスト プラクティスに記載されている VM SKU など、別の VM SKU を使用
  • 影響を受ける VM の一覧にある特定の VM 使用する場合は、名前に小文字の d が含まれず、SQL Server データ ファイルと同じストレージに tempdb を配置するマシンを使用します。 たとえば、FXmsv2ではなく、FXmdsv2 VM サイズを使用します。 後者は、名前に d で示されているように、初期化されていないエフェメラル ストレージを持っています。
  • RAW ローカル SSD なしで別の VM SKU を使用できない場合は、Windows Server 専用イメージを使用して VM をデプロイし、 一時 NVMe ドライブをフォーマットして初期化してから、SQL Server を手動でインストールします。 VM が再起動または割り当て解除されるたびに SQL Server を起動する前に、ディスクを再初期化する必要があります。

SQL Server をインストールする前に、 4 KB を超えるセクター サイズ を使用して VM が構成されていないことを確認します。

影響を受けた VM

この問題は、次の VM サイズなど、初期化されていない一時ドライブを使用してデプロイされた VM で発生します。

Intel Gen 10.2 AMD Gen 9.1
Dldsv6 Daldsv6
Ddsv6 Dadsv6
Edsv6 Eadsv6
Lsv3 - すべての Azure VM
Fxmdsv2