Windows Server Azure 仮想マシンでセクター サイズ エラーが発生して SQL Server のインストールが失敗する

適用対象: SQL Server、Azure VM 上の SQL Server - Windows

まとめ

この記事は、Windowsを実行するMicrosoft Azure仮想マシン (VM) にSQL Server インスタンスを手動でインストールするときに発生する問題を解決するのに役立ちます。 ネイティブ セクター サイズが 4 KB を超える NVMe ディスクを使用するAzure VM にSQL Serverをインストールすると、master.mdf などのSQL Serverデータ ファイルを 8 KB のセクター サイズのボリュームでホストできないため、セットアップは失敗します。 この記事では、新しいAzure VM シリーズでセクター サイズの不一致が発生する理由と、ディスクへのSQL Serverのインストールが成功するように 4 KB のセクター サイズを強制する方法について説明します。

症状

Windowsを実行するAzure VM にSQL Server インスタンスをインストールすると、インストールが失敗し、エンジンの起動時にSQL Serverエラー ログに次のメッセージが表示されます。

ファイル '...\master.mdf' は、もともとセクター サイズ 4096 でフォーマットされており、セクター サイズが 8192 のボリューム上にあるため、使用できません。 元のセクターサイズ以下のセクターサイズを持つボリュームにファイルを移動してください。

SQL Server セットアップ フォルダーの Summary.txt ログ ファイルには、次のようなエントリも表示されます。

Detailed results:
  Feature:                       Database Engine Services
  Status:                        Failed
  Reason for failure:            An error occurred during the setup process of the feature.
  Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
  Component name:                SQL Server Database Engine Services Instance Features
  Component error code:          0x851A0019
  Error description:             Could not find the Database Engine startup handle.

この問題はオンプレミスのインストールで発生する可能性がありますが、Azure VM にSQL Serverをインストールすると表示される可能性が高くなります。

原因

この問題は、一部のAzure VM サイズのディスクのセクター サイズが原因で発生します。 Dadsv6、Eadsv6、Fasv6 などの新しいAzure VM シリーズでは、NVMe 専用ストレージ インターフェイスが使用され、NVMe をサポートする OS イメージが必要です。 これらの VM シリーズでは、既定のネイティブ セクター サイズが 8 KB のディスクが公開されます。SQL Serverはデータベース ファイルをサポートしていません。 SQL Serverでは、ネイティブ セクター サイズが 512 バイトと 4 KB のディスクがサポートされます。 Azure VM が 8 KB のセクター サイズでデプロイされ、SQL Serverをインストールすると、インストールが失敗する可能性があります。 詳細については、SQL Server のストレージの種類を参照してください。

注:

このシナリオは、Azure VM にSQL Serverを手動でインストールする場合にのみ適用されます。 Azure MarketplaceからSQL Server VM イメージをデプロイする場合は適用されません。これらのイメージは 4 KB のセクター サイズを使用するように事前構成されているためです。

影響を受けたディスクと VM の種類

最も一般的に、次のシナリオではセクター サイズの不一致が表示されます。

  • 8 KB のネイティブ セクター サイズを備えた、v6 VM シリーズ(たとえば Dadsv6、Eadsv6、Easv6、Fasv6 など)上のローカル NVMe ディスク
  • Premium SSD v2Ultra Disk で、論理セクターサイズが 4096 バイトのディスクを作成し、それを物理セクターサイズが 8 KB であると報告するホスト経由で公開する場合。

以前の VM シリーズにアタッチする Standard HDD、Standard SSD、Premium SSD (v1) データ ディスクは、通常、4 KB のセクター サイズを示し、影響を受けません。

ソリューション

この問題を解決するには、Azure VM で 4 KB のセクター サイズを使用するように強制してから、SQL Server再インストールします。

  1. SQL Serverが既にインストールされている場合は、アンインストールします。 それ以外の場合、次のステップに進んでください。

  2. ForcedPhysicalSectorSizeInBytes レジストリ キーを追加します。

  3. 管理者特権のコマンド プロンプトで次のコマンドを実行して、セクター サイズが 4 KB であることを確認します。

    fsutil fsinfo sectorinfo <volume pathname>
    
  4. Azure VM を再起動します。

  5. SQL Server を再インストールします。

次のスクリーンショットは、8 KB のセクター サイズを持つfsutil fsinfo sectorinfo ドライブのE: コマンドの出力を示しています。

8 KB のセクター サイズのコマンド プロンプト出力のスクリーンショット。

次のスクリーンショットは、4 KB のセクター サイズを使用するためにレジストリ キーを追加した後の、 E: ドライブに対する同じコマンドの出力を示しています。

4 KB セクター サイズのコマンド プロンプト出力のスクリーンショット。

ForcedPhysicalSectorSizeInBytes レジストリ キーは、OS レベルの設定です。 このレジストリ キーを削除するまで、現在接続されているすべてのドライブと後で接続されているすべてのドライブは、4 KB のセクター サイズを使用します。