はじめに
先日、Microsoft Azure上でMicrosoft SQL Serverのインストールエラーに遭遇しました。
あまり見た事のないエラーコードだったのでWebで検索してみたところ、次のMicrosoft社のドキュメントがヒットしました。 『Windows Server 2022 Azure 仮想マシンでのセクター サイズ エラーで SQL Server のインストールが失敗する』
このドキュメントに記載のエラーログと実際のエラーログが一致したため、この事象に該当すると判断し、記載通りの手順で対処できたのですが、備忘のために書いてみます。
原因と対処
この事象ですが、ディスクの「セクタサイズ」に起因しています。
Microsoft Azureで作った仮想サーバーのディスクにデフォルトで設定されているセクタサイズが、Microsoft SQL Serverに対応していないセクタサイズのため、インストールでエラーが出るようになっています。
対処方法ですが、仮想サーバー上でレジストリを変更し、Microsoft SQL Serverに対応したセクタサイズを利用するようにすることで対処可能です。
「セクタサイズ」ってなんですか
上記をご参考にMicrosoft社のドキュメントに沿ってご対応頂ければ問題ないのですが、「セクタサイズ」ってなんだ、となった方のために解説します。
「セクタサイズ」は読んで字のごとく、「セクタ」の「サイズ」です。
「セクタ」は「部門」などと訳されますが、簡単に言えば、ハードディスクやSSDなどの記憶媒体において、データを記憶するために細かく区切った最も小さな一単位となります。そして、この「サイズ」、言い換えると1セクタあたりのデータ容量が、「セクタサイズ」となります。
文章で書くと分かりにくいので図にしてみると、下図のようになります。

この「セクタ」の役割は、データの効率的な読み書きにあります。物理的なディスクを区切っていき、各区切りごとに「番地」を与えることで、データの効率的な読み書きができるようにしています。

また、効率化の観点で付け加えると、関連した用語に「クラスタ」というものもあります。「クラスタ」は「セクタ」を複数個まとめたもので、OSはこの「クラスタ」単位でデータを読み書きすることで、データのやり取りを効率化しています。

少し話がそれたので、「セクタサイズ」に話を戻します。
この「セクタサイズ」ですが、以前は、「1セクタは512バイト」が主流でした。
ただ、近年は「1セクタは4KB」としているディスクが増えつつあります。セクタサイズを増やす理由も効率化です。
ハードディスクの大容量化に伴い、限られた物理的な領域を効率よく利用する必要が出てきたため、セクタサイズを増やしてディスクの容量を増やしています。
そして、このセクタサイズが4KBを超え、8KBやそれ以上になるディスクも現れてきました。
本題に戻って
4KBを超えるセクタサイズのディスクが現れてきたことが、冒頭の問題に繋がっています。
現在、Microsoft Azureで作成できる最新の仮想マシンの一部は、ディスクのセクタサイズが8KBで作成されるようになっています。
一方、Microsoft SQL Serverで利用可能なセクタサイズは512バイト、または4KBのみで、8KBには非対応です。
このように、仮想マシンのディスクのセクタサイズと、Microsoft SQL Serverで対応しているセクタサイズに違いがあることが、冒頭に書いたエラーの具体的な原因です。
対処について
セクタサイズは、一般的にハードウェア側で規定されます。 ただし、OSによっては、OSレベルで利用するセクタサイズを調整できる仕組みが備わっており、Windows OSであればレジストリによる制御が可能です。そこで、今回の事象では、Microsoft SQL Serverが対応している4KBのセクタサイズが利用されるようレジストリで制御することで、Microsoft SQL Serverをインストールできるようにしています。
まとめ
ここまで書いてきたように、Microsoft AzureにMicrosoft SQL Serverをインストールする際は、ディスクのセクタサイズにより、エラーが発生することがあります。あらかじめコマンドでセクタサイズを確認しておけば、レジストリ変更で回避可能ですので、インストール作業の前に一度セクタサイズをご確認いただくようにすると確実かもしれません。
また、SKYSEA Client Viewにつきましても、マスターサーバーなどでMicrosoft SQL Serverを利用しており、SKYSEA Client Viewのサーバーインストール時にMicrosoft SQL Serverも同時にインストールされます。
したがって、Microsoft AzureへのSKYSEA Client Viewのサーバー構築時には同様のエラーが発生する恐れがございますので、こちらの作業時も、セクタサイズに気を配ってくださいますと幸いです。

